Page Not Found
We could not find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.
From 5e1f54a3febfadb89421beec8043dc26d70f758c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 30 Oct 2024 20:54:24 +0000 Subject: [PATCH] deploy: 1abb2ef6dbb9ff09c6cbe11abd41801aeb93efd2 --- 404.html | 10 +++++----- .../css/{styles.029e152c.css => styles.2b779363.css} | 2 +- assets/js/04b54eed.7dbd42de.js | 1 + assets/js/04b54eed.91221e45.js | 1 - assets/js/09127693.87208c9f.js | 1 + assets/js/09127693.c041a8db.js | 1 - assets/js/0b222e5a.92f1c650.js | 1 - assets/js/0b222e5a.93935b68.js | 1 + assets/js/0bfb6514.76acfd1c.js | 1 - assets/js/0e384e19.7dc7e057.js | 1 - assets/js/0e384e19.8c69330b.js | 1 + assets/js/103b4c9d.54bb426f.js | 1 - assets/js/103b4c9d.a37ac4a5.js | 1 + assets/js/14eb3368.61d5f26e.js | 1 - assets/js/14eb3368.ca5a54fd.js | 1 + assets/js/17896441.087446ec.js | 1 - assets/js/17896441.601ac5ff.js | 1 + assets/js/182f8820.1158822b.js | 1 + assets/js/1fc35beb.0a038d11.js | 1 - assets/js/1fc35beb.55c51e1f.js | 1 + assets/js/2296e6d4.31d0245d.js | 1 - assets/js/2296e6d4.93def3e1.js | 1 + assets/js/3106553b.48c551de.js | 1 - assets/js/3106553b.f9a2b218.js | 1 + assets/js/3e5cfc22.fc7434f0.js | 1 + assets/js/45b77d3d.f807d279.js | 1 - assets/js/47410d18.77edd55b.js | 1 + assets/js/47410d18.d060bdde.js | 1 - assets/js/501d4186.033d87d0.js | 1 - assets/js/501d4186.86a39fb3.js | 1 + assets/js/617854b0.0672b2e7.js | 1 - assets/js/617854b0.a9f5fcb5.js | 1 + assets/js/630fbf92.1a67bd9a.js | 1 + assets/js/630fbf92.b0107ee7.js | 1 - assets/js/638a4428.741fe7f7.js | 1 + assets/js/638a4428.85ebba82.js | 1 - assets/js/648a5409.28b58cb2.js | 1 + assets/js/648a5409.413d9b7a.js | 1 - assets/js/71fae5cf.82335e62.js | 1 - assets/js/71fae5cf.f9057c2f.js | 1 + assets/js/730aff30.72df8cd2.js | 1 - assets/js/730aff30.a1b04580.js | 1 + assets/js/7f029640.2188bb31.js | 1 - assets/js/7f029640.53149bf3.js | 1 + assets/js/8fc29581.268d1144.js | 1 - assets/js/8fc29581.e92dccf4.js | 1 + assets/js/935f2afb.1f8fbf4b.js | 1 - .../{a9a2fdb1.6efa66c3.js => a7456010.27f58562.js} | 2 +- assets/js/a7bd4aaa.6eca71af.js | 1 + assets/js/a7bd4aaa.f7a00d1f.js | 1 - assets/js/a94703ab.204c7c02.js | 1 - assets/js/a94703ab.91f13eb8.js | 1 + assets/js/aaed30b0.25f28890.js | 1 - assets/js/aaed30b0.873e427d.js | 1 + .../{1359955c.ec935871.js => aba21aa0.3b349f65.js} | 2 +- assets/js/c0c2b7bb.ae9df9b6.js | 1 + assets/js/c3e6124d.2470aaeb.js | 1 - assets/js/c3e6124d.d2e002c7.js | 1 + assets/js/c4f5d8e4.0d88945a.js | 1 + assets/js/c4f5d8e4.5a307ab1.js | 1 - assets/js/ce719f21.66b40e44.js | 1 - assets/js/de29c8b2.1e33bb56.js | 1 + assets/js/de29c8b2.a82d9436.js | 1 - assets/js/e0eaaed1.3d00f2be.js | 1 + assets/js/e0eaaed1.6664c342.js | 1 - assets/js/e26d4f29.8b85d376.js | 1 + assets/js/e4cbdf04.86baa692.js | 1 - assets/js/e4cbdf04.a54478f9.js | 1 + assets/js/e675c224.9efd144f.js | 1 + assets/js/e675c224.ea19ce15.js | 1 - assets/js/ec1c321e.de94604d.js | 1 - assets/js/ec1c321e.efacf539.js | 1 + assets/js/f7fe5857.3de9ec33.js | 1 + assets/js/f7fe5857.f6afa070.js | 1 - assets/js/fafd341c.5fe7df5a.js | 1 - assets/js/fafd341c.f9a65458.js | 1 + assets/js/main.4dc22fc9.js | 2 ++ ...6.js.LICENSE.txt => main.4dc22fc9.js.LICENSE.txt} | 0 assets/js/main.e91464e6.js | 2 -- assets/js/runtime~main.306ada61.js | 1 + assets/js/runtime~main.cc36801d.js | 1 - docs/airgapped-docs/installation.html | 10 +++++----- docs/airgapped-docs/introduction.html | 10 +++++----- docs/airgapped-docs/prereqs.html | 10 +++++----- docs/airgapped-docs/uninstall.html | 10 +++++----- docs/category/airgapped-docs.html | 10 +++++----- docs/category/carbide-image-registry.html | 10 +++++----- docs/category/stigatron-security-operator.html | 10 +++++----- docs/feedback.html | 10 +++++----- docs/intro.html | 10 +++++----- docs/known-limits.html | 10 +++++----- docs/registry-docs/architecture.html | 10 +++++----- docs/registry-docs/carbide-charts.html | 10 +++++----- docs/registry-docs/configuration/kubernetes.html | 12 ++++++------ docs/registry-docs/configuration/rancher.html | 10 +++++----- docs/registry-docs/copying-images.html | 10 +++++----- docs/registry-docs/downloading-images.html | 10 +++++----- docs/registry-docs/enforcement.html | 10 +++++----- docs/registry-docs/introduction.html | 10 +++++----- docs/registry-docs/loading-images.html | 12 ++++++------ docs/registry-docs/prereqs.html | 10 +++++----- docs/registry-docs/release-cadence.html | 10 +++++----- docs/registry-docs/uninstall-kubernetes.html | 10 +++++----- docs/registry-docs/uninstall-rancher.html | 10 +++++----- docs/registry-docs/validating-images.html | 10 +++++----- docs/stigatron-docs/create-scan.html | 10 +++++----- docs/stigatron-docs/installation.html | 10 +++++----- docs/stigatron-docs/introduction.html | 10 +++++----- docs/stigatron-docs/prereqs.html | 10 +++++----- docs/stigatron-docs/uninstall.html | 10 +++++----- docs/stigatron-docs/using-heimdall.html | 10 +++++----- index.html | 10 +++++----- lunr-index-1719606001372.json | 1 - lunr-index-1730321639252.json | 1 + lunr-index.json | 2 +- search-doc-1719606001372.json | 1 - search-doc-1730321639252.json | 1 + search-doc.json | 2 +- sitemap.xml | 2 +- 119 files changed, 209 insertions(+), 209 deletions(-) rename assets/css/{styles.029e152c.css => styles.2b779363.css} (53%) create mode 100644 assets/js/04b54eed.7dbd42de.js delete mode 100644 assets/js/04b54eed.91221e45.js create mode 100644 assets/js/09127693.87208c9f.js delete mode 100644 assets/js/09127693.c041a8db.js delete mode 100644 assets/js/0b222e5a.92f1c650.js create mode 100644 assets/js/0b222e5a.93935b68.js delete mode 100644 assets/js/0bfb6514.76acfd1c.js delete mode 100644 assets/js/0e384e19.7dc7e057.js create mode 100644 assets/js/0e384e19.8c69330b.js delete mode 100644 assets/js/103b4c9d.54bb426f.js create mode 100644 assets/js/103b4c9d.a37ac4a5.js delete mode 100644 assets/js/14eb3368.61d5f26e.js create mode 100644 assets/js/14eb3368.ca5a54fd.js delete mode 100644 assets/js/17896441.087446ec.js create mode 100644 assets/js/17896441.601ac5ff.js create mode 100644 assets/js/182f8820.1158822b.js delete mode 100644 assets/js/1fc35beb.0a038d11.js create mode 100644 assets/js/1fc35beb.55c51e1f.js delete mode 100644 assets/js/2296e6d4.31d0245d.js create mode 100644 assets/js/2296e6d4.93def3e1.js delete mode 100644 assets/js/3106553b.48c551de.js create mode 100644 assets/js/3106553b.f9a2b218.js create mode 100644 assets/js/3e5cfc22.fc7434f0.js delete mode 100644 assets/js/45b77d3d.f807d279.js create mode 100644 assets/js/47410d18.77edd55b.js delete mode 100644 assets/js/47410d18.d060bdde.js delete mode 100644 assets/js/501d4186.033d87d0.js create mode 100644 assets/js/501d4186.86a39fb3.js delete mode 100644 assets/js/617854b0.0672b2e7.js create mode 100644 assets/js/617854b0.a9f5fcb5.js create mode 100644 assets/js/630fbf92.1a67bd9a.js delete mode 100644 assets/js/630fbf92.b0107ee7.js create mode 100644 assets/js/638a4428.741fe7f7.js delete mode 100644 assets/js/638a4428.85ebba82.js create mode 100644 assets/js/648a5409.28b58cb2.js delete mode 100644 assets/js/648a5409.413d9b7a.js delete mode 100644 assets/js/71fae5cf.82335e62.js create mode 100644 assets/js/71fae5cf.f9057c2f.js delete mode 100644 assets/js/730aff30.72df8cd2.js create mode 100644 assets/js/730aff30.a1b04580.js delete mode 100644 assets/js/7f029640.2188bb31.js create mode 100644 assets/js/7f029640.53149bf3.js delete mode 100644 assets/js/8fc29581.268d1144.js create mode 100644 assets/js/8fc29581.e92dccf4.js delete mode 100644 assets/js/935f2afb.1f8fbf4b.js rename assets/js/{a9a2fdb1.6efa66c3.js => a7456010.27f58562.js} (65%) create mode 100644 assets/js/a7bd4aaa.6eca71af.js delete mode 100644 assets/js/a7bd4aaa.f7a00d1f.js delete mode 100644 assets/js/a94703ab.204c7c02.js create mode 100644 assets/js/a94703ab.91f13eb8.js delete mode 100644 assets/js/aaed30b0.25f28890.js create mode 100644 assets/js/aaed30b0.873e427d.js rename assets/js/{1359955c.ec935871.js => aba21aa0.3b349f65.js} (65%) create mode 100644 assets/js/c0c2b7bb.ae9df9b6.js delete mode 100644 assets/js/c3e6124d.2470aaeb.js create mode 100644 assets/js/c3e6124d.d2e002c7.js create mode 100644 assets/js/c4f5d8e4.0d88945a.js delete mode 100644 assets/js/c4f5d8e4.5a307ab1.js delete mode 100644 assets/js/ce719f21.66b40e44.js create mode 100644 assets/js/de29c8b2.1e33bb56.js delete mode 100644 assets/js/de29c8b2.a82d9436.js create mode 100644 assets/js/e0eaaed1.3d00f2be.js delete mode 100644 assets/js/e0eaaed1.6664c342.js create mode 100644 assets/js/e26d4f29.8b85d376.js delete mode 100644 assets/js/e4cbdf04.86baa692.js create mode 100644 assets/js/e4cbdf04.a54478f9.js create mode 100644 assets/js/e675c224.9efd144f.js delete mode 100644 assets/js/e675c224.ea19ce15.js delete mode 100644 assets/js/ec1c321e.de94604d.js create mode 100644 assets/js/ec1c321e.efacf539.js create mode 100644 assets/js/f7fe5857.3de9ec33.js delete mode 100644 assets/js/f7fe5857.f6afa070.js delete mode 100644 assets/js/fafd341c.5fe7df5a.js create mode 100644 assets/js/fafd341c.f9a65458.js create mode 100644 assets/js/main.4dc22fc9.js rename assets/js/{main.e91464e6.js.LICENSE.txt => main.4dc22fc9.js.LICENSE.txt} (100%) delete mode 100644 assets/js/main.e91464e6.js create mode 100644 assets/js/runtime~main.306ada61.js delete mode 100644 assets/js/runtime~main.cc36801d.js delete mode 100644 lunr-index-1719606001372.json create mode 100644 lunr-index-1730321639252.json delete mode 100644 search-doc-1719606001372.json create mode 100644 search-doc-1730321639252.json diff --git a/404.html b/404.html index 12ad35f..4f73972 100644 --- a/404.html +++ b/404.html @@ -2,12 +2,12 @@
- -We could not find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.
We could not find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.
registries.yaml
configuration (RKE2
/k3s
)",id:"manual-registriesyaml-configuration-rke2k3s",level:3},{value:"Reverting Rancher
Chart",id:"reverting-rancher-chart",level:3}];function d(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"rancher-manager-uninstall",children:"Rancher Manager Uninstall"})}),"\n",(0,s.jsx)(r.p,{children:"This page will walk you through how to uninstall Carbide Registry Images from Rancher Manager both for its own components and downstream Rancher Kubernetes clusters (RKE2/K3s)."}),"\n",(0,s.jsx)(r.h2,{id:"reverting-cert-manager",children:"Reverting Cert Manager"}),"\n",(0,s.jsx)(r.p,{children:"As Rancher has a dependency on Cert Manager, you'll need to update your Helm install of Cert Manager to use the default images."}),"\n",(0,s.jsx)(r.h3,{id:"using-your-own-registry",children:"Using Your Own Registry"}),"\n",(0,s.jsxs)(r.p,{children:["If using your own registry, you simply need to ",(0,s.jsx)(r.a,{href:"https://ranchermanager.docs.rancher.com/getting-started/installation-and-upgrade/other-installation-methods/air-gapped-helm-cli-install/publish-images#2-collect-the-cert-manager-image",children:"collect"})," the necessary images for cert-manager and overwrite those images in your registry."]}),"\n",(0,s.jsx)(r.p,{children:"As pods cycle, the new image should propagate across the cluster."}),"\n",(0,s.jsx)(r.h3,{id:"using-docker-hub-images",children:"Using Docker Hub Images"}),"\n",(0,s.jsx)(r.p,{children:"If you want to go back to using Docker Hub images directly, you'll need to upgrade the cert-manager installation to revert pointing to the private registry hosting the Carbide images:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"helm install cert-manager jetstack/cert-manager \\\n --namespace cert-manager \\\n --create-namespace \\\n --version v1.14.4\n"})}),"\n",(0,s.jsx)(r.h2,{id:"registry-auth-scenarios",children:"Registry Auth Scenarios"}),"\n",(0,s.jsx)(r.h3,{id:"global-registry",children:"Global Registry"}),"\n",(0,s.jsx)(r.h4,{id:"uninstall-carbide-images-on-rancher-private-registry",children:"Uninstall Carbide Images on Rancher (Private Registry)"}),"\n",(0,s.jsx)(r.p,{children:"If using your own registry, you simply need to collect the necessary images for Rancher and overwrite those images in your registry."}),"\n",(0,s.jsx)(r.p,{children:"As pods cycle, the new image should propagate across the cluster."}),"\n",(0,s.jsx)(r.h4,{id:"uninstall-carbide-images-on-rancher-docker-hub",children:"Uninstall Carbide Images on Rancher (Docker Hub)"}),"\n",(0,s.jsx)(r.p,{children:"If wanting to use upgrade Docker Hub images for Rancher:"}),"\n",(0,s.jsxs)(r.ol,{children:["\n",(0,s.jsx)(r.li,{children:"Log into Rancher and configure the default administrator password."}),"\n",(0,s.jsxs)(r.li,{children:["Click ",(0,s.jsx)(r.strong,{children:"\u2630 > Global Settings"}),"."]}),"\n",(0,s.jsxs)(r.li,{children:["Go to the setting called ",(0,s.jsx)(r.code,{children:"system-default-registry"})," and choose ",(0,s.jsx)(r.strong,{children:"\u22ee > Edit Setting"}),"."]}),"\n",(0,s.jsxs)(r.li,{children:["Click the ",(0,s.jsx)(r.code,{children:"Use the default value"})," button."]}),"\n"]}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"Result:"})," Rancher will use your private registry to pull system images."]}),"\n",(0,s.jsx)(r.h4,{id:"reverting-downstream-clusters-to-use-dockerhub-images",children:"Reverting Downstream Clusters to use DockerHub Images"}),"\n",(0,s.jsx)(r.p,{children:"If you want to revert downstream RKE2/K3s clusters to use DockerHub images:"}),"\n",(0,s.jsxs)(r.ol,{children:["\n",(0,s.jsxs)(r.li,{children:["Click ",(0,s.jsx)(r.strong,{children:"\u2630 > Cluster Management"}),"."]}),"\n",(0,s.jsxs)(r.li,{children:["On the ",(0,s.jsx)(r.strong,{children:"Clusters"})," page, select the 3-dot button to the right for downstream cluster you'd like to revert, and select ",(0,s.jsx)(r.strong,{children:"Edit Config"}),"."]}),"\n",(0,s.jsx)(r.li,{children:"."}),"\n",(0,s.jsxs)(r.li,{children:["In the ",(0,s.jsx)(r.strong,{children:"Cluster Configuration"})," go to the ",(0,s.jsx)(r.strong,{children:"Registries"})," tab and click ",(0,s.jsx)(r.strong,{children:"Use default global registry for Rancher System Container Images"}),"."]}),"\n",(0,s.jsxs)(r.li,{children:["Click ",(0,s.jsx)(r.strong,{children:"Save"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"Result:"})," The cluster will update nodepools to use DockerHub images."]}),"\n",(0,s.jsxs)(r.h3,{id:"manual-registriesyaml-configuration-rke2k3s",children:["Manual ",(0,s.jsx)(r.code,{children:"registries.yaml"})," configuration (",(0,s.jsx)(r.code,{children:"RKE2"}),"/",(0,s.jsx)(r.code,{children:"k3s"}),")"]}),"\n",(0,s.jsxs)(r.p,{children:["See the ",(0,s.jsx)(r.a,{href:"/carbide-docs/docs/registry-docs/uninstall-kubernetes",children:"RKE2/K3s Uninstall"})," documentation."]}),"\n",(0,s.jsxs)(r.h3,{id:"reverting-rancher-chart",children:["Reverting ",(0,s.jsx)(r.code,{children:"Rancher"})," Chart"]}),"\n",(0,s.jsxs)(r.p,{children:["Follow Rancher's ",(0,s.jsx)(r.a,{href:"https://rancher.com/docs/rancher/v2.7/en/installation/install-rancher-on-k8s",children:"Installation Guide"}),", you can revert to using DockerHub images by removing values from the Helm upgrade command."]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"helm upgrade rancher rancher-latest/rancher \\\n --namespace cattle-system \\\n --set hostname=rancher.my.org \\\n --set replicas=3\n"})})]})}function h(e={}){const{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453:(e,r,n)=>{n.d(r,{R:()=>i,x:()=>l});var s=n(6540);const t={},a=s.createContext(t);function i(e){const r=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),s.createElement(a.Provider,{value:r},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/09127693.c041a8db.js b/assets/js/09127693.c041a8db.js
deleted file mode 100644
index 73bd3b6..0000000
--- a/assets/js/09127693.c041a8db.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[620],{5786:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var s=n(4848),t=n(8453);const i={},a="Rancher Manager Uninstall",l={id:"registry-docs/uninstall-rancher",title:"Rancher Manager Uninstall",description:"This page will walk you through how to uninstall Carbide Registry Images from Rancher Manager both for its own components and downstream Rancher Kubernetes clusters (RKE2/K3s).",source:"@site/docs/registry-docs/uninstall-rancher.md",sourceDirName:"registry-docs",slug:"/registry-docs/uninstall-rancher",permalink:"/carbide-docs/docs/registry-docs/uninstall-rancher",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/uninstall-rancher.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"RKE2/K3s Uninstall",permalink:"/carbide-docs/docs/registry-docs/uninstall-kubernetes"},next:{title:"Introduction",permalink:"/carbide-docs/docs/stigatron-docs/introduction"}},o={},c=[{value:"Reverting Cert Manager",id:"reverting-cert-manager",level:2},{value:"Using Your Own Registry",id:"using-your-own-registry",level:3},{value:"Using Docker Hub Images",id:"using-docker-hub-images",level:3},{value:"Registry Auth Scenarios",id:"registry-auth-scenarios",level:2},{value:"Global Registry",id:"global-registry",level:3},{value:"Uninstall Carbide Images on Rancher (Private Registry)",id:"uninstall-carbide-images-on-rancher-private-registry",level:4},{value:"Uninstall Carbide Images on Rancher (Docker Hub)",id:"uninstall-carbide-images-on-rancher-docker-hub",level:4},{value:"Reverting Downstream Clusters to use DockerHub Images",id:"reverting-downstream-clusters-to-use-dockerhub-images",level:4},{value:"Manual registries.yaml
configuration (RKE2
/k3s
)",id:"manual-registriesyaml-configuration-rke2k3s",level:3},{value:"Reverting Rancher
Chart",id:"reverting-rancher-chart",level:3}];function d(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.h1,{id:"rancher-manager-uninstall",children:"Rancher Manager Uninstall"}),"\n",(0,s.jsx)(r.p,{children:"This page will walk you through how to uninstall Carbide Registry Images from Rancher Manager both for its own components and downstream Rancher Kubernetes clusters (RKE2/K3s)."}),"\n",(0,s.jsx)(r.h2,{id:"reverting-cert-manager",children:"Reverting Cert Manager"}),"\n",(0,s.jsx)(r.p,{children:"As Rancher has a dependency on Cert Manager, you'll need to update your Helm install of Cert Manager to use the default images."}),"\n",(0,s.jsx)(r.h3,{id:"using-your-own-registry",children:"Using Your Own Registry"}),"\n",(0,s.jsxs)(r.p,{children:["If using your own registry, you simply need to ",(0,s.jsx)(r.a,{href:"https://ranchermanager.docs.rancher.com/getting-started/installation-and-upgrade/other-installation-methods/air-gapped-helm-cli-install/publish-images#2-collect-the-cert-manager-image",children:"collect"})," the necessary images for cert-manager and overwrite those images in your registry."]}),"\n",(0,s.jsx)(r.p,{children:"As pods cycle, the new image should propagate across the cluster."}),"\n",(0,s.jsx)(r.h3,{id:"using-docker-hub-images",children:"Using Docker Hub Images"}),"\n",(0,s.jsx)(r.p,{children:"If you want to go back to using Docker Hub images directly, you'll need to upgrade the cert-manager installation to revert pointing to the private registry hosting the Carbide images:"}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"helm install cert-manager jetstack/cert-manager \\\n --namespace cert-manager \\\n --create-namespace \\\n --version v1.14.4\n"})}),"\n",(0,s.jsx)(r.h2,{id:"registry-auth-scenarios",children:"Registry Auth Scenarios"}),"\n",(0,s.jsx)(r.h3,{id:"global-registry",children:"Global Registry"}),"\n",(0,s.jsx)(r.h4,{id:"uninstall-carbide-images-on-rancher-private-registry",children:"Uninstall Carbide Images on Rancher (Private Registry)"}),"\n",(0,s.jsx)(r.p,{children:"If using your own registry, you simply need to collect the necessary images for Rancher and overwrite those images in your registry."}),"\n",(0,s.jsx)(r.p,{children:"As pods cycle, the new image should propagate across the cluster."}),"\n",(0,s.jsx)(r.h4,{id:"uninstall-carbide-images-on-rancher-docker-hub",children:"Uninstall Carbide Images on Rancher (Docker Hub)"}),"\n",(0,s.jsx)(r.p,{children:"If wanting to use upgrade Docker Hub images for Rancher:"}),"\n",(0,s.jsxs)(r.ol,{children:["\n",(0,s.jsx)(r.li,{children:"Log into Rancher and configure the default administrator password."}),"\n",(0,s.jsxs)(r.li,{children:["Click ",(0,s.jsx)(r.strong,{children:"\u2630 > Global Settings"}),"."]}),"\n",(0,s.jsxs)(r.li,{children:["Go to the setting called ",(0,s.jsx)(r.code,{children:"system-default-registry"})," and choose ",(0,s.jsx)(r.strong,{children:"\u22ee > Edit Setting"}),"."]}),"\n",(0,s.jsxs)(r.li,{children:["Click the ",(0,s.jsx)(r.code,{children:"Use the default value"})," button."]}),"\n"]}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"Result:"})," Rancher will use your private registry to pull system images."]}),"\n",(0,s.jsx)(r.h4,{id:"reverting-downstream-clusters-to-use-dockerhub-images",children:"Reverting Downstream Clusters to use DockerHub Images"}),"\n",(0,s.jsx)(r.p,{children:"If you want to revert downstream RKE2/K3s clusters to use DockerHub images:"}),"\n",(0,s.jsxs)(r.ol,{children:["\n",(0,s.jsxs)(r.li,{children:["Click ",(0,s.jsx)(r.strong,{children:"\u2630 > Cluster Management"}),"."]}),"\n",(0,s.jsxs)(r.li,{children:["On the ",(0,s.jsx)(r.strong,{children:"Clusters"})," page, select the 3-dot button to the right for downstream cluster you'd like to revert, and select ",(0,s.jsx)(r.strong,{children:"Edit Config"}),"."]}),"\n",(0,s.jsx)(r.li,{children:"."}),"\n",(0,s.jsxs)(r.li,{children:["In the ",(0,s.jsx)(r.strong,{children:"Cluster Configuration"})," go to the ",(0,s.jsx)(r.strong,{children:"Registries"})," tab and click ",(0,s.jsx)(r.strong,{children:"Use default global registry for Rancher System Container Images"}),"."]}),"\n",(0,s.jsxs)(r.li,{children:["Click ",(0,s.jsx)(r.strong,{children:"Save"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(r.p,{children:[(0,s.jsx)(r.strong,{children:"Result:"})," The cluster will update nodepools to use DockerHub images."]}),"\n",(0,s.jsxs)(r.h3,{id:"manual-registriesyaml-configuration-rke2k3s",children:["Manual ",(0,s.jsx)(r.code,{children:"registries.yaml"})," configuration (",(0,s.jsx)(r.code,{children:"RKE2"}),"/",(0,s.jsx)(r.code,{children:"k3s"}),")"]}),"\n",(0,s.jsxs)(r.p,{children:["See the ",(0,s.jsx)(r.a,{href:"/carbide-docs/docs/registry-docs/uninstall-kubernetes",children:"RKE2/K3s Uninstall"})," documentation."]}),"\n",(0,s.jsxs)(r.h3,{id:"reverting-rancher-chart",children:["Reverting ",(0,s.jsx)(r.code,{children:"Rancher"})," Chart"]}),"\n",(0,s.jsxs)(r.p,{children:["Follow Rancher's ",(0,s.jsx)(r.a,{href:"https://rancher.com/docs/rancher/v2.7/en/installation/install-rancher-on-k8s",children:"Installation Guide"}),", you can revert to using DockerHub images by removing values from the Helm upgrade command."]}),"\n",(0,s.jsx)(r.pre,{children:(0,s.jsx)(r.code,{className:"language-bash",children:"helm upgrade rancher rancher-latest/rancher \\\n --namespace cattle-system \\\n --set hostname=rancher.my.org \\\n --set replicas=3\n"})})]})}function h(e={}){const{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453:(e,r,n)=>{n.d(r,{R:()=>a,x:()=>l});var s=n(6540);const t={},i=s.createContext(t);function a(e){const r=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:a(e.components),s.createElement(i.Provider,{value:r},e.children)}}}]);
\ No newline at end of file
diff --git a/assets/js/0b222e5a.92f1c650.js b/assets/js/0b222e5a.92f1c650.js
deleted file mode 100644
index 510ece7..0000000
--- a/assets/js/0b222e5a.92f1c650.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[24],{986:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>l,metadata:()=>a,toc:()=>o});var s=t(4848),i=t(8453);const l={},r="Installation",a={id:"stigatron-docs/installation",title:"Installation",description:"Local Cluster",source:"@site/docs/stigatron-docs/installation.md",sourceDirName:"stigatron-docs",slug:"/stigatron-docs/installation",permalink:"/carbide-docs/docs/stigatron-docs/installation",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/stigatron-docs/installation.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Prerequisites",permalink:"/carbide-docs/docs/stigatron-docs/prereqs"},next:{title:"Creating STIGATRON Scans",permalink:"/carbide-docs/docs/stigatron-docs/create-scan"}},c={},o=[{value:"Local Cluster",id:"local-cluster",level:2},{value:"Enabling UI Extensions",id:"enabling-ui-extensions",level:3},{value:"Installing STIGATRON UI Plugin",id:"installing-stigatron-ui-plugin",level:3},{value:"Downstream Clusters",id:"downstream-clusters",level:2},{value:"Installing CIS Benchmark Operator",id:"installing-cis-benchmark-operator",level:3},{value:"Creating the License Secret",id:"creating-the-license-secret",level:3},{value:"Installing STIGATRON Operator",id:"installing-stigatron-operator",level:3}];function d(e){const n={code:"code",em:"em",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"installation",children:"Installation"}),"\n",(0,s.jsx)(n.h2,{id:"local-cluster",children:"Local Cluster"}),"\n",(0,s.jsx)(n.h3,{id:"enabling-ui-extensions",children:"Enabling UI Extensions"}),"\n",(0,s.jsxs)(n.p,{children:["On the ",(0,s.jsx)(n.code,{children:"local"})," cluster running Rancher MCM, you'll need to first enable Extensions."]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Log into the Rancher MCM as an administrator."}),"\n",(0,s.jsxs)(n.li,{children:["Click the menu in the upper-left of the main dashboard and click the ",(0,s.jsx)(n.code,{children:"Extensions"})," link near the bottom."]}),"\n",(0,s.jsxs)(n.li,{children:["Click the ",(0,s.jsx)(n.code,{children:"Enable"})," button on the Extensions screen."]}),"\n",(0,s.jsxs)(n.li,{children:["Click ",(0,s.jsx)(n.code,{children:"Ok"}),", when prompted to Enable Extension Support."]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.img,{alt:"Enable Extensions",src:t(1417).A+"",width:"423",height:"283"})}),"\n",(0,s.jsx)(n.h3,{id:"installing-stigatron-ui-plugin",children:"Installing STIGATRON UI Plugin"}),"\n",(0,s.jsxs)(n.p,{children:["Next, on the same ",(0,s.jsx)(n.code,{children:"local"})," cluster, run the following Helm commands to install the UI Plugin for STIGATRON (see the ",(0,s.jsx)(n.code,{children:"tgz"})," method above for airgap with no Helm repository) and ensure to substitute your registry:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:'helm install -n carbide-stigatron-system --create-namespace \\\n --set "global.cattle.systemDefaultRegistry=["'])(?.*?)\1/,me=/\{(? [\d,-]+)\}/,he={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},pe={...he,lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},fe=Object.keys(he);function xe(e,t){const n=e.map((e=>{const{start:n,end:s}=pe[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${s})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function be(e,t){let n=e.replace(/\n$/,"");const{language:s,magicComments:a,metastring:o}=t;if(o&&me.test(o)){const e=o.match(me).groups.range;if(0===a.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${o}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=a[0].className,s=de()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(s),code:n}}if(void 0===s)return{lineClassNames:{},code:n};const i=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return xe(["js","jsBlock"],t);case"jsx":case"tsx":return xe(["js","jsBlock","jsx"],t);case"html":return xe(["js","jsBlock","html"],t);case"python":case"py":case"bash":return xe(["bash"],t);case"markdown":case"md":return xe(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return xe(["tex"],t);case"lua":case"haskell":case"sql":return xe(["lua"],t);case"wasm":return xe(["wasm"],t);case"vb":case"vba":case"visual-basic":return xe(["vb","rem"],t);case"vbnet":return xe(["vbnet","rem"],t);case"batch":return xe(["rem"],t);case"basic":return xe(["rem","f90"],t);case"fsharp":return xe(["js","ml"],t);case"ocaml":case"sml":return xe(["ml"],t);case"fortran":return xe(["f90"],t);case"cobol":return xe(["cobol"],t);default:return xe(fe,t)}}(s,a),l=n.split("\n"),c=Object.fromEntries(a.map((e=>[e.className,{start:0,range:""}]))),r=Object.fromEntries(a.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),u=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let h=0;h void 0!==e));r[t]?c[r[t]].range+=`${h},`:d[t]?c[d[t]].start=h:u[t]&&(c[u[t]].range+=`${c[u[t]].start}-${h-1},`),l.splice(h,1)}n=l.join("\n");const m={};return Object.entries(c).forEach((e=>{let[t,{range:n}]=e;de()(n).forEach((e=>{m[e]??=[],m[e].push(t)}))})),{lineClassNames:m,code:n}}const ge={codeBlockContainer:"codeBlockContainer_Ckt0"};function ve(e){let{as:t,...n}=e;const s=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[s,a]=e;const o=t[s];o&&"string"==typeof a&&(n[o]=a)})),n}(ce());return(0,i.jsx)(t,{...n,style:s,className:(0,u.A)(n.className,ge.codeBlockContainer,b.G.common.codeBlock)})}const je={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function Ne(e){let{children:t,className:n}=e;return(0,i.jsx)(ve,{as:"pre",tabIndex:0,className:(0,u.A)(je.codeBlockStandalone,"thin-scrollbar",n),children:(0,i.jsx)("code",{className:je.codeBlockLines,children:t})})}const Ae={attributes:!0,characterData:!0,childList:!0,subtree:!0};function Ce(e,t){const[n,a]=(0,s.useState)(),i=(0,s.useCallback)((()=>{a(e.current?.closest("[role=tabpanel][hidden]"))}),[e,a]);(0,s.useEffect)((()=>{i()}),[i]),function(e,t,n){void 0===n&&(n=Ae);const a=(0,o._q)(t),i=(0,o.Be)(n);(0,s.useEffect)((()=>{const t=new MutationObserver(a);return e&&t.observe(e,i),()=>t.disconnect()}),[e,a,i])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),i())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var ke=n(1765);const ye={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function Le(e){let{line:t,classNames:n,showLineNumbers:s,getLineProps:a,getTokenProps:o}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const l=a({line:t,className:(0,u.A)(n,s&&ye.codeLine)}),c=t.map(((e,t)=>(0,i.jsx)("span",{...o({token:e,key:t})},t)));return(0,i.jsxs)("span",{...l,children:[s?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{className:ye.codeLineNumber}),(0,i.jsx)("span",{className:ye.codeLineContent,children:c})]}):c,(0,i.jsx)("br",{})]})}function _e(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function Be(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const we={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function Te(e){let{code:t,className:n}=e;const[a,o]=(0,s.useState)(!1),l=(0,s.useRef)(void 0),c=(0,s.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const s=document.createElement("textarea"),a=document.activeElement;s.value=e,s.setAttribute("readonly",""),s.style.contain="strict",s.style.position="absolute",s.style.left="-9999px",s.style.fontSize="12pt";const o=document.getSelection(),i=o.rangeCount>0&&o.getRangeAt(0);n.append(s),s.select(),s.selectionStart=0,s.selectionEnd=e.length;let l=!1;try{l=document.execCommand("copy")}catch{}s.remove(),i&&(o.removeAllRanges(),o.addRange(i)),a&&a.focus()}(t),o(!0),l.current=window.setTimeout((()=>{o(!1)}),1e3)}),[t]);return(0,s.useEffect)((()=>()=>window.clearTimeout(l.current)),[]),(0,i.jsx)("button",{type:"button","aria-label":a?(0,g.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,g.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,g.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,u.A)("clean-btn",n,we.copyButton,a&&we.copyButtonCopied),onClick:c,children:(0,i.jsxs)("span",{className:we.copyButtonIcons,"aria-hidden":"true",children:[(0,i.jsx)(_e,{className:we.copyButtonIcon}),(0,i.jsx)(Be,{className:we.copyButtonSuccessIcon})]})})}function Ee(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}const He={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function Me(e){let{className:t,onClick:n,isEnabled:s}=e;const a=(0,g.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,i.jsx)("button",{type:"button",onClick:n,className:(0,u.A)("clean-btn",t,s&&He.wordWrapButtonEnabled),"aria-label":a,title:a,children:(0,i.jsx)(Ee,{className:He.wordWrapButtonIcon,"aria-hidden":"true"})})}function Ie(e){let{children:t,className:n="",metastring:a,title:o,showLineNumbers:l,language:c}=e;const{prism:{defaultLanguage:r,magicComments:d}}=(0,U.p)(),m=function(e){return e?.toLowerCase()}(c??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??r),h=ce(),p=function(){const[e,t]=(0,s.useState)(!1),[n,a]=(0,s.useState)(!1),o=(0,s.useRef)(null),i=(0,s.useCallback)((()=>{const n=o.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[o,e]),l=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=o.current,n=e>t||o.current.querySelector("code").hasAttribute("style");a(n)}),[o]);return Ce(o,l),(0,s.useEffect)((()=>{l()}),[e,l]),(0,s.useEffect)((()=>(window.addEventListener("resize",l,{passive:!0}),()=>{window.removeEventListener("resize",l)})),[l]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:n,toggle:i}}(),f=function(e){return e?.match(ue)?.groups.title??""}(a)||o,{lineClassNames:x,code:b}=be(t,{metastring:a,language:m,magicComments:d}),g=l??function(e){return Boolean(e?.includes("showLineNumbers"))}(a);return(0,i.jsxs)(ve,{as:"div",className:(0,u.A)(n,m&&!n.includes(`language-${m}`)&&`language-${m}`),children:[f&&(0,i.jsx)("div",{className:je.codeBlockTitle,children:f}),(0,i.jsxs)("div",{className:je.codeBlockContent,children:[(0,i.jsx)(ke.f4,{theme:h,code:b,language:m??"text",children:e=>{let{className:t,style:n,tokens:s,getLineProps:a,getTokenProps:o}=e;return(0,i.jsx)("pre",{tabIndex:0,ref:p.codeBlockRef,className:(0,u.A)(t,je.codeBlock,"thin-scrollbar"),style:n,children:(0,i.jsx)("code",{className:(0,u.A)(je.codeBlockLines,g&&je.codeBlockLinesWithNumbering),children:s.map(((e,t)=>(0,i.jsx)(Le,{line:e,getLineProps:a,getTokenProps:o,classNames:x[t],showLineNumbers:g},t)))})})}}),(0,i.jsxs)("div",{className:je.buttonGroup,children:[(p.isEnabled||p.isCodeScrollable)&&(0,i.jsx)(Me,{className:je.codeButton,onClick:()=>p.toggle(),isEnabled:p.isEnabled}),(0,i.jsx)(Te,{className:je.codeButton,code:b})]})]})]})}function Se(e){let{children:t,...n}=e;const a=(0,ie.A)(),o=function(e){return s.Children.toArray(e).some((e=>(0,s.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof o?Ie:Ne;return(0,i.jsx)(l,{...n,children:o},String(a))}function Ue(e){return(0,i.jsx)("code",{...e})}var Ve=n(3427);const Re={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function ze(e){return!!e&&("SUMMARY"===e.tagName||ze(e.parentElement))}function Oe(e,t){return!!e&&(e===t||Oe(e.parentElement,t))}function Pe(e){let{summary:t,children:n,...a}=e;(0,Ve.A)().collectAnchor(a.id);const o=(0,ie.A)(),l=(0,s.useRef)(null),{collapsed:c,setCollapsed:r}=(0,S.u)({initialState:!a.open}),[d,m]=(0,s.useState)(a.open),h=s.isValidElement(t)?t:(0,i.jsx)("summary",{children:t??"Details"});return(0,i.jsxs)("details",{...a,ref:l,open:d,"data-collapsed":c,className:(0,u.A)(Re.details,o&&Re.isBrowser,a.className),onMouseDown:e=>{ze(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;ze(t)&&Oe(t,l.current)&&(e.preventDefault(),c?(r(!1),m(!0)):r(!0))},children:[h,(0,i.jsx)(S.N,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{r(e),m(!e)},children:(0,i.jsx)("div",{className:Re.collapsibleContent,children:n})})]})}const Ge={details:"details_b_Ee"},De="alert alert--info";function We(e){let{...t}=e;return(0,i.jsx)(Pe,{...t,className:(0,u.A)(De,Ge.details,t.className)})}function $e(e){const t=s.Children.toArray(e.children),n=t.find((e=>s.isValidElement(e)&&"summary"===e.type)),a=(0,i.jsx)(i.Fragment,{children:t.filter((e=>e!==n))});return(0,i.jsx)(We,{...e,summary:n,children:a})}function Fe(e){return(0,i.jsx)(se.A,{...e})}const qe={containsTaskList:"containsTaskList_mC6p"};function Ze(e){if(void 0!==e)return(0,u.A)(e,e?.includes("contains-task-list")&&qe.containsTaskList)}const Je={img:"img_ev3q"};function Ye(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find((e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),a=t.filter((e=>e!==n)),o=n?.props.children;return{mdxAdmonitionTitle:o,rest:a.length>0?(0,i.jsx)(i.Fragment,{children:a}):null}}(e.children),a=e.title??t;return{...e,...a&&{title:a},children:n}}const Ke={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function Qe(e){let{type:t,className:n,children:s}=e;return(0,i.jsx)("div",{className:(0,u.A)(b.G.common.admonition,b.G.common.admonitionType(t),Ke.admonition,n),children:s})}function Xe(e){let{icon:t,title:n}=e;return(0,i.jsxs)("div",{className:Ke.admonitionHeading,children:[(0,i.jsx)("span",{className:Ke.admonitionIcon,children:t}),n]})}function et(e){let{children:t}=e;return t?(0,i.jsx)("div",{className:Ke.admonitionContent,children:t}):null}function tt(e){const{type:t,icon:n,title:s,children:a,className:o}=e;return(0,i.jsxs)(Qe,{type:t,className:o,children:[(0,i.jsx)(Xe,{title:s,icon:n}),(0,i.jsx)(et,{children:a})]})}function nt(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const st={icon:(0,i.jsx)(nt,{}),title:(0,i.jsx)(g.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function at(e){return(0,i.jsx)(tt,{...st,...e,className:(0,u.A)("alert alert--secondary",e.className),children:e.children})}function ot(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const it={icon:(0,i.jsx)(ot,{}),title:(0,i.jsx)(g.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function lt(e){return(0,i.jsx)(tt,{...it,...e,className:(0,u.A)("alert alert--success",e.className),children:e.children})}function ct(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const rt={icon:(0,i.jsx)(ct,{}),title:(0,i.jsx)(g.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function dt(e){return(0,i.jsx)(tt,{...rt,...e,className:(0,u.A)("alert alert--info",e.className),children:e.children})}function ut(e){return(0,i.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const mt={icon:(0,i.jsx)(ut,{}),title:(0,i.jsx)(g.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function ht(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const pt={icon:(0,i.jsx)(ht,{}),title:(0,i.jsx)(g.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const ft={icon:(0,i.jsx)(ut,{}),title:(0,i.jsx)(g.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const xt={...{note:at,tip:lt,info:dt,warning:function(e){return(0,i.jsx)(tt,{...mt,...e,className:(0,u.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,i.jsx)(tt,{...pt,...e,className:(0,u.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,i.jsx)(at,{title:"secondary",...e}),important:e=>(0,i.jsx)(dt,{title:"important",...e}),success:e=>(0,i.jsx)(lt,{title:"success",...e}),caution:function(e){return(0,i.jsx)(tt,{...ft,...e,className:(0,u.A)("alert alert--warning",e.className),children:e.children})}}};function bt(e){const t=Ye(e),n=(s=t.type,xt[s]||(console.warn(`No admonition component found for admonition type "${s}". Using Info as fallback.`),xt.info));var s;return(0,i.jsx)(n,{...t})}const gt={Head:oe.A,details:$e,Details:$e,code:function(e){return function(e){return void 0!==e.children&&s.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")))}(e)?(0,i.jsx)(Ue,{...e}):(0,i.jsx)(Se,{...e})},a:function(e){return(0,i.jsx)(v.A,{...e})},pre:function(e){return(0,i.jsx)(i.Fragment,{children:e.children})},ul:function(e){return(0,i.jsx)("ul",{...e,className:Ze(e.className)})},li:function(e){return(0,Ve.A)().collectAnchor(e.id),(0,i.jsx)("li",{...e})},img:function(e){return(0,i.jsx)("img",{decoding:"async",loading:"lazy",...e,className:(t=e.className,(0,u.A)(t,Je.img))});var t},h1:e=>(0,i.jsx)(Fe,{as:"h1",...e}),h2:e=>(0,i.jsx)(Fe,{as:"h2",...e}),h3:e=>(0,i.jsx)(Fe,{as:"h3",...e}),h4:e=>(0,i.jsx)(Fe,{as:"h4",...e}),h5:e=>(0,i.jsx)(Fe,{as:"h5",...e}),h6:e=>(0,i.jsx)(Fe,{as:"h6",...e}),admonition:bt,mermaid:()=>null};function vt(e){let{children:t}=e;return(0,i.jsx)(ae.x,{components:gt,children:t})}function jt(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=r();return t.hide_title||void 0!==n?null:e.title}();return(0,i.jsxs)("div",{className:(0,u.A)(b.G.docs.docMarkdown,"markdown"),children:[n&&(0,i.jsx)("header",{children:(0,i.jsx)(se.A,{as:"h1",children:n})}),(0,i.jsx)(vt,{children:t})]})}var Nt=n(1243);function At(){return(0,i.jsx)(g.A,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function Ct(){return(0,i.jsx)(g.A,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function kt(){return(0,i.jsx)(oe.A,{children:(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function yt(e){let{className:t}=e;return(0,i.jsx)(bt,{type:"caution",title:(0,i.jsx)(At,{}),className:(0,u.A)(t,b.G.common.unlistedBanner),children:(0,i.jsx)(Ct,{})})}function Lt(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(kt,{}),(0,i.jsx)(yt,{...e})]})}const _t={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function Bt(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=r(),n=(0,m.l)(),s=e.hide_table_of_contents,a=!s&&t.length>0;return{hidden:s,mobile:a?(0,i.jsx)(K,{}):void 0,desktop:!a||"desktop"!==n&&"ssr"!==n?void 0:(0,i.jsx)(ne,{})}}(),{metadata:{unlisted:s}}=r();return(0,i.jsxs)("div",{className:"row",children:[(0,i.jsxs)("div",{className:(0,u.A)("col",!n.hidden&&_t.docItemCol),children:[s&&(0,i.jsx)(Lt,{}),(0,i.jsx)(f.A,{}),(0,i.jsxs)("div",{className:_t.docItemContainer,children:[(0,i.jsxs)("article",{children:[(0,i.jsx)(Nt.A,{}),(0,i.jsx)(x.A,{}),n.mobile,(0,i.jsx)(jt,{children:t}),(0,i.jsx)(I,{})]}),(0,i.jsx)(p,{})]})]}),n.desktop&&(0,i.jsx)("div",{className:"col col--3",children:n.desktop})]})}function wt(e){const t=`docs-doc-id-${e.content.metadata.id}`,n=e.content;return(0,i.jsx)(c,{content:e.content,children:(0,i.jsxs)(a.e3,{className:t,children:[(0,i.jsx)(d,{}),(0,i.jsx)(Bt,{children:(0,i.jsx)(n,{})})]})})}},6929:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(6540);var s=n(1312),a=n(4164),o=n(8774),i=n(4848);function l(e){const{permalink:t,title:n,subLabel:s,isNext:l}=e;return(0,i.jsxs)(o.A,{className:(0,a.A)("pagination-nav__link",l?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[s&&(0,i.jsx)("div",{className:"pagination-nav__sublabel",children:s}),(0,i.jsx)("div",{className:"pagination-nav__label",children:n})]})}function c(e){const{previous:t,next:n}=e;return(0,i.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,s.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,i.jsx)(l,{...t,subLabel:(0,i.jsx)(s.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),n&&(0,i.jsx)(l,{...n,subLabel:(0,i.jsx)(s.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}},4267:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(6540);var s=n(4164),a=n(1312),o=n(7559),i=n(2252),l=n(4848);function c(e){let{className:t}=e;const n=(0,i.r)();return n.badge?(0,l.jsx)("span",{className:(0,s.A)(t,o.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,l.jsx)(a.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label},children:"Version: {versionLabel}"})}):null}},1878:(e,t,n)=>{"use strict";n.d(t,{A:()=>x});n(6540);var s=n(4164),a=n(4586),o=n(8774),i=n(1312),l=n(8295),c=n(7559),r=n(5597),d=n(2252),u=n(4848);const m={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,u.jsx)(i.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,u.jsx)("b",{children:n.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,u.jsx)(i.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,u.jsx)("b",{children:n.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function h(e){const t=m[e.versionMetadata.banner];return(0,u.jsx)(t,{...e})}function p(e){let{versionLabel:t,to:n,onClick:s}=e;return(0,u.jsx)(i.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,u.jsx)("b",{children:(0,u.jsx)(o.A,{to:n,onClick:s,children:(0,u.jsx)(i.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function f(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:o}}=(0,a.A)(),{pluginId:i}=(0,l.vT)({failfast:!0}),{savePreferredVersionName:d}=(0,r.g1)(i),{latestDocSuggestion:m,latestVersionSuggestion:f}=(0,l.HW)(i),x=m??(b=f).docs.find((e=>e.id===b.mainDocId));var b;return(0,u.jsxs)("div",{className:(0,s.A)(t,c.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,u.jsx)("div",{children:(0,u.jsx)(h,{siteTitle:o,versionMetadata:n})}),(0,u.jsx)("div",{className:"margin-top--md",children:(0,u.jsx)(p,{versionLabel:f.label,to:x.path,onClick:()=>d(f.name)})})]})}function x(e){let{className:t}=e;const n=(0,d.r)();return n.banner?(0,u.jsx)(f,{className:t,versionMetadata:n}):null}},8426:(e,t)=>{function n(e){let t,n=[];for(let s of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(s))n.push(parseInt(s,10));else if(t=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,a,o]=t;if(s&&o){s=parseInt(s),o=parseInt(o);const e=s {"use strict";n.d(t,{R:()=>i,x:()=>l});var s=n(6540);const a={},o=s.createContext(a);function i(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/17896441.601ac5ff.js b/assets/js/17896441.601ac5ff.js new file mode 100644 index 0000000..fa218d1 --- /dev/null +++ b/assets/js/17896441.601ac5ff.js @@ -0,0 +1 @@ +(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[401],{1243:(e,t,n)=>{"use strict";n.d(t,{A:()=>b});n(6540);var s=n(4164),a=n(7559),o=n(4718),i=n(9169),l=n(8774),c=n(1312),r=n(6025),d=n(4848);function u(e){return(0,d.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,d.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const m={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function h(){const e=(0,r.Ay)("/");return(0,d.jsx)("li",{className:"breadcrumbs__item",children:(0,d.jsx)(l.A,{"aria-label":(0,c.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,d.jsx)(u,{className:m.breadcrumbHomeIcon})})})}const p={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function f(e){let{children:t,href:n,isLast:s}=e;const a="breadcrumbs__link";return s?(0,d.jsx)("span",{className:a,itemProp:"name",children:t}):n?(0,d.jsx)(l.A,{className:a,href:n,itemProp:"item",children:(0,d.jsx)("span",{itemProp:"name",children:t})}):(0,d.jsx)("span",{className:a,children:t})}function x(e){let{children:t,active:n,index:a,addMicrodata:o}=e;return(0,d.jsxs)("li",{...o&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,s.A)("breadcrumbs__item",{"breadcrumbs__item--active":n}),children:[t,(0,d.jsx)("meta",{itemProp:"position",content:String(a+1)})]})}function b(){const e=(0,o.OF)(),t=(0,i.Dt)();return e?(0,d.jsx)("nav",{className:(0,s.A)(a.G.docs.docBreadcrumbs,p.breadcrumbsContainer),"aria-label":(0,c.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,d.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,d.jsx)(h,{}),e.map(((t,n)=>{const s=n===e.length-1,a="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,d.jsx)(x,{active:s,index:n,addMicrodata:!!a,children:(0,d.jsx)(f,{href:a,isLast:s,children:t.label})},n)}))]})}):null}},1714:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>Ot});var s=n(6540),a=n(1003),o=n(9532),i=n(4848);const l=s.createContext(null);function c(e){let{children:t,content:n}=e;const a=function(e){return(0,s.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return(0,i.jsx)(l.Provider,{value:a,children:t})}function r(){const e=(0,s.useContext)(l);if(null===e)throw new o.dV("DocProvider");return e}function d(){const{metadata:e,frontMatter:t,assets:n}=r();return(0,i.jsx)(a.be,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var u=n(4164),m=n(4581),h=n(6929);function p(){const{metadata:e}=r();return(0,i.jsx)(h.A,{previous:e.previous,next:e.next})}var f=n(1878),x=n(4267),b=n(7559),g=n(1312),j=n(8774);const v={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function N(e){let{permalink:t,label:n,count:s,description:a}=e;return(0,i.jsxs)(j.A,{href:t,title:a,className:(0,u.A)(v.tag,s?v.tagWithCount:v.tagRegular),children:[n,s&&(0,i.jsx)("span",{children:s})]})}const A={tags:"tags_jXut",tag:"tag_QGVx"};function C(e){let{tags:t}=e;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("b",{children:(0,i.jsx)(g.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,i.jsx)("ul",{className:(0,u.A)(A.tags,"padding--none","margin-left--sm"),children:t.map((e=>(0,i.jsx)("li",{className:A.tag,children:(0,i.jsx)(N,{...e})},e.permalink)))})]})}const y={iconEdit:"iconEdit_Z9Sw"};function k(e){let{className:t,...n}=e;return(0,i.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,u.A)(y.iconEdit,t),"aria-hidden":"true",...n,children:(0,i.jsx)("g",{children:(0,i.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function L(e){let{editUrl:t}=e;return(0,i.jsxs)(j.A,{to:t,className:b.G.common.editThisPage,children:[(0,i.jsx)(k,{}),(0,i.jsx)(g.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}var _=n(4586);function B(e){void 0===e&&(e={});const{i18n:{currentLocale:t}}=(0,_.A)(),n=function(){const{i18n:{currentLocale:e,localeConfigs:t}}=(0,_.A)();return t[e].calendar}();return new Intl.DateTimeFormat(t,{calendar:n,...e})}function T(e){let{lastUpdatedAt:t}=e;const n=new Date(t),s=B({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(n);return(0,i.jsx)(g.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,i.jsx)("b",{children:(0,i.jsx)("time",{dateTime:n.toISOString(),itemProp:"dateModified",children:s})})},children:" on {date}"})}function w(e){let{lastUpdatedBy:t}=e;return(0,i.jsx)(g.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,i.jsx)("b",{children:t})},children:" by {user}"})}function E(e){let{lastUpdatedAt:t,lastUpdatedBy:n}=e;return(0,i.jsxs)("span",{className:b.G.common.lastUpdated,children:[(0,i.jsx)(g.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t?(0,i.jsx)(T,{lastUpdatedAt:t}):"",byUser:n?(0,i.jsx)(w,{lastUpdatedBy:n}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const H={lastUpdated:"lastUpdated_JAkA"};function M(e){let{className:t,editUrl:n,lastUpdatedAt:s,lastUpdatedBy:a}=e;return(0,i.jsxs)("div",{className:(0,u.A)("row",t),children:[(0,i.jsx)("div",{className:"col",children:n&&(0,i.jsx)(L,{editUrl:n})}),(0,i.jsx)("div",{className:(0,u.A)("col",H.lastUpdated),children:(s||a)&&(0,i.jsx)(E,{lastUpdatedAt:s,lastUpdatedBy:a})})]})}function I(){const{metadata:e}=r(),{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s,tags:a}=e,o=a.length>0,l=!!(t||n||s);return o||l?(0,i.jsxs)("footer",{className:(0,u.A)(b.G.docs.docFooter,"docusaurus-mt-lg"),children:[o&&(0,i.jsx)("div",{className:(0,u.A)("row margin-top--sm",b.G.docs.docFooterTagsRow),children:(0,i.jsx)("div",{className:"col",children:(0,i.jsx)(C,{tags:a})})}),l&&(0,i.jsx)(M,{className:(0,u.A)("margin-top--sm",b.G.docs.docFooterEditMetaRow),editUrl:t,lastUpdatedAt:n,lastUpdatedBy:s})]}):null}var S=n(1422),U=n(6342);function V(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const s=n.slice(2,e.level);e.parentIndex=Math.max(...s),n[e.level]=t}));const s=[];return t.forEach((e=>{const{parentIndex:n,...a}=e;n>=0?t[n].children.push(a):s.push(a)})),s}function R(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:s}=e;return t.flatMap((e=>{const t=R({toc:e.children,minHeadingLevel:n,maxHeadingLevel:s});return function(e){return e.level>=n&&e.level<=s}(e)?[{...e,children:t}]:t}))}function z(e){const t=e.getBoundingClientRect();return t.top===t.bottom?z(e.parentNode):t}function O(e,t){let{anchorTopOffset:n}=t;const s=e.find((e=>z(e).top>=n));if(s){return function(e){return e.top>0&&e.bottom {e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function G(e){const t=(0,s.useRef)(void 0),n=P();(0,s.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:o,maxHeadingLevel:i}=e;function l(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),l=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const s=[];for(let a=t;a<=n;a+=1)s.push(`h${a}.anchor`);return Array.from(document.querySelectorAll(s.join()))}({minHeadingLevel:o,maxHeadingLevel:i}),c=O(l,{anchorTopOffset:n.current}),r=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(a),e.classList.add(a),t.current=e):e.classList.remove(a)}(e,e===r)}))}return document.addEventListener("scroll",l),document.addEventListener("resize",l),l(),()=>{document.removeEventListener("scroll",l),document.removeEventListener("resize",l)}}),[e,n])}function D(e){let{toc:t,className:n,linkClassName:s,isChild:a}=e;return t.length?(0,i.jsx)("ul",{className:a?void 0:n,children:t.map((e=>(0,i.jsxs)("li",{children:[(0,i.jsx)(j.A,{to:`#${e.id}`,className:s??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,i.jsx)(D,{isChild:!0,toc:e.children,className:n,linkClassName:s})]},e.id)))}):null}const $=s.memo(D);function F(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:a="table-of-contents__link",linkActiveClassName:o,minHeadingLevel:l,maxHeadingLevel:c,...r}=e;const d=(0,U.p)(),u=l??d.tableOfContents.minHeadingLevel,m=c??d.tableOfContents.maxHeadingLevel,h=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,s.useMemo)((()=>R({toc:V(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:u,maxHeadingLevel:m});return G((0,s.useMemo)((()=>{if(a&&o)return{linkClassName:a,linkActiveClassName:o,minHeadingLevel:u,maxHeadingLevel:m}}),[a,o,u,m])),(0,i.jsx)($,{toc:h,className:n,linkClassName:a,...r})}const W={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function q(e){let{collapsed:t,...n}=e;return(0,i.jsx)("button",{type:"button",...n,className:(0,u.A)("clean-btn",W.tocCollapsibleButton,!t&&W.tocCollapsibleButtonExpanded,n.className),children:(0,i.jsx)(g.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const Z={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function J(e){let{toc:t,className:n,minHeadingLevel:s,maxHeadingLevel:a}=e;const{collapsed:o,toggleCollapsed:l}=(0,S.u)({initialState:!0});return(0,i.jsxs)("div",{className:(0,u.A)(Z.tocCollapsible,!o&&Z.tocCollapsibleExpanded,n),children:[(0,i.jsx)(q,{collapsed:o,onClick:l}),(0,i.jsx)(S.N,{lazy:!0,className:Z.tocCollapsibleContent,collapsed:o,children:(0,i.jsx)(F,{toc:t,minHeadingLevel:s,maxHeadingLevel:a})})]})}const Y={tocMobile:"tocMobile_ITEo"};function K(){const{toc:e,frontMatter:t}=r();return(0,i.jsx)(J,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,u.A)(b.G.docs.docTocMobile,Y.tocMobile)})}const Q={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"},X="table-of-contents__link toc-highlight",ee="table-of-contents__link--active";function te(e){let{className:t,...n}=e;return(0,i.jsx)("div",{className:(0,u.A)(Q.tableOfContents,"thin-scrollbar",t),children:(0,i.jsx)(F,{...n,linkClassName:X,linkActiveClassName:ee})})}function ne(){const{toc:e,frontMatter:t}=r();return(0,i.jsx)(te,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:b.G.docs.docTocDesktop})}var se=n(1107),ae=n(8453),oe=n(5260),ie=n(2303),le=n(5293);function ce(){const{prism:e}=(0,U.p)(),{colorMode:t}=(0,le.G)(),n=e.theme,s=e.darkTheme||n;return"dark"===t?s:n}var re=n(8426),de=n.n(re);const ue=/title=(? ["'])(?.*?)\1/,me=/\{(? [\d,-]+)\}/,he={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},pe={...he,lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},fe=Object.keys(he);function xe(e,t){const n=e.map((e=>{const{start:n,end:s}=pe[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${s})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function be(e,t){let n=e.replace(/\n$/,"");const{language:s,magicComments:a,metastring:o}=t;if(o&&me.test(o)){const e=o.match(me).groups.range;if(0===a.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${o}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=a[0].className,s=de()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(s),code:n}}if(void 0===s)return{lineClassNames:{},code:n};const i=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return xe(["js","jsBlock"],t);case"jsx":case"tsx":return xe(["js","jsBlock","jsx"],t);case"html":return xe(["js","jsBlock","html"],t);case"python":case"py":case"bash":return xe(["bash"],t);case"markdown":case"md":return xe(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return xe(["tex"],t);case"lua":case"haskell":case"sql":return xe(["lua"],t);case"wasm":return xe(["wasm"],t);case"vb":case"vba":case"visual-basic":return xe(["vb","rem"],t);case"vbnet":return xe(["vbnet","rem"],t);case"batch":return xe(["rem"],t);case"basic":return xe(["rem","f90"],t);case"fsharp":return xe(["js","ml"],t);case"ocaml":case"sml":return xe(["ml"],t);case"fortran":return xe(["f90"],t);case"cobol":return xe(["cobol"],t);default:return xe(fe,t)}}(s,a),l=n.split("\n"),c=Object.fromEntries(a.map((e=>[e.className,{start:0,range:""}]))),r=Object.fromEntries(a.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),u=Object.fromEntries(a.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let h=0;h void 0!==e));r[t]?c[r[t]].range+=`${h},`:d[t]?c[d[t]].start=h:u[t]&&(c[u[t]].range+=`${c[u[t]].start}-${h-1},`),l.splice(h,1)}n=l.join("\n");const m={};return Object.entries(c).forEach((e=>{let[t,{range:n}]=e;de()(n).forEach((e=>{m[e]??=[],m[e].push(t)}))})),{lineClassNames:m,code:n}}const ge="codeBlockContainer_Ckt0";function je(e){let{as:t,...n}=e;const s=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[s,a]=e;const o=t[s];o&&"string"==typeof a&&(n[o]=a)})),n}(ce());return(0,i.jsx)(t,{...n,style:s,className:(0,u.A)(n.className,ge,b.G.common.codeBlock)})}const ve={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function Ne(e){let{children:t,className:n}=e;return(0,i.jsx)(je,{as:"pre",tabIndex:0,className:(0,u.A)(ve.codeBlockStandalone,"thin-scrollbar",n),children:(0,i.jsx)("code",{className:ve.codeBlockLines,children:t})})}const Ae={attributes:!0,characterData:!0,childList:!0,subtree:!0};function Ce(e,t){const[n,a]=(0,s.useState)(),i=(0,s.useCallback)((()=>{a(e.current?.closest("[role=tabpanel][hidden]"))}),[e,a]);(0,s.useEffect)((()=>{i()}),[i]),function(e,t,n){void 0===n&&(n=Ae);const a=(0,o._q)(t),i=(0,o.Be)(n);(0,s.useEffect)((()=>{const t=new MutationObserver(a);return e&&t.observe(e,i),()=>t.disconnect()}),[e,a,i])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),i())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var ye=n(1765);const ke="codeLine_lJS_",Le="codeLineNumber_Tfdd",_e="codeLineContent_feaV";function Be(e){let{line:t,classNames:n,showLineNumbers:s,getLineProps:a,getTokenProps:o}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const l=a({line:t,className:(0,u.A)(n,s&&ke)}),c=t.map(((e,t)=>(0,i.jsx)("span",{...o({token:e})},t)));return(0,i.jsxs)("span",{...l,children:[s?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{className:Le}),(0,i.jsx)("span",{className:_e,children:c})]}):c,(0,i.jsx)("br",{})]})}function Te(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function we(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const Ee={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function He(e){let{code:t,className:n}=e;const[a,o]=(0,s.useState)(!1),l=(0,s.useRef)(void 0),c=(0,s.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const s=document.createElement("textarea"),a=document.activeElement;s.value=e,s.setAttribute("readonly",""),s.style.contain="strict",s.style.position="absolute",s.style.left="-9999px",s.style.fontSize="12pt";const o=document.getSelection(),i=o.rangeCount>0&&o.getRangeAt(0);n.append(s),s.select(),s.selectionStart=0,s.selectionEnd=e.length;let l=!1;try{l=document.execCommand("copy")}catch{}s.remove(),i&&(o.removeAllRanges(),o.addRange(i)),a&&a.focus()}(t),o(!0),l.current=window.setTimeout((()=>{o(!1)}),1e3)}),[t]);return(0,s.useEffect)((()=>()=>window.clearTimeout(l.current)),[]),(0,i.jsx)("button",{type:"button","aria-label":a?(0,g.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,g.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,g.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,u.A)("clean-btn",n,Ee.copyButton,a&&Ee.copyButtonCopied),onClick:c,children:(0,i.jsxs)("span",{className:Ee.copyButtonIcons,"aria-hidden":"true",children:[(0,i.jsx)(Te,{className:Ee.copyButtonIcon}),(0,i.jsx)(we,{className:Ee.copyButtonSuccessIcon})]})})}function Me(e){return(0,i.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}const Ie="wordWrapButtonIcon_Bwma",Se="wordWrapButtonEnabled_EoeP";function Ue(e){let{className:t,onClick:n,isEnabled:s}=e;const a=(0,g.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,i.jsx)("button",{type:"button",onClick:n,className:(0,u.A)("clean-btn",t,s&&Se),"aria-label":a,title:a,children:(0,i.jsx)(Me,{className:Ie,"aria-hidden":"true"})})}function Ve(e){let{children:t,className:n="",metastring:a,title:o,showLineNumbers:l,language:c}=e;const{prism:{defaultLanguage:r,magicComments:d}}=(0,U.p)(),m=function(e){return e?.toLowerCase()}(c??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??r),h=ce(),p=function(){const[e,t]=(0,s.useState)(!1),[n,a]=(0,s.useState)(!1),o=(0,s.useRef)(null),i=(0,s.useCallback)((()=>{const n=o.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[o,e]),l=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=o.current,n=e>t||o.current.querySelector("code").hasAttribute("style");a(n)}),[o]);return Ce(o,l),(0,s.useEffect)((()=>{l()}),[e,l]),(0,s.useEffect)((()=>(window.addEventListener("resize",l,{passive:!0}),()=>{window.removeEventListener("resize",l)})),[l]),{codeBlockRef:o,isEnabled:e,isCodeScrollable:n,toggle:i}}(),f=function(e){return e?.match(ue)?.groups.title??""}(a)||o,{lineClassNames:x,code:b}=be(t,{metastring:a,language:m,magicComments:d}),g=l??function(e){return Boolean(e?.includes("showLineNumbers"))}(a);return(0,i.jsxs)(je,{as:"div",className:(0,u.A)(n,m&&!n.includes(`language-${m}`)&&`language-${m}`),children:[f&&(0,i.jsx)("div",{className:ve.codeBlockTitle,children:f}),(0,i.jsxs)("div",{className:ve.codeBlockContent,children:[(0,i.jsx)(ye.f4,{theme:h,code:b,language:m??"text",children:e=>{let{className:t,style:n,tokens:s,getLineProps:a,getTokenProps:o}=e;return(0,i.jsx)("pre",{tabIndex:0,ref:p.codeBlockRef,className:(0,u.A)(t,ve.codeBlock,"thin-scrollbar"),style:n,children:(0,i.jsx)("code",{className:(0,u.A)(ve.codeBlockLines,g&&ve.codeBlockLinesWithNumbering),children:s.map(((e,t)=>(0,i.jsx)(Be,{line:e,getLineProps:a,getTokenProps:o,classNames:x[t],showLineNumbers:g},t)))})})}}),(0,i.jsxs)("div",{className:ve.buttonGroup,children:[(p.isEnabled||p.isCodeScrollable)&&(0,i.jsx)(Ue,{className:ve.codeButton,onClick:()=>p.toggle(),isEnabled:p.isEnabled}),(0,i.jsx)(He,{className:ve.codeButton,code:b})]})]})]})}function Re(e){let{children:t,...n}=e;const a=(0,ie.A)(),o=function(e){return s.Children.toArray(e).some((e=>(0,s.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof o?Ve:Ne;return(0,i.jsx)(l,{...n,children:o},String(a))}function ze(e){return(0,i.jsx)("code",{...e})}var Oe=n(3427);const Pe="details_lb9f",Ge="isBrowser_bmU9",De="collapsibleContent_i85q";function $e(e){return!!e&&("SUMMARY"===e.tagName||$e(e.parentElement))}function Fe(e,t){return!!e&&(e===t||Fe(e.parentElement,t))}function We(e){let{summary:t,children:n,...a}=e;(0,Oe.A)().collectAnchor(a.id);const o=(0,ie.A)(),l=(0,s.useRef)(null),{collapsed:c,setCollapsed:r}=(0,S.u)({initialState:!a.open}),[d,m]=(0,s.useState)(a.open),h=s.isValidElement(t)?t:(0,i.jsx)("summary",{children:t??"Details"});return(0,i.jsxs)("details",{...a,ref:l,open:d,"data-collapsed":c,className:(0,u.A)(Pe,o&&Ge,a.className),onMouseDown:e=>{$e(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;$e(t)&&Fe(t,l.current)&&(e.preventDefault(),c?(r(!1),m(!0)):r(!0))},children:[h,(0,i.jsx)(S.N,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{r(e),m(!e)},children:(0,i.jsx)("div",{className:De,children:n})})]})}const qe="details_b_Ee";function Ze(e){let{...t}=e;return(0,i.jsx)(We,{...t,className:(0,u.A)("alert alert--info",qe,t.className)})}function Je(e){const t=s.Children.toArray(e.children),n=t.find((e=>s.isValidElement(e)&&"summary"===e.type)),a=(0,i.jsx)(i.Fragment,{children:t.filter((e=>e!==n))});return(0,i.jsx)(Ze,{...e,summary:n,children:a})}function Ye(e){return(0,i.jsx)(se.A,{...e})}const Ke="containsTaskList_mC6p";function Qe(e){if(void 0!==e)return(0,u.A)(e,e?.includes("contains-task-list")&&Ke)}const Xe="img_ev3q";function et(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=s.Children.toArray(e),n=t.find((e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),a=t.filter((e=>e!==n)),o=n?.props.children;return{mdxAdmonitionTitle:o,rest:a.length>0?(0,i.jsx)(i.Fragment,{children:a}):null}}(e.children),a=e.title??t;return{...e,...a&&{title:a},children:n}}const tt="admonition_xJq3",nt="admonitionHeading_Gvgb",st="admonitionIcon_Rf37",at="admonitionContent_BuS1";function ot(e){let{type:t,className:n,children:s}=e;return(0,i.jsx)("div",{className:(0,u.A)(b.G.common.admonition,b.G.common.admonitionType(t),tt,n),children:s})}function it(e){let{icon:t,title:n}=e;return(0,i.jsxs)("div",{className:nt,children:[(0,i.jsx)("span",{className:st,children:t}),n]})}function lt(e){let{children:t}=e;return t?(0,i.jsx)("div",{className:at,children:t}):null}function ct(e){const{type:t,icon:n,title:s,children:a,className:o}=e;return(0,i.jsxs)(ot,{type:t,className:o,children:[s||n?(0,i.jsx)(it,{title:s,icon:n}):null,(0,i.jsx)(lt,{children:a})]})}function rt(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const dt={icon:(0,i.jsx)(rt,{}),title:(0,i.jsx)(g.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function ut(e){return(0,i.jsx)(ct,{...dt,...e,className:(0,u.A)("alert alert--secondary",e.className),children:e.children})}function mt(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const ht={icon:(0,i.jsx)(mt,{}),title:(0,i.jsx)(g.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function pt(e){return(0,i.jsx)(ct,{...ht,...e,className:(0,u.A)("alert alert--success",e.className),children:e.children})}function ft(e){return(0,i.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const xt={icon:(0,i.jsx)(ft,{}),title:(0,i.jsx)(g.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function bt(e){return(0,i.jsx)(ct,{...xt,...e,className:(0,u.A)("alert alert--info",e.className),children:e.children})}function gt(e){return(0,i.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const jt={icon:(0,i.jsx)(gt,{}),title:(0,i.jsx)(g.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function vt(e){return(0,i.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,i.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const Nt={icon:(0,i.jsx)(vt,{}),title:(0,i.jsx)(g.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const At={icon:(0,i.jsx)(gt,{}),title:(0,i.jsx)(g.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const Ct={...{note:ut,tip:pt,info:bt,warning:function(e){return(0,i.jsx)(ct,{...jt,...e,className:(0,u.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,i.jsx)(ct,{...Nt,...e,className:(0,u.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,i.jsx)(ut,{title:"secondary",...e}),important:e=>(0,i.jsx)(bt,{title:"important",...e}),success:e=>(0,i.jsx)(pt,{title:"success",...e}),caution:function(e){return(0,i.jsx)(ct,{...At,...e,className:(0,u.A)("alert alert--warning",e.className),children:e.children})}}};function yt(e){const t=et(e),n=(s=t.type,Ct[s]||(console.warn(`No admonition component found for admonition type "${s}". Using Info as fallback.`),Ct.info));var s;return(0,i.jsx)(n,{...t})}const kt={Head:oe.A,details:Je,Details:Je,code:function(e){return function(e){return void 0!==e.children&&s.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")))}(e)?(0,i.jsx)(ze,{...e}):(0,i.jsx)(Re,{...e})},a:function(e){return(0,i.jsx)(j.A,{...e})},pre:function(e){return(0,i.jsx)(i.Fragment,{children:e.children})},ul:function(e){return(0,i.jsx)("ul",{...e,className:Qe(e.className)})},li:function(e){return(0,Oe.A)().collectAnchor(e.id),(0,i.jsx)("li",{...e})},img:function(e){return(0,i.jsx)("img",{decoding:"async",loading:"lazy",...e,className:(t=e.className,(0,u.A)(t,Xe))});var t},h1:e=>(0,i.jsx)(Ye,{as:"h1",...e}),h2:e=>(0,i.jsx)(Ye,{as:"h2",...e}),h3:e=>(0,i.jsx)(Ye,{as:"h3",...e}),h4:e=>(0,i.jsx)(Ye,{as:"h4",...e}),h5:e=>(0,i.jsx)(Ye,{as:"h5",...e}),h6:e=>(0,i.jsx)(Ye,{as:"h6",...e}),admonition:yt,mermaid:()=>null};function Lt(e){let{children:t}=e;return(0,i.jsx)(ae.x,{components:kt,children:t})}function _t(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=r();return t.hide_title||void 0!==n?null:e.title}();return(0,i.jsxs)("div",{className:(0,u.A)(b.G.docs.docMarkdown,"markdown"),children:[n&&(0,i.jsx)("header",{children:(0,i.jsx)(se.A,{as:"h1",children:n})}),(0,i.jsx)(Lt,{children:t})]})}var Bt=n(1243);function Tt(){return(0,i.jsx)(g.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function wt(){return(0,i.jsx)(g.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function Et(){return(0,i.jsx)(oe.A,{children:(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function Ht(){return(0,i.jsx)(g.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function Mt(){return(0,i.jsx)(g.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}function It(e){let{className:t}=e;return(0,i.jsx)(yt,{type:"caution",title:(0,i.jsx)(Ht,{}),className:(0,u.A)(t,b.G.common.draftBanner),children:(0,i.jsx)(Mt,{})})}function St(e){let{className:t}=e;return(0,i.jsx)(yt,{type:"caution",title:(0,i.jsx)(Tt,{}),className:(0,u.A)(t,b.G.common.unlistedBanner),children:(0,i.jsx)(wt,{})})}function Ut(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Et,{}),(0,i.jsx)(St,{...e})]})}function Vt(e){let{metadata:t}=e;const{unlisted:n,frontMatter:s}=t;return(0,i.jsxs)(i.Fragment,{children:[(n||s.unlisted)&&(0,i.jsx)(Ut,{}),s.draft&&(0,i.jsx)(It,{})]})}const Rt={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function zt(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=r(),n=(0,m.l)(),s=e.hide_table_of_contents,a=!s&&t.length>0;return{hidden:s,mobile:a?(0,i.jsx)(K,{}):void 0,desktop:!a||"desktop"!==n&&"ssr"!==n?void 0:(0,i.jsx)(ne,{})}}(),{metadata:s}=r();return(0,i.jsxs)("div",{className:"row",children:[(0,i.jsxs)("div",{className:(0,u.A)("col",!n.hidden&&Rt.docItemCol),children:[(0,i.jsx)(Vt,{metadata:s}),(0,i.jsx)(f.A,{}),(0,i.jsxs)("div",{className:Rt.docItemContainer,children:[(0,i.jsxs)("article",{children:[(0,i.jsx)(Bt.A,{}),(0,i.jsx)(x.A,{}),n.mobile,(0,i.jsx)(_t,{children:t}),(0,i.jsx)(I,{})]}),(0,i.jsx)(p,{})]})]}),n.desktop&&(0,i.jsx)("div",{className:"col col--3",children:n.desktop})]})}function Ot(e){const t=`docs-doc-id-${e.content.metadata.id}`,n=e.content;return(0,i.jsx)(c,{content:e.content,children:(0,i.jsxs)(a.e3,{className:t,children:[(0,i.jsx)(d,{}),(0,i.jsx)(zt,{children:(0,i.jsx)(n,{})})]})})}},6929:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(6540);var s=n(1312),a=n(4164),o=n(8774),i=n(4848);function l(e){const{permalink:t,title:n,subLabel:s,isNext:l}=e;return(0,i.jsxs)(o.A,{className:(0,a.A)("pagination-nav__link",l?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[s&&(0,i.jsx)("div",{className:"pagination-nav__sublabel",children:s}),(0,i.jsx)("div",{className:"pagination-nav__label",children:n})]})}function c(e){const{previous:t,next:n}=e;return(0,i.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,s.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,i.jsx)(l,{...t,subLabel:(0,i.jsx)(s.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),n&&(0,i.jsx)(l,{...n,subLabel:(0,i.jsx)(s.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}},4267:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});n(6540);var s=n(4164),a=n(1312),o=n(7559),i=n(3025),l=n(4848);function c(e){let{className:t}=e;const n=(0,i.r)();return n.badge?(0,l.jsx)("span",{className:(0,s.A)(t,o.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,l.jsx)(a.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label},children:"Version: {versionLabel}"})}):null}},1878:(e,t,n)=>{"use strict";n.d(t,{A:()=>x});n(6540);var s=n(4164),a=n(4586),o=n(8774),i=n(1312),l=n(8295),c=n(7559),r=n(3886),d=n(3025),u=n(4848);const m={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,u.jsx)(i.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,u.jsx)("b",{children:n.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return(0,u.jsx)(i.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,u.jsx)("b",{children:n.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function h(e){const t=m[e.versionMetadata.banner];return(0,u.jsx)(t,{...e})}function p(e){let{versionLabel:t,to:n,onClick:s}=e;return(0,u.jsx)(i.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,u.jsx)("b",{children:(0,u.jsx)(o.A,{to:n,onClick:s,children:(0,u.jsx)(i.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function f(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:o}}=(0,a.A)(),{pluginId:i}=(0,l.vT)({failfast:!0}),{savePreferredVersionName:d}=(0,r.g1)(i),{latestDocSuggestion:m,latestVersionSuggestion:f}=(0,l.HW)(i),x=m??(b=f).docs.find((e=>e.id===b.mainDocId));var b;return(0,u.jsxs)("div",{className:(0,s.A)(t,c.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,u.jsx)("div",{children:(0,u.jsx)(h,{siteTitle:o,versionMetadata:n})}),(0,u.jsx)("div",{className:"margin-top--md",children:(0,u.jsx)(p,{versionLabel:f.label,to:x.path,onClick:()=>d(f.name)})})]})}function x(e){let{className:t}=e;const n=(0,d.r)();return n.banner?(0,u.jsx)(f,{className:t,versionMetadata:n}):null}},8426:(e,t)=>{function n(e){let t,n=[];for(let s of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(s))n.push(parseInt(s,10));else if(t=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,a,o]=t;if(s&&o){s=parseInt(s),o=parseInt(o);const e=s {"use strict";n.d(t,{R:()=>i,x:()=>l});var s=n(6540);const a={},o=s.createContext(a);function i(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/182f8820.1158822b.js b/assets/js/182f8820.1158822b.js new file mode 100644 index 0000000..dc5865f --- /dev/null +++ b/assets/js/182f8820.1158822b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[18],{2586:e=>{e.exports=JSON.parse('{"categoryGeneratedIndex":{"title":"STIGATRON Security Operator","description":"Operator to enhance the experience when working with the DISA Fully Certified RKE2 STIG","slug":"/category/stigatron-security-operator","permalink":"/carbide-docs/docs/category/stigatron-security-operator","sidebar":"tutorialSidebar","navigation":{"previous":{"title":"Uninstall","permalink":"/carbide-docs/docs/airgapped-docs/uninstall"},"next":{"title":"Creating STIGATRON Scans","permalink":"/carbide-docs/docs/stigatron-docs/create-scan"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/1fc35beb.0a038d11.js b/assets/js/1fc35beb.0a038d11.js deleted file mode 100644 index 0c3db19..0000000 --- a/assets/js/1fc35beb.0a038d11.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[128],{4661:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>u,frontMatter:()=>s,metadata:()=>n,toc:()=>d});var c=r(4848),i=r(8453);const s={},a="Architecture",n={id:"registry-docs/architecture",title:"Architecture",description:"This page will walk through the architecture of the Carbide Secured Registry (CSR), including both of the pipelines related to the CSR, as well as typical usage of the images.",source:"@site/docs/registry-docs/architecture.md",sourceDirName:"registry-docs",slug:"/registry-docs/architecture",permalink:"/carbide-docs/docs/registry-docs/architecture",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/architecture.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Introduction",permalink:"/carbide-docs/docs/registry-docs/introduction"},next:{title:"Release Cadence",permalink:"/carbide-docs/docs/registry-docs/release-cadence"}},o={},d=[{value:"Pipeline Architecture",id:"pipeline-architecture",level:2},{value:"Usage Architecture",id:"usage-architecture",level:2}];function h(e){const t={h1:"h1",h2:"h2",img:"img",p:"p",...(0,i.R)(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(t.h1,{id:"architecture",children:"Architecture"}),"\n",(0,c.jsx)(t.p,{children:"This page will walk through the architecture of the Carbide Secured Registry (CSR), including both of the pipelines related to the CSR, as well as typical usage of the images."}),"\n",(0,c.jsx)(t.h2,{id:"pipeline-architecture",children:"Pipeline Architecture"}),"\n",(0,c.jsx)(t.p,{children:(0,c.jsx)(t.img,{alt:"Pipeline Architecture",src:r(4796).A+""})}),"\n",(0,c.jsx)(t.h2,{id:"usage-architecture",children:"Usage Architecture"}),"\n",(0,c.jsx)(t.p,{children:(0,c.jsx)(t.img,{alt:"Usage Architecture",src:r(5884).A+""})})]})}function u(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,c.jsx)(t,{...e,children:(0,c.jsx)(h,{...e})}):h(e)}},4796:(e,t,r)=>{r.d(t,{A:()=>c});const c=r.p+"assets/images/csr-pipelines-arch-diagram-595270292b31853bec14feb720a6085f.svg"},5884:(e,t,r)=>{r.d(t,{A:()=>c});const c=r.p+"assets/images/csr-usage-arch-diagram-54a0a7c1078879aa2b9a7845c78c74b9.svg"},8453:(e,t,r)=>{r.d(t,{R:()=>a,x:()=>n});var c=r(6540);const i={},s=c.createContext(i);function a(e){const t=c.useContext(s);return c.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function n(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),c.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1fc35beb.55c51e1f.js b/assets/js/1fc35beb.55c51e1f.js new file mode 100644 index 0000000..d9f984c --- /dev/null +++ b/assets/js/1fc35beb.55c51e1f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[128],{4796:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>u,frontMatter:()=>s,metadata:()=>n,toc:()=>d});var c=r(4848),i=r(8453);const s={},a="Architecture",n={id:"registry-docs/architecture",title:"Architecture",description:"This page will walk through the architecture of the Carbide Secured Registry (CSR), including both of the pipelines related to the CSR, as well as typical usage of the images.",source:"@site/docs/registry-docs/architecture.md",sourceDirName:"registry-docs",slug:"/registry-docs/architecture",permalink:"/carbide-docs/docs/registry-docs/architecture",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/architecture.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Introduction",permalink:"/carbide-docs/docs/registry-docs/introduction"},next:{title:"Release Cadence",permalink:"/carbide-docs/docs/registry-docs/release-cadence"}},o={},d=[{value:"Pipeline Architecture",id:"pipeline-architecture",level:2},{value:"Usage Architecture",id:"usage-architecture",level:2}];function h(e){const t={h1:"h1",h2:"h2",header:"header",img:"img",p:"p",...(0,i.R)(),...e.components};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(t.header,{children:(0,c.jsx)(t.h1,{id:"architecture",children:"Architecture"})}),"\n",(0,c.jsx)(t.p,{children:"This page will walk through the architecture of the Carbide Secured Registry (CSR), including both of the pipelines related to the CSR, as well as typical usage of the images."}),"\n",(0,c.jsx)(t.h2,{id:"pipeline-architecture",children:"Pipeline Architecture"}),"\n",(0,c.jsx)(t.p,{children:(0,c.jsx)(t.img,{alt:"Pipeline Architecture",src:r(2415).A+""})}),"\n",(0,c.jsx)(t.h2,{id:"usage-architecture",children:"Usage Architecture"}),"\n",(0,c.jsx)(t.p,{children:(0,c.jsx)(t.img,{alt:"Usage Architecture",src:r(5884).A+""})})]})}function u(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,c.jsx)(t,{...e,children:(0,c.jsx)(h,{...e})}):h(e)}},2415:(e,t,r)=>{r.d(t,{A:()=>c});const c=r.p+"assets/images/csr-pipelines-arch-diagram-595270292b31853bec14feb720a6085f.svg"},5884:(e,t,r)=>{r.d(t,{A:()=>c});const c=r.p+"assets/images/csr-usage-arch-diagram-54a0a7c1078879aa2b9a7845c78c74b9.svg"},8453:(e,t,r)=>{r.d(t,{R:()=>a,x:()=>n});var c=r(6540);const i={},s=c.createContext(i);function a(e){const t=c.useContext(s);return c.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function n(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),c.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2296e6d4.31d0245d.js b/assets/js/2296e6d4.31d0245d.js deleted file mode 100644 index 252c431..0000000 --- a/assets/js/2296e6d4.31d0245d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[999],{9452:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var t=r(4848),n=r(8453);const i={},a="Prerequisites",c={id:"registry-docs/prereqs",title:"Prerequisites",description:"Below are all the things you need to get started with the Hardened Container Registry. As we improve and streamline the process, this list could evolve.",source:"@site/docs/registry-docs/prereqs.md",sourceDirName:"registry-docs",slug:"/registry-docs/prereqs",permalink:"/carbide-docs/docs/registry-docs/prereqs",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/prereqs.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Release Cadence",permalink:"/carbide-docs/docs/registry-docs/release-cadence"},next:{title:"Validating Images",permalink:"/carbide-docs/docs/registry-docs/validating-images"}},o={},d=[{value:"Required Tooling",id:"required-tooling",level:2},{value:"Required Artifacts",id:"required-artifacts",level:2},{value:"Setup",id:"setup",level:2}];function l(e){const s={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",p:"p",pre:"pre",strong:"strong",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,t.jsx)(s.p,{children:"Below are all the things you need to get started with the Hardened Container Registry. As we improve and streamline the process, this list could evolve."}),"\n",(0,t.jsxs)(s.blockquote,{children:["\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"Registry Disclaimer:"})," The Carbide Secured Registry (rgcrprod.azurecr.us) is ",(0,t.jsx)(s.em,{children:"not"})," intended to be used as the primary registry for running Kubernetes clusters. It is only intended as the acquisition point to obtain the Carbide images. Customers should seed their own private registries, and use that registry for their Kubernetes clusters."]}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"required-tooling",children:"Required Tooling"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsxs)(s.strong,{children:["Packaging/Airgapping: ",(0,t.jsx)(s.a,{href:"https://hauler.dev",children:"Hauler"})]})}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:"# example installation steps\n# please see the docs: https://rancherfederal.github.io/hauler-docs/docs/introduction/install\n\ncurl -sfL https://get.hauler.dev | bash\n"})}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsxs)(s.strong,{children:["Supply Chain Verification: ",(0,t.jsx)(s.a,{href:"https://docs.sigstore.dev",children:"Cosign"})]})}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:'# example installation steps\n# please see the docs: https://docs.sigstore.dev/system_config/installation\n\ncurl -O -L "https://github.com/sigstore/cosign/releases/latest/download/cosign-linux-amd64"\nsudo mv cosign-linux-amd64 /usr/local/bin/cosign\nsudo chmod 755 /usr/local/bin/cosign\n'})}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsxs)(s.strong,{children:["K8s Package Management: ",(0,t.jsx)(s.a,{href:"https://helm.sh/docs",children:"Helm"})]})}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:"# example installation steps\n# please see the docs: https://helm.sh/docs/intro/install\n\ncurl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3\nsudo chmod 755 get_helm.sh && sudo ./get_helm.sh\n"})}),"\n",(0,t.jsx)(s.h2,{id:"required-artifacts",children:"Required Artifacts"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.strong,{children:"Carbide Public Key"})}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:"# download the public key for carbide\ncurl -sfOL https://raw.githubusercontent.com/rancherfederal/carbide-releases/main/carbide-key.pub\n\n# view the public key for carbide\ncat carbide-key.pub\n\n-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5zlXeLmRxBHbVmDRZpnCFdzKhyKO\ntCAZva7CLlk/6gxvCM0QkIKznfaGTRMMYTaHMdQSau6yulDLlpokA++i8Q==\n-----END PUBLIC KEY-----\n"})}),"\n",(0,t.jsx)(s.h2,{id:"setup",children:"Setup"}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:"# log in to carbide secured registry\nhauler login -u -p rgcrprod.azurecr.us\n"})})]})}function h(e={}){const{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},8453:(e,s,r)=>{r.d(s,{R:()=>a,x:()=>c});var t=r(6540);const n={},i=t.createContext(n);function a(e){const s=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),t.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2296e6d4.93def3e1.js b/assets/js/2296e6d4.93def3e1.js new file mode 100644 index 0000000..8008db3 --- /dev/null +++ b/assets/js/2296e6d4.93def3e1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[999],{7143:(e,s,r)=>{r.r(s),r.d(s,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>c,toc:()=>o});var t=r(4848),n=r(8453);const i={},a="Prerequisites",c={id:"registry-docs/prereqs",title:"Prerequisites",description:"Below are all the things you need to get started with the Hardened Container Registry. As we improve and streamline the process, this list could evolve.",source:"@site/docs/registry-docs/prereqs.md",sourceDirName:"registry-docs",slug:"/registry-docs/prereqs",permalink:"/carbide-docs/docs/registry-docs/prereqs",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/prereqs.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Release Cadence",permalink:"/carbide-docs/docs/registry-docs/release-cadence"},next:{title:"Validating Images",permalink:"/carbide-docs/docs/registry-docs/validating-images"}},d={},o=[{value:"Required Tooling",id:"required-tooling",level:2},{value:"Required Artifacts",id:"required-artifacts",level:2},{value:"Setup",id:"setup",level:2}];function l(e){const s={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",strong:"strong",...(0,n.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.header,{children:(0,t.jsx)(s.h1,{id:"prerequisites",children:"Prerequisites"})}),"\n",(0,t.jsx)(s.p,{children:"Below are all the things you need to get started with the Hardened Container Registry. As we improve and streamline the process, this list could evolve."}),"\n",(0,t.jsxs)(s.blockquote,{children:["\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"Registry Disclaimer:"})," The Carbide Secured Registry (rgcrprod.azurecr.us) is ",(0,t.jsx)(s.em,{children:"not"})," intended to be used as the primary registry for running Kubernetes clusters. It is only intended as the acquisition point to obtain the Carbide images. Customers should seed their own private registries, and use that registry for their Kubernetes clusters."]}),"\n"]}),"\n",(0,t.jsx)(s.h2,{id:"required-tooling",children:"Required Tooling"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsxs)(s.strong,{children:["Packaging/Airgapping: ",(0,t.jsx)(s.a,{href:"https://hauler.dev",children:"Hauler"})]})}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:"# example installation steps\n# please see the docs: https://rancherfederal.github.io/hauler-docs/docs/introduction/install\n\ncurl -sfL https://get.hauler.dev | bash\n"})}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsxs)(s.strong,{children:["Supply Chain Verification: ",(0,t.jsx)(s.a,{href:"https://docs.sigstore.dev",children:"Cosign"})]})}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:'# example installation steps\n# please see the docs: https://docs.sigstore.dev/system_config/installation\n\ncurl -O -L "https://github.com/sigstore/cosign/releases/latest/download/cosign-linux-amd64"\nsudo mv cosign-linux-amd64 /usr/local/bin/cosign\nsudo chmod 755 /usr/local/bin/cosign\n'})}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsxs)(s.strong,{children:["K8s Package Management: ",(0,t.jsx)(s.a,{href:"https://helm.sh/docs",children:"Helm"})]})}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:"# example installation steps\n# please see the docs: https://helm.sh/docs/intro/install\n\ncurl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3\nsudo chmod 755 get_helm.sh && sudo ./get_helm.sh\n"})}),"\n",(0,t.jsx)(s.h2,{id:"required-artifacts",children:"Required Artifacts"}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.strong,{children:"Carbide Public Key"})}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:"# download the public key for carbide\ncurl -sfOL https://raw.githubusercontent.com/rancherfederal/carbide-releases/main/carbide-key.pub\n\n# view the public key for carbide\ncat carbide-key.pub\n\n-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5zlXeLmRxBHbVmDRZpnCFdzKhyKO\ntCAZva7CLlk/6gxvCM0QkIKznfaGTRMMYTaHMdQSau6yulDLlpokA++i8Q==\n-----END PUBLIC KEY-----\n"})}),"\n",(0,t.jsx)(s.h2,{id:"setup",children:"Setup"}),"\n",(0,t.jsx)(s.pre,{children:(0,t.jsx)(s.code,{className:"language-bash",children:"# log in to carbide secured registry\nhauler login -u -p rgcrprod.azurecr.us\n"})})]})}function h(e={}){const{wrapper:s}={...(0,n.R)(),...e.components};return s?(0,t.jsx)(s,{...e,children:(0,t.jsx)(l,{...e})}):l(e)}},8453:(e,s,r)=>{r.d(s,{R:()=>a,x:()=>c});var t=r(6540);const n={},i=t.createContext(n);function a(e){const s=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:a(e.components),t.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3106553b.48c551de.js b/assets/js/3106553b.48c551de.js deleted file mode 100644 index b989681..0000000 --- a/assets/js/3106553b.48c551de.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[764],{7375:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var n=t(4848),s=t(8453);const i={},o="RKE2/K3s Uninstall",a={id:"registry-docs/uninstall-kubernetes",title:"RKE2/K3s Uninstall",description:"K3s",source:"@site/docs/registry-docs/uninstall-kubernetes.md",sourceDirName:"registry-docs",slug:"/registry-docs/uninstall-kubernetes",permalink:"/carbide-docs/docs/registry-docs/uninstall-kubernetes",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/uninstall-kubernetes.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Enforcement",permalink:"/carbide-docs/docs/registry-docs/enforcement"},next:{title:"Rancher Manager Uninstall",permalink:"/carbide-docs/docs/registry-docs/uninstall-rancher"}},c={},l=[{value:"K3s",id:"k3s",level:2},{value:"Reverting to DockerHub Images (Private Registry)",id:"reverting-to-dockerhub-images-private-registry",level:3},{value:"Reverting to DockerHub Images (Directly)",id:"reverting-to-dockerhub-images-directly",level:3},{value:"RKE2",id:"rke2",level:2},{value:"Reverting to DockerHub Images (Private Registry)",id:"reverting-to-dockerhub-images-private-registry-1",level:3},{value:"Reverting to DockerHub Images (Directly)",id:"reverting-to-dockerhub-images-directly-1",level:3}];function d(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",p:"p",pre:"pre",strong:"strong",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.h1,{id:"rke2k3s-uninstall",children:"RKE2/K3s Uninstall"}),"\n",(0,n.jsx)(r.h2,{id:"k3s",children:"K3s"}),"\n",(0,n.jsx)(r.h3,{id:"reverting-to-dockerhub-images-private-registry",children:"Reverting to DockerHub Images (Private Registry)"}),"\n",(0,n.jsxs)(r.p,{children:["If using a private registry, to revert from using the Carbide Secured Images to the normal Rancher images, you simply need to follow the docs to pull the normal images and overwrite them in your registry: ",(0,n.jsx)(r.a,{href:"https://docs.k3s.io/installation/airgap",children:"https://docs.k3s.io/installation/airgap"})]}),"\n",(0,n.jsx)(r.p,{children:"Upon restart of your pods, they should be utilizing the upstream images."}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"NOTE"}),": If you've configured enforcement using Kubewarden or Kyverno, be sure to disable/uninstall to avoid policy enforcement blocking DockerHub images."]}),"\n",(0,n.jsx)(r.h3,{id:"reverting-to-dockerhub-images-directly",children:"Reverting to DockerHub Images (Directly)"}),"\n",(0,n.jsxs)(r.p,{children:["If you want to revert to using images directly from Docker Hub, you'll need to delete the ",(0,n.jsx)(r.code,{children:"registries.yaml"})," configuration file made ",(0,n.jsx)(r.a,{href:"/carbide-docs/docs/registry-docs/configuration/kubernetes#usage-with-k3s",children:"here"}),"."]}),"\n",(0,n.jsxs)(r.p,{children:["You will also need to unset the ",(0,n.jsx)(r.code,{children:"system-default-registry"})," configuration when installing K3s by re-running the ",(0,n.jsx)(r.code,{children:"curl"})," command used to install K3s on each node, with the parameter unset."]}),"\n",(0,n.jsx)(r.p,{children:"For instance, if you originally ran the following when using Carbide images:"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-bash",children:'curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="server --flannel-backend none" K3S_TOKEN=12345 sh - --system-default-registry \n'})}),"\n",(0,n.jsx)(r.p,{children:"You'd need to run:"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-bash",children:'curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="server --flannel-backend none" K3S_TOKEN=12345 sh -\n'})}),"\n",(0,n.jsx)(r.h2,{id:"rke2",children:"RKE2"}),"\n",(0,n.jsx)(r.h3,{id:"reverting-to-dockerhub-images-private-registry-1",children:"Reverting to DockerHub Images (Private Registry)"}),"\n",(0,n.jsxs)(r.p,{children:["If using a private registry, to revert from using the Carbide Secured Images to the normal Rancher images, you simply need to follow the docs to pull the normal images and overwrite them in your registry: ",(0,n.jsx)(r.a,{href:"https://docs.rke2.io/install/airgap",children:"https://docs.rke2.io/install/airgap"})]}),"\n",(0,n.jsx)(r.p,{children:"Upon restart of your pods, they should be utilizing the upstream images."}),"\n",(0,n.jsx)(r.h3,{id:"reverting-to-dockerhub-images-directly-1",children:"Reverting to DockerHub Images (Directly)"}),"\n",(0,n.jsxs)(r.p,{children:["If you want to revert to using images directly from Docker Hub, you'll need to delete the ",(0,n.jsx)(r.code,{children:"registries.yaml"})," configuration file made ",(0,n.jsx)(r.a,{href:"/carbide-docs/docs/registry-docs/configuration/kubernetes#usage-with-rke2",children:"here"}),"."]}),"\n",(0,n.jsxs)(r.p,{children:["You'll also need to clean up the ",(0,n.jsx)(r.code,{children:"system-default-registry"})," key/value from your ",(0,n.jsx)(r.code,{children:"/etc/rancher/rke2/config.yaml"})," file on each node, and restart rke2."]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-bash",children:"# /etc/rancher/rke2/config.yaml\nnode-name: controlplane1\nwrite-kubeconfig-mode: 0640\n...\n"})}),"\n",(0,n.jsxs)(r.p,{children:["To restart controlplane nodes, run: ",(0,n.jsx)(r.code,{children:"systemctl restart rke2-server"}),"\nTo restart agents, run: ",(0,n.jsx)(r.code,{children:"systemctl restart rke2-agent"})]}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"NOTE:"})," For controlplane nodes, be sure to restart them one at a time."]})]})}function u(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},8453:(e,r,t)=>{t.d(r,{R:()=>o,x:()=>a});var n=t(6540);const s={},i=n.createContext(s);function o(e){const r=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3106553b.f9a2b218.js b/assets/js/3106553b.f9a2b218.js new file mode 100644 index 0000000..9cc40b1 --- /dev/null +++ b/assets/js/3106553b.f9a2b218.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[764],{4706:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var n=t(4848),s=t(8453);const i={},o="RKE2/K3s Uninstall",a={id:"registry-docs/uninstall-kubernetes",title:"RKE2/K3s Uninstall",description:"K3s",source:"@site/docs/registry-docs/uninstall-kubernetes.md",sourceDirName:"registry-docs",slug:"/registry-docs/uninstall-kubernetes",permalink:"/carbide-docs/docs/registry-docs/uninstall-kubernetes",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/uninstall-kubernetes.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Enforcement",permalink:"/carbide-docs/docs/registry-docs/enforcement"},next:{title:"Rancher Manager Uninstall",permalink:"/carbide-docs/docs/registry-docs/uninstall-rancher"}},c={},l=[{value:"K3s",id:"k3s",level:2},{value:"Reverting to DockerHub Images (Private Registry)",id:"reverting-to-dockerhub-images-private-registry",level:3},{value:"Reverting to DockerHub Images (Directly)",id:"reverting-to-dockerhub-images-directly",level:3},{value:"RKE2",id:"rke2",level:2},{value:"Reverting to DockerHub Images (Private Registry)",id:"reverting-to-dockerhub-images-private-registry-1",level:3},{value:"Reverting to DockerHub Images (Directly)",id:"reverting-to-dockerhub-images-directly-1",level:3}];function d(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",strong:"strong",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"rke2k3s-uninstall",children:"RKE2/K3s Uninstall"})}),"\n",(0,n.jsx)(r.h2,{id:"k3s",children:"K3s"}),"\n",(0,n.jsx)(r.h3,{id:"reverting-to-dockerhub-images-private-registry",children:"Reverting to DockerHub Images (Private Registry)"}),"\n",(0,n.jsxs)(r.p,{children:["If using a private registry, to revert from using the Carbide Secured Images to the normal Rancher images, you simply need to follow the docs to pull the normal images and overwrite them in your registry: ",(0,n.jsx)(r.a,{href:"https://docs.k3s.io/installation/airgap",children:"https://docs.k3s.io/installation/airgap"})]}),"\n",(0,n.jsx)(r.p,{children:"Upon restart of your pods, they should be utilizing the upstream images."}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"NOTE"}),": If you've configured enforcement using Kubewarden or Kyverno, be sure to disable/uninstall to avoid policy enforcement blocking DockerHub images."]}),"\n",(0,n.jsx)(r.h3,{id:"reverting-to-dockerhub-images-directly",children:"Reverting to DockerHub Images (Directly)"}),"\n",(0,n.jsxs)(r.p,{children:["If you want to revert to using images directly from Docker Hub, you'll need to delete the ",(0,n.jsx)(r.code,{children:"registries.yaml"})," configuration file made ",(0,n.jsx)(r.a,{href:"/carbide-docs/docs/registry-docs/configuration/kubernetes#usage-with-k3s",children:"here"}),"."]}),"\n",(0,n.jsxs)(r.p,{children:["You will also need to unset the ",(0,n.jsx)(r.code,{children:"system-default-registry"})," configuration when installing K3s by re-running the ",(0,n.jsx)(r.code,{children:"curl"})," command used to install K3s on each node, with the parameter unset."]}),"\n",(0,n.jsx)(r.p,{children:"For instance, if you originally ran the following when using Carbide images:"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-bash",children:'curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="server --flannel-backend none" K3S_TOKEN=12345 sh - --system-default-registry \n'})}),"\n",(0,n.jsx)(r.p,{children:"You'd need to run:"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-bash",children:'curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="server --flannel-backend none" K3S_TOKEN=12345 sh -\n'})}),"\n",(0,n.jsx)(r.h2,{id:"rke2",children:"RKE2"}),"\n",(0,n.jsx)(r.h3,{id:"reverting-to-dockerhub-images-private-registry-1",children:"Reverting to DockerHub Images (Private Registry)"}),"\n",(0,n.jsxs)(r.p,{children:["If using a private registry, to revert from using the Carbide Secured Images to the normal Rancher images, you simply need to follow the docs to pull the normal images and overwrite them in your registry: ",(0,n.jsx)(r.a,{href:"https://docs.rke2.io/install/airgap",children:"https://docs.rke2.io/install/airgap"})]}),"\n",(0,n.jsx)(r.p,{children:"Upon restart of your pods, they should be utilizing the upstream images."}),"\n",(0,n.jsx)(r.h3,{id:"reverting-to-dockerhub-images-directly-1",children:"Reverting to DockerHub Images (Directly)"}),"\n",(0,n.jsxs)(r.p,{children:["If you want to revert to using images directly from Docker Hub, you'll need to delete the ",(0,n.jsx)(r.code,{children:"registries.yaml"})," configuration file made ",(0,n.jsx)(r.a,{href:"/carbide-docs/docs/registry-docs/configuration/kubernetes#usage-with-rke2",children:"here"}),"."]}),"\n",(0,n.jsxs)(r.p,{children:["You'll also need to clean up the ",(0,n.jsx)(r.code,{children:"system-default-registry"})," key/value from your ",(0,n.jsx)(r.code,{children:"/etc/rancher/rke2/config.yaml"})," file on each node, and restart rke2."]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-bash",children:"# /etc/rancher/rke2/config.yaml\nnode-name: controlplane1\nwrite-kubeconfig-mode: 0640\n...\n"})}),"\n",(0,n.jsxs)(r.p,{children:["To restart controlplane nodes, run: ",(0,n.jsx)(r.code,{children:"systemctl restart rke2-server"}),"\nTo restart agents, run: ",(0,n.jsx)(r.code,{children:"systemctl restart rke2-agent"})]}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"NOTE:"})," For controlplane nodes, be sure to restart them one at a time."]})]})}function u(e={}){const{wrapper:r}={...(0,s.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},8453:(e,r,t)=>{t.d(r,{R:()=>o,x:()=>a});var n=t(6540);const s={},i=n.createContext(s);function o(e){const r=n.useContext(i);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function a(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),n.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3e5cfc22.fc7434f0.js b/assets/js/3e5cfc22.fc7434f0.js new file mode 100644 index 0000000..96bf435 --- /dev/null +++ b/assets/js/3e5cfc22.fc7434f0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[898],{4939:e=>{e.exports=JSON.parse('{"categoryGeneratedIndex":{"title":"Carbide Image Registry","description":"Carbide Image Registry","slug":"/category/carbide-image-registry","permalink":"/carbide-docs/docs/category/carbide-image-registry","sidebar":"tutorialSidebar","navigation":{"previous":{"title":"Introduction","permalink":"/carbide-docs/docs/intro"},"next":{"title":"Architecture","permalink":"/carbide-docs/docs/registry-docs/architecture"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/45b77d3d.f807d279.js b/assets/js/45b77d3d.f807d279.js deleted file mode 100644 index efe50fc..0000000 --- a/assets/js/45b77d3d.f807d279.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[379],{8190:e=>{e.exports=JSON.parse('{"title":"Carbide Image Registry","description":"Carbide Image Registry","slug":"/category/carbide-image-registry","permalink":"/carbide-docs/docs/category/carbide-image-registry","navigation":{"previous":{"title":"Introduction","permalink":"/carbide-docs/docs/intro"},"next":{"title":"Architecture","permalink":"/carbide-docs/docs/registry-docs/architecture"}}}')}}]); \ No newline at end of file diff --git a/assets/js/47410d18.77edd55b.js b/assets/js/47410d18.77edd55b.js new file mode 100644 index 0000000..e30ecad --- /dev/null +++ b/assets/js/47410d18.77edd55b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[882],{3342:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var t=r(4848),i=r(8453);const a={},o="Enforcement",s={id:"registry-docs/enforcement",title:"Enforcement",description:"This page will walk you through configuring a few example policy enforcement engines to validate your cluster images against our public key. This should ensure only the images from our hardened registry are allowed to run.",source:"@site/docs/registry-docs/enforcement.md",sourceDirName:"registry-docs",slug:"/registry-docs/enforcement",permalink:"/carbide-docs/docs/registry-docs/enforcement",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/enforcement.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Rancher Manager Configuration",permalink:"/carbide-docs/docs/registry-docs/configuration/rancher"},next:{title:"RKE2/K3s Uninstall",permalink:"/carbide-docs/docs/registry-docs/uninstall-kubernetes"}},l={},c=[{value:"Kubewarden Enforcement",id:"kubewarden-enforcement",level:2},{value:"Installation",id:"installation",level:3},{value:"Private Registry",id:"private-registry",level:3},{value:"Copying Policy Artifact to a Registry (Connected Environments)",id:"copying-policy-artifact-to-a-registry-connected-environments",level:3},{value:"Saving Policy Artifact (Airgapped Environments)",id:"saving-policy-artifact-airgapped-environments",level:3},{value:"Loading Policy Artifact to a Registry (Airgapped Environments)",id:"loading-policy-artifact-to-a-registry-airgapped-environments",level:3},{value:"Creating the Policy",id:"creating-the-policy",level:3},{value:"Kyverno Enforcement",id:"kyverno-enforcement",level:2},{value:"Installation",id:"installation-1",level:3},{value:"Private Registry",id:"private-registry-1",level:3},{value:"Creating the Policy",id:"creating-the-policy-1",level:3},{value:"OPA Gatekeeper Enforcement",id:"opa-gatekeeper-enforcement",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.header,{children:(0,t.jsx)(n.h1,{id:"enforcement",children:"Enforcement"})}),"\n",(0,t.jsx)(n.p,{children:"This page will walk you through configuring a few example policy enforcement engines to validate your cluster images against our public key. This should ensure only the images from our hardened registry are allowed to run."}),"\n",(0,t.jsx)(n.h2,{id:"kubewarden-enforcement",children:"Kubewarden Enforcement"}),"\n",(0,t.jsx)(n.h3,{id:"installation",children:"Installation"}),"\n",(0,t.jsx)(n.p,{children:"To install Kubewarden, run the following commands, substituting your registry information:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:'# add and update the helm chart repository\nhelm repo add kubewarden https://charts.kubewarden.io\nhelm repo update\n\n# install the crds helm chart\nhelm install --wait -n kubewarden --create-namespace kubewarden-crds kubewarden/kubewarden-crds\n\n# install the controller helm chart\nhelm install --wait -n kubewarden kubewarden-controller kubewarden/kubewarden-controller --set "common.cattle.systemDefaultRegistry= "\n\n# install the defaults helm chart\nhelm install --wait -n kubewarden kubewarden-defaults kubewarden/kubewarden-defaults --set "common.cattle.systemDefaultRegistry= " kubewarden/kubewarden-defaults\n'})}),"\n",(0,t.jsxs)(n.p,{children:["For more information about installing Kubewarden, see the ",(0,t.jsx)(n.a,{href:"https://docs.kubewarden.io/quick-start#installation",children:"docs"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"private-registry",children:"Private Registry"}),"\n",(0,t.jsxs)(n.p,{children:["If your Rancher system images are in a private registry requiring authentication, you'll need to configure your Kubewarden policy-server with a ",(0,t.jsx)(n.a,{href:"https://docs.kubewarden.io/operator-manual/policy-servers/private-registry",children:"Pull Secret"})," in order for it to validate the signature."]}),"\n",(0,t.jsx)(n.h3,{id:"copying-policy-artifact-to-a-registry-connected-environments",children:"Copying Policy Artifact to a Registry (Connected Environments)"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"# fetch the image from the carbide secured registry\nhauler store add image rgcrprod.azurecr.us/policies/verify-image-signatures:v0.1.7 --key carbide-key.pub --platform linux/amd64\n\n# copy the content from the hauler store to your registry\nhauler store copy --username --password registry:// \n"})}),"\n",(0,t.jsx)(n.h3,{id:"saving-policy-artifact-airgapped-environments",children:"Saving Policy Artifact (Airgapped Environments)"}),"\n",(0,t.jsx)(n.p,{children:"Use the below script, substituting your registry, to both validate and save locally the policy artifact:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"# fetch the image from the carbide secured registry\nhauler store add image rgcrprod.azurecr.us/policies/verify-image-signatures:v0.1.7 --key carbide-key.pub --platform linux/amd64\n\n# save and output the content from the hauler store to tarball\nhauler store save --filename kubewarden-policy.tar.zst\n"})}),"\n",(0,t.jsx)(n.h3,{id:"loading-policy-artifact-to-a-registry-airgapped-environments",children:"Loading Policy Artifact to a Registry (Airgapped Environments)"}),"\n",(0,t.jsx)(n.p,{children:"Use the below script, substituting your registry, to load the policy artifact:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"# load the content from the tarball to the hauler store\nhauler store load kubewarden-policy.tar.zst\n\n# copy the content from the hauler store to your registry\nhauler store copy --username --password registry:// \n"})}),"\n",(0,t.jsx)(n.h3,{id:"creating-the-policy",children:"Creating the Policy"}),"\n",(0,t.jsxs)(n.p,{children:["After installing/configuring Kubewarden and copying the policy to your registry, apply the following ClusterAdmissionPolicy (substituting ",(0,t.jsx)(n.code,{children:" "})," with your registry domain):"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:"apiVersion: policies.kubewarden.io/v1\nkind: ClusterAdmissionPolicy\nmetadata:\n name: verify-image-signatures\nspec:\n module: /policies/verify-image-signatures:v0.1.7\n rules:\n - apiGroups: ['', 'apps', 'batch']\n apiVersions: ['v1']\n resources:\n [\n 'pods',\n 'deployments',\n 'statefulsets',\n 'replicationcontrollers',\n 'jobs',\n 'cronjobs',\n ]\n operations:\n - CREATE\n - UPDATE\n mutating: true\n settings:\n signatures:\n - image: ' /carbide/*'\n pubKeys:\n - |\n -----BEGIN PUBLIC KEY-----\n MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5zlXeLmRxBHbVmDRZpnCFdzKhyKO\n tCAZva7CLlk/6gxvCM0QkIKznfaGTRMMYTaHMdQSau6yulDLlpokA++i8Q==\n -----END PUBLIC KEY-----\n - image: ' /jetstack/*'\n pubKeys:\n - |\n -----BEGIN PUBLIC KEY-----\n MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5zlXeLmRxBHbVmDRZpnCFdzKhyKO\n tCAZva7CLlk/6gxvCM0QkIKznfaGTRMMYTaHMdQSau6yulDLlpokA++i8Q==\n -----END PUBLIC KEY-----\n - image: ' /rancher/*'\n pubKeys:\n - |\n -----BEGIN PUBLIC KEY-----\n MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5zlXeLmRxBHbVmDRZpnCFdzKhyKO\n tCAZva7CLlk/6gxvCM0QkIKznfaGTRMMYTaHMdQSau6yulDLlpokA++i8Q==\n -----END PUBLIC KEY-----\n - image: ' /longhornio/*'\n pubKeys:\n - |\n -----BEGIN PUBLIC KEY-----\n MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5zlXeLmRxBHbVmDRZpnCFdzKhyKO\n tCAZva7CLlk/6gxvCM0QkIKznfaGTRMMYTaHMdQSau6yulDLlpokA++i8Q==\n -----END PUBLIC KEY-----\n - image: ' /neuvector/*'\n pubKeys:\n - |\n -----BEGIN PUBLIC KEY-----\n MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5zlXeLmRxBHbVmDRZpnCFdzKhyKO\n tCAZva7CLlk/6gxvCM0QkIKznfaGTRMMYTaHMdQSau6yulDLlpokA++i8Q==\n -----END PUBLIC KEY-----\n"})}),"\n",(0,t.jsx)(n.h2,{id:"kyverno-enforcement",children:"Kyverno Enforcement"}),"\n",(0,t.jsx)(n.h3,{id:"installation-1",children:"Installation"}),"\n",(0,t.jsxs)(n.p,{children:["See the docs on how to install ",(0,t.jsx)(n.a,{href:"https://kyverno.io/docs/installation",children:"Kyverno"})," onto your cluster."]}),"\n",(0,t.jsx)(n.h3,{id:"private-registry-1",children:"Private Registry"}),"\n",(0,t.jsxs)(n.p,{children:["If your Rancher system images are in a private registry requiring authentication, you'll need to configure your Kyverno policy-server with a ",(0,t.jsx)(n.a,{href:"https://kyverno.io/policies/other/require_imagepullsecrets/require_imagepullsecrets",children:"Pull Secret"})," in order for it to validate the signature."]}),"\n",(0,t.jsx)(n.h3,{id:"creating-the-policy-1",children:"Creating the Policy"}),"\n",(0,t.jsxs)(n.p,{children:["After installing/configuring Kyverno, apply the following Policy (substituting ",(0,t.jsx)(n.code,{children:" "})," with your registry domain):"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:"apiVersion: kyverno.io/v1\nkind: Policy\nmetadata:\n name: verify-image-signatures\nspec:\n validationFailureAction: enforce\n background: false\n webhookTimeoutSeconds: 30\n failurePolicy: Fail\n rules:\n - name: check-image\n match:\n any:\n - resources:\n kinds:\n - Pod\n - Deployment\n verifyImages:\n - imageReferences:\n - ' /carbide/*'\n - ' /jetstack/*'\n - ' /rancher/*'\n - ' /longhornio/*'\n - ' /neuvector/*'\n attestors:\n - count: 1\n entries:\n - keys:\n publicKeys: |-\n -----BEGIN PUBLIC KEY-----\n MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5zlXeLmRxBHbVmDRZpnCFdzKhyKO\n tCAZva7CLlk/6gxvCM0QkIKznfaGTRMMYTaHMdQSau6yulDLlpokA++i8Q==\n -----END PUBLIC KEY-----\n"})}),"\n",(0,t.jsx)(n.h2,{id:"opa-gatekeeper-enforcement",children:"OPA Gatekeeper Enforcement"}),"\n",(0,t.jsxs)(n.p,{children:["Gatekeeper can be used to verify image signatures through its ",(0,t.jsx)(n.a,{href:"https://open-policy-agent.github.io/gatekeeper/website/docs/externaldata",children:"External Data Provider"}),"."]})]})}function u(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>o,x:()=>s});var t=r(6540);const i={},a=t.createContext(i);function o(e){const n=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/47410d18.d060bdde.js b/assets/js/47410d18.d060bdde.js deleted file mode 100644 index 4ce50ae..0000000 --- a/assets/js/47410d18.d060bdde.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[882],{950:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>s,toc:()=>c});var t=r(4848),i=r(8453);const a={},o="Enforcement",s={id:"registry-docs/enforcement",title:"Enforcement",description:"This page will walk you through configuring a few example policy enforcement engines to validate your cluster images against our public key. This should ensure only the images from our hardened registry are allowed to run.",source:"@site/docs/registry-docs/enforcement.md",sourceDirName:"registry-docs",slug:"/registry-docs/enforcement",permalink:"/carbide-docs/docs/registry-docs/enforcement",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/enforcement.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Rancher Manager Configuration",permalink:"/carbide-docs/docs/registry-docs/configuration/rancher"},next:{title:"RKE2/K3s Uninstall",permalink:"/carbide-docs/docs/registry-docs/uninstall-kubernetes"}},l={},c=[{value:"Kubewarden Enforcement",id:"kubewarden-enforcement",level:2},{value:"Installation",id:"installation",level:3},{value:"Private Registry",id:"private-registry",level:3},{value:"Copying Policy Artifact to a Registry (Connected Environments)",id:"copying-policy-artifact-to-a-registry-connected-environments",level:3},{value:"Saving Policy Artifact (Airgapped Environments)",id:"saving-policy-artifact-airgapped-environments",level:3},{value:"Loading Policy Artifact to a Registry (Airgapped Environments)",id:"loading-policy-artifact-to-a-registry-airgapped-environments",level:3},{value:"Creating the Policy",id:"creating-the-policy",level:3},{value:"Kyverno Enforcement",id:"kyverno-enforcement",level:2},{value:"Installation",id:"installation-1",level:3},{value:"Private Registry",id:"private-registry-1",level:3},{value:"Creating the Policy",id:"creating-the-policy-1",level:3},{value:"OPA Gatekeeper Enforcement",id:"opa-gatekeeper-enforcement",level:2}];function d(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,i.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h1,{id:"enforcement",children:"Enforcement"}),"\n",(0,t.jsx)(n.p,{children:"This page will walk you through configuring a few example policy enforcement engines to validate your cluster images against our public key. This should ensure only the images from our hardened registry are allowed to run."}),"\n",(0,t.jsx)(n.h2,{id:"kubewarden-enforcement",children:"Kubewarden Enforcement"}),"\n",(0,t.jsx)(n.h3,{id:"installation",children:"Installation"}),"\n",(0,t.jsx)(n.p,{children:"To install Kubewarden, run the following commands, substituting your registry information:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:'# add and update the helm chart repository\nhelm repo add kubewarden https://charts.kubewarden.io\nhelm repo update\n\n# install the crds helm chart\nhelm install --wait -n kubewarden --create-namespace kubewarden-crds kubewarden/kubewarden-crds\n\n# install the controller helm chart\nhelm install --wait -n kubewarden kubewarden-controller kubewarden/kubewarden-controller --set "common.cattle.systemDefaultRegistry= "\n\n# install the defaults helm chart\nhelm install --wait -n kubewarden kubewarden-defaults kubewarden/kubewarden-defaults --set "common.cattle.systemDefaultRegistry= " kubewarden/kubewarden-defaults\n'})}),"\n",(0,t.jsxs)(n.p,{children:["For more information about installing Kubewarden, see the ",(0,t.jsx)(n.a,{href:"https://docs.kubewarden.io/quick-start#installation",children:"docs"}),"."]}),"\n",(0,t.jsx)(n.h3,{id:"private-registry",children:"Private Registry"}),"\n",(0,t.jsxs)(n.p,{children:["If your Rancher system images are in a private registry requiring authentication, you'll need to configure your Kubewarden policy-server with a ",(0,t.jsx)(n.a,{href:"https://docs.kubewarden.io/operator-manual/policy-servers/private-registry",children:"Pull Secret"})," in order for it to validate the signature."]}),"\n",(0,t.jsx)(n.h3,{id:"copying-policy-artifact-to-a-registry-connected-environments",children:"Copying Policy Artifact to a Registry (Connected Environments)"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"# fetch the image from the carbide secured registry\nhauler store add image rgcrprod.azurecr.us/policies/verify-image-signatures:v0.1.7 --key carbide-key.pub --platform linux/amd64\n\n# copy the content from the hauler store to your registry\nhauler store copy --username --password registry:// \n"})}),"\n",(0,t.jsx)(n.h3,{id:"saving-policy-artifact-airgapped-environments",children:"Saving Policy Artifact (Airgapped Environments)"}),"\n",(0,t.jsx)(n.p,{children:"Use the below script, substituting your registry, to both validate and save locally the policy artifact:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"# fetch the image from the carbide secured registry\nhauler store add image rgcrprod.azurecr.us/policies/verify-image-signatures:v0.1.7 --key carbide-key.pub --platform linux/amd64\n\n# save and output the content from the hauler store to tarball\nhauler store save --filename kubewarden-policy.tar.zst\n"})}),"\n",(0,t.jsx)(n.h3,{id:"loading-policy-artifact-to-a-registry-airgapped-environments",children:"Loading Policy Artifact to a Registry (Airgapped Environments)"}),"\n",(0,t.jsx)(n.p,{children:"Use the below script, substituting your registry, to load the policy artifact:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-bash",children:"# load the content from the tarball to the hauler store\nhauler store load kubewarden-policy.tar.zst\n\n# copy the content from the hauler store to your registry\nhauler store copy --username --password registry:// \n"})}),"\n",(0,t.jsx)(n.h3,{id:"creating-the-policy",children:"Creating the Policy"}),"\n",(0,t.jsxs)(n.p,{children:["After installing/configuring Kubewarden and copying the policy to your registry, apply the following ClusterAdmissionPolicy (substituting ",(0,t.jsx)(n.code,{children:" "})," with your registry domain):"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:"apiVersion: policies.kubewarden.io/v1\nkind: ClusterAdmissionPolicy\nmetadata:\n name: verify-image-signatures\nspec:\n module: /policies/verify-image-signatures:v0.1.7\n rules:\n - apiGroups: ['', 'apps', 'batch']\n apiVersions: ['v1']\n resources:\n [\n 'pods',\n 'deployments',\n 'statefulsets',\n 'replicationcontrollers',\n 'jobs',\n 'cronjobs',\n ]\n operations:\n - CREATE\n - UPDATE\n mutating: true\n settings:\n signatures:\n - image: ' /carbide/*'\n pubKeys:\n - |\n -----BEGIN PUBLIC KEY-----\n MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5zlXeLmRxBHbVmDRZpnCFdzKhyKO\n tCAZva7CLlk/6gxvCM0QkIKznfaGTRMMYTaHMdQSau6yulDLlpokA++i8Q==\n -----END PUBLIC KEY-----\n - image: ' /jetstack/*'\n pubKeys:\n - |\n -----BEGIN PUBLIC KEY-----\n MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5zlXeLmRxBHbVmDRZpnCFdzKhyKO\n tCAZva7CLlk/6gxvCM0QkIKznfaGTRMMYTaHMdQSau6yulDLlpokA++i8Q==\n -----END PUBLIC KEY-----\n - image: ' /rancher/*'\n pubKeys:\n - |\n -----BEGIN PUBLIC KEY-----\n MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5zlXeLmRxBHbVmDRZpnCFdzKhyKO\n tCAZva7CLlk/6gxvCM0QkIKznfaGTRMMYTaHMdQSau6yulDLlpokA++i8Q==\n -----END PUBLIC KEY-----\n - image: ' /longhornio/*'\n pubKeys:\n - |\n -----BEGIN PUBLIC KEY-----\n MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5zlXeLmRxBHbVmDRZpnCFdzKhyKO\n tCAZva7CLlk/6gxvCM0QkIKznfaGTRMMYTaHMdQSau6yulDLlpokA++i8Q==\n -----END PUBLIC KEY-----\n - image: ' /neuvector/*'\n pubKeys:\n - |\n -----BEGIN PUBLIC KEY-----\n MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5zlXeLmRxBHbVmDRZpnCFdzKhyKO\n tCAZva7CLlk/6gxvCM0QkIKznfaGTRMMYTaHMdQSau6yulDLlpokA++i8Q==\n -----END PUBLIC KEY-----\n"})}),"\n",(0,t.jsx)(n.h2,{id:"kyverno-enforcement",children:"Kyverno Enforcement"}),"\n",(0,t.jsx)(n.h3,{id:"installation-1",children:"Installation"}),"\n",(0,t.jsxs)(n.p,{children:["See the docs on how to install ",(0,t.jsx)(n.a,{href:"https://kyverno.io/docs/installation",children:"Kyverno"})," onto your cluster."]}),"\n",(0,t.jsx)(n.h3,{id:"private-registry-1",children:"Private Registry"}),"\n",(0,t.jsxs)(n.p,{children:["If your Rancher system images are in a private registry requiring authentication, you'll need to configure your Kyverno policy-server with a ",(0,t.jsx)(n.a,{href:"https://kyverno.io/policies/other/require_imagepullsecrets/require_imagepullsecrets",children:"Pull Secret"})," in order for it to validate the signature."]}),"\n",(0,t.jsx)(n.h3,{id:"creating-the-policy-1",children:"Creating the Policy"}),"\n",(0,t.jsxs)(n.p,{children:["After installing/configuring Kyverno, apply the following Policy (substituting ",(0,t.jsx)(n.code,{children:" "})," with your registry domain):"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-yaml",children:"apiVersion: kyverno.io/v1\nkind: Policy\nmetadata:\n name: verify-image-signatures\nspec:\n validationFailureAction: enforce\n background: false\n webhookTimeoutSeconds: 30\n failurePolicy: Fail\n rules:\n - name: check-image\n match:\n any:\n - resources:\n kinds:\n - Pod\n - Deployment\n verifyImages:\n - imageReferences:\n - ' /carbide/*'\n - ' /jetstack/*'\n - ' /rancher/*'\n - ' /longhornio/*'\n - ' /neuvector/*'\n attestors:\n - count: 1\n entries:\n - keys:\n publicKeys: |-\n -----BEGIN PUBLIC KEY-----\n MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE5zlXeLmRxBHbVmDRZpnCFdzKhyKO\n tCAZva7CLlk/6gxvCM0QkIKznfaGTRMMYTaHMdQSau6yulDLlpokA++i8Q==\n -----END PUBLIC KEY-----\n"})}),"\n",(0,t.jsx)(n.h2,{id:"opa-gatekeeper-enforcement",children:"OPA Gatekeeper Enforcement"}),"\n",(0,t.jsxs)(n.p,{children:["Gatekeeper can be used to verify image signatures through its ",(0,t.jsx)(n.a,{href:"https://open-policy-agent.github.io/gatekeeper/website/docs/externaldata",children:"External Data Provider"}),"."]})]})}function u(e={}){const{wrapper:n}={...(0,i.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},8453:(e,n,r)=>{r.d(n,{R:()=>o,x:()=>s});var t=r(6540);const i={},a=t.createContext(i);function o(e){const n=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function s(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/501d4186.033d87d0.js b/assets/js/501d4186.033d87d0.js deleted file mode 100644 index 8d2af38..0000000 --- a/assets/js/501d4186.033d87d0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[140],{7646:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var i=n(4848),s=n(8453);const o={},r="Introduction",a={id:"stigatron-docs/introduction",title:"Introduction",description:"This page will walk through Installation and Usage of the STIGATRON component of Rancher Government Carbide.",source:"@site/docs/stigatron-docs/introduction.md",sourceDirName:"stigatron-docs",slug:"/stigatron-docs/introduction",permalink:"/carbide-docs/docs/stigatron-docs/introduction",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/stigatron-docs/introduction.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Rancher Manager Uninstall",permalink:"/carbide-docs/docs/registry-docs/uninstall-rancher"},next:{title:"Prerequisites",permalink:"/carbide-docs/docs/stigatron-docs/prereqs"}},c={},d=[{value:"IOC Expectations",id:"ioc-expectations",level:2},{value:"What is this?",id:"what-is-this",level:2}];function l(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h1,{id:"introduction",children:"Introduction"}),"\n",(0,i.jsx)(t.p,{children:"This page will walk through Installation and Usage of the STIGATRON component of Rancher Government Carbide."}),"\n",(0,i.jsx)(t.h2,{id:"ioc-expectations",children:"IOC Expectations"}),"\n",(0,i.jsx)(t.p,{children:"As our product is still at Initial Operation Capability (IOC), there are some expectations to level-set:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Installation and packaging is still in progress and improving."}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["If you see issues and areas for improvement, please submit Github issues ",(0,i.jsx)(t.a,{href:"https://github.com/rancherfederal/carbide-charts/issues",children:"here"}),"."]}),"\n",(0,i.jsx)(t.h2,{id:"what-is-this",children:"What is this?"}),"\n",(0,i.jsx)(t.p,{children:"With our Federal/Government driven Kubernetes Distribution RKE2, we worked dilligently to provide the first Kubernetes distribution outside of the upstream project to obtain full DISA STIG Certification."}),"\n",(0,i.jsx)(t.p,{children:"While having the STIG provides immense benefits to our customers, we also wanted to improve the UX around working with that STIG. That is why we developed STIGATRON. STIGATRON will give our users capabilities that alleviate a lot of the pain points that go with traditional management of maintaining and assessing compliance of your systems:"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsx)(t.li,{children:"STIGATRON provides the ability to perform a real-time scan against all downstream clusters being managed by the Rancher Multi-cluster Manager."}),"\n",(0,i.jsx)(t.li,{children:"These scans will provide a mapping of the current state of the cluster against the controls with the RKE2 DISA STIG."}),"\n",(0,i.jsx)(t.li,{children:"Users can visualize the results of these scans from the Rancher UI by access the MITRE Heimdall2 interface. This provides current compliance status, tree maps mapping to NIST 800-53 controls, and a detailed breakdown of each check performed, including the commands executed, the output of those commands, and what steps can be performed to mitigate any failures."}),"\n",(0,i.jsxs)(t.li,{children:["Users can also export the scan results into the common formats required by Cyber Systems within the federal space. This includes ",(0,i.jsx)(t.code,{children:"XCCDF"})," and ",(0,i.jsx)(t.code,{children:"results.json"}),"."]}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>a});var i=n(6540);const s={},o=i.createContext(s);function r(e){const t=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/501d4186.86a39fb3.js b/assets/js/501d4186.86a39fb3.js new file mode 100644 index 0000000..28720dd --- /dev/null +++ b/assets/js/501d4186.86a39fb3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[140],{1693:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var i=n(4848),s=n(8453);const o={},r="Introduction",a={id:"stigatron-docs/introduction",title:"Introduction",description:"This page will walk through Installation and Usage of the STIGATRON component of Rancher Government Carbide.",source:"@site/docs/stigatron-docs/introduction.md",sourceDirName:"stigatron-docs",slug:"/stigatron-docs/introduction",permalink:"/carbide-docs/docs/stigatron-docs/introduction",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/stigatron-docs/introduction.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Rancher Manager Uninstall",permalink:"/carbide-docs/docs/registry-docs/uninstall-rancher"},next:{title:"Prerequisites",permalink:"/carbide-docs/docs/stigatron-docs/prereqs"}},c={},d=[{value:"IOC Expectations",id:"ioc-expectations",level:2},{value:"What is this?",id:"what-is-this",level:2}];function l(e){const t={a:"a",code:"code",h1:"h1",h2:"h2",header:"header",li:"li",ol:"ol",p:"p",ul:"ul",...(0,s.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"introduction",children:"Introduction"})}),"\n",(0,i.jsx)(t.p,{children:"This page will walk through Installation and Usage of the STIGATRON component of Rancher Government Carbide."}),"\n",(0,i.jsx)(t.h2,{id:"ioc-expectations",children:"IOC Expectations"}),"\n",(0,i.jsx)(t.p,{children:"As our product is still at Initial Operation Capability (IOC), there are some expectations to level-set:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Installation and packaging is still in progress and improving."}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["If you see issues and areas for improvement, please submit Github issues ",(0,i.jsx)(t.a,{href:"https://github.com/rancherfederal/carbide-charts/issues",children:"here"}),"."]}),"\n",(0,i.jsx)(t.h2,{id:"what-is-this",children:"What is this?"}),"\n",(0,i.jsx)(t.p,{children:"With our Federal/Government driven Kubernetes Distribution RKE2, we worked dilligently to provide the first Kubernetes distribution outside of the upstream project to obtain full DISA STIG Certification."}),"\n",(0,i.jsx)(t.p,{children:"While having the STIG provides immense benefits to our customers, we also wanted to improve the UX around working with that STIG. That is why we developed STIGATRON. STIGATRON will give our users capabilities that alleviate a lot of the pain points that go with traditional management of maintaining and assessing compliance of your systems:"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsx)(t.li,{children:"STIGATRON provides the ability to perform a real-time scan against all downstream clusters being managed by the Rancher Multi-cluster Manager."}),"\n",(0,i.jsx)(t.li,{children:"These scans will provide a mapping of the current state of the cluster against the controls with the RKE2 DISA STIG."}),"\n",(0,i.jsx)(t.li,{children:"Users can visualize the results of these scans from the Rancher UI by access the MITRE Heimdall2 interface. This provides current compliance status, tree maps mapping to NIST 800-53 controls, and a detailed breakdown of each check performed, including the commands executed, the output of those commands, and what steps can be performed to mitigate any failures."}),"\n",(0,i.jsxs)(t.li,{children:["Users can also export the scan results into the common formats required by Cyber Systems within the federal space. This includes ",(0,i.jsx)(t.code,{children:"XCCDF"})," and ",(0,i.jsx)(t.code,{children:"results.json"}),"."]}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>a});var i=n(6540);const s={},o=i.createContext(s);function r(e){const t=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/617854b0.0672b2e7.js b/assets/js/617854b0.0672b2e7.js deleted file mode 100644 index 964c54b..0000000 --- a/assets/js/617854b0.0672b2e7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[748],{290:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>n,metadata:()=>a,toc:()=>d});var s=r(4848),i=r(8453);const n={},o="Introduction",a={id:"registry-docs/introduction",title:"Introduction",description:"This page will walk through IOC expectations of the hardened registry and what exactly the hardened registry provides.",source:"@site/docs/registry-docs/introduction.md",sourceDirName:"registry-docs",slug:"/registry-docs/introduction",permalink:"/carbide-docs/docs/registry-docs/introduction",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/introduction.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Introduction",permalink:"/carbide-docs/docs/intro"},next:{title:"Architecture",permalink:"/carbide-docs/docs/registry-docs/architecture"}},c={},d=[{value:"IOC Expectations",id:"ioc-expectations",level:2},{value:"What is this?",id:"what-is-this",level:2}];function l(e){const t={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"introduction",children:"Introduction"}),"\n",(0,s.jsx)(t.p,{children:"This page will walk through IOC expectations of the hardened registry and what exactly the hardened registry provides."}),"\n",(0,s.jsx)(t.h2,{id:"ioc-expectations",children:"IOC Expectations"}),"\n",(0,s.jsx)(t.p,{children:"As our product is still in the IOC phase, there are some expectations to level-set:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"IOC users can expect tooling and processes to be changed, improved and streamlined continuously as we strive to improve the Carbide offering."}),"\n"]}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"DISCLAIMER"}),": The Secured Registry (rgcrprod.azurecr.us) is ",(0,s.jsx)(t.em,{children:"not"})," intended to be used as the primary registry for running Kubernetes clusters. It is only intended as the acquisition point to obtain the Carbide secured images. Customers should seed their own private OCI registries, and use that registry for their Kubernetes clusters."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["If you see issues and areas for improvement, please submit Github issues ",(0,s.jsx)(t.a,{href:"https://github.com/rancherfederal/carbide-docs/issues",children:"here"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"what-is-this",children:"What is this?"}),"\n",(0,s.jsxs)(t.p,{children:["Here at Rancher Government Solutions, we take the security of our products seriously. Products like ",(0,s.jsx)(t.code,{children:"rke2"}),' are tailor built to address the "secure by default" needs of the federal government, while still maintaining the same ease of deployments that our users have come to love from Rancher products.']}),"\n",(0,s.jsx)(t.p,{children:"The introduction of Carbide Secured Registry (CSR) marks the next big step we are taking to continually enhance our products emphasis on security, this time by directly addressing the supply chain."}),"\n",(0,s.jsx)(t.p,{children:'Now, as an alternative to the "upstream" hosted images from Docker Hub, securely built images can now be sourced from the Carbide Secured Registry (CSR), and come with the following enhancements:'}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Attested build artifacts for core Rancher products (images, sbom's, and vulnerability reports)"}),"\n",(0,s.jsxs)(t.li,{children:["Securely built on Rancher Government's internally hosted Secure Software Factory (conforming to the ",(0,s.jsx)(t.a,{href:"https://dodcio.defense.gov/Portals/0/Documents/Library/DoD%20Enterprise%20DevSecOps%20Reference%20Design%20-%20CNCF%20Kubernetes%20w-DD1910_cleared_20211022.pdf",children:"DoD Reference Architecture"})," and ",(0,s.jsx)(t.a,{href:"https://project.linuxfoundation.org/hubfs/CNCF_SSCP_v1.pdf",children:"CNCF Best Practices"}),")"]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["Quantifiably measuring the improvements that Carbide Secured Registry (CSR) provides is difficult considering the early stage of standards around supply chain security. However, initial measurements can be gleaned from the Linux Foundation's ",(0,s.jsx)(t.a,{href:"https://slsa.dev",children:"SLSA"})," levels."]}),"\n",(0,s.jsx)(t.p,{children:"The Carbide Secured Registry (CSR) was designed from the ground up to build the foundation for the eventual achievement of SLSA 4, or in other words, the most guarantee in a secure software supply chain. Specifically, this means introducing the following capabilities:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Fully defined as code build/release process ",(0,s.jsx)(t.em,{children:"with signed, non-falsifiable provenance"})]}),"\n",(0,s.jsxs)(t.li,{children:["Custom built, isolated build infrastructure, conforming to best practices such as those defined in the ",(0,s.jsx)(t.a,{href:"https://dodcio.defense.gov/Portals/0/Documents/Library/DoD%20Enterprise%20DevSecOps%20Reference%20Design%20-%20CNCF%20Kubernetes%20w-DD1910_cleared_20211022.pdf",children:"DoD Reference Architecture"}),", and ",(0,s.jsx)(t.a,{href:"https://project.linuxfoundation.org/hubfs/CNCF_SSCP_v1.pdf",children:"CNCF Best Practices"})]}),"\n",(0,s.jsx)(t.li,{children:"Verifiable SBOMs and dependency vulnerability reports"}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:'If we follow the SLSA level requirements using the enhancements introduced with Carbide Secured Registry (CSR), it currently puts us firmly at a SLSA level 2 (up from SLSA 0). However, the astute readers will recognize that with the current verbatim implementation of SLSA levels, level 3 and 4 are currently unobtainable due to requirements such as "accredited build platforms".'}),"\n",(0,s.jsx)(t.p,{children:"As stated earlier, the foundation for ultimately achieving SLSA 4 have been put in place to allow us to mature alongside software supply chain best practices, and standards. On that note, it's important to recognize that Carbide Secured Registry (CSR) is an ever evolving set of capabilities. Just as the standards and best practices around software supply chain security evolve, so will Carbide Secured Registry (CSR)."})]})}function u(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},8453:(e,t,r)=>{r.d(t,{R:()=>o,x:()=>a});var s=r(6540);const i={},n=s.createContext(i);function o(e){const t=s.useContext(n);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/617854b0.a9f5fcb5.js b/assets/js/617854b0.a9f5fcb5.js new file mode 100644 index 0000000..ca94e32 --- /dev/null +++ b/assets/js/617854b0.a9f5fcb5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[748],{3303:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>n,metadata:()=>a,toc:()=>d});var s=r(4848),i=r(8453);const n={},o="Introduction",a={id:"registry-docs/introduction",title:"Introduction",description:"This page will walk through IOC expectations of the hardened registry and what exactly the hardened registry provides.",source:"@site/docs/registry-docs/introduction.md",sourceDirName:"registry-docs",slug:"/registry-docs/introduction",permalink:"/carbide-docs/docs/registry-docs/introduction",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/introduction.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Introduction",permalink:"/carbide-docs/docs/intro"},next:{title:"Architecture",permalink:"/carbide-docs/docs/registry-docs/architecture"}},c={},d=[{value:"IOC Expectations",id:"ioc-expectations",level:2},{value:"What is this?",id:"what-is-this",level:2}];function l(e){const t={a:"a",blockquote:"blockquote",code:"code",em:"em",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"introduction",children:"Introduction"})}),"\n",(0,s.jsx)(t.p,{children:"This page will walk through IOC expectations of the hardened registry and what exactly the hardened registry provides."}),"\n",(0,s.jsx)(t.h2,{id:"ioc-expectations",children:"IOC Expectations"}),"\n",(0,s.jsx)(t.p,{children:"As our product is still in the IOC phase, there are some expectations to level-set:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"IOC users can expect tooling and processes to be changed, improved and streamlined continuously as we strive to improve the Carbide offering."}),"\n"]}),"\n",(0,s.jsxs)(t.blockquote,{children:["\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.strong,{children:"DISCLAIMER"}),": The Secured Registry (rgcrprod.azurecr.us) is ",(0,s.jsx)(t.em,{children:"not"})," intended to be used as the primary registry for running Kubernetes clusters. It is only intended as the acquisition point to obtain the Carbide secured images. Customers should seed their own private OCI registries, and use that registry for their Kubernetes clusters."]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["If you see issues and areas for improvement, please submit Github issues ",(0,s.jsx)(t.a,{href:"https://github.com/rancherfederal/carbide-docs/issues",children:"here"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"what-is-this",children:"What is this?"}),"\n",(0,s.jsxs)(t.p,{children:["Here at Rancher Government Solutions, we take the security of our products seriously. Products like ",(0,s.jsx)(t.code,{children:"rke2"}),' are tailor built to address the "secure by default" needs of the federal government, while still maintaining the same ease of deployments that our users have come to love from Rancher products.']}),"\n",(0,s.jsx)(t.p,{children:"The introduction of Carbide Secured Registry (CSR) marks the next big step we are taking to continually enhance our products emphasis on security, this time by directly addressing the supply chain."}),"\n",(0,s.jsx)(t.p,{children:'Now, as an alternative to the "upstream" hosted images from Docker Hub, securely built images can now be sourced from the Carbide Secured Registry (CSR), and come with the following enhancements:'}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Attested build artifacts for core Rancher products (images, sbom's, and vulnerability reports)"}),"\n",(0,s.jsxs)(t.li,{children:["Securely built on Rancher Government's internally hosted Secure Software Factory (conforming to the ",(0,s.jsx)(t.a,{href:"https://dodcio.defense.gov/Portals/0/Documents/Library/DoD%20Enterprise%20DevSecOps%20Reference%20Design%20-%20CNCF%20Kubernetes%20w-DD1910_cleared_20211022.pdf",children:"DoD Reference Architecture"})," and ",(0,s.jsx)(t.a,{href:"https://project.linuxfoundation.org/hubfs/CNCF_SSCP_v1.pdf",children:"CNCF Best Practices"}),")"]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["Quantifiably measuring the improvements that Carbide Secured Registry (CSR) provides is difficult considering the early stage of standards around supply chain security. However, initial measurements can be gleaned from the Linux Foundation's ",(0,s.jsx)(t.a,{href:"https://slsa.dev",children:"SLSA"})," levels."]}),"\n",(0,s.jsx)(t.p,{children:"The Carbide Secured Registry (CSR) was designed from the ground up to build the foundation for the eventual achievement of SLSA 4, or in other words, the most guarantee in a secure software supply chain. Specifically, this means introducing the following capabilities:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Fully defined as code build/release process ",(0,s.jsx)(t.em,{children:"with signed, non-falsifiable provenance"})]}),"\n",(0,s.jsxs)(t.li,{children:["Custom built, isolated build infrastructure, conforming to best practices such as those defined in the ",(0,s.jsx)(t.a,{href:"https://dodcio.defense.gov/Portals/0/Documents/Library/DoD%20Enterprise%20DevSecOps%20Reference%20Design%20-%20CNCF%20Kubernetes%20w-DD1910_cleared_20211022.pdf",children:"DoD Reference Architecture"}),", and ",(0,s.jsx)(t.a,{href:"https://project.linuxfoundation.org/hubfs/CNCF_SSCP_v1.pdf",children:"CNCF Best Practices"})]}),"\n",(0,s.jsx)(t.li,{children:"Verifiable SBOMs and dependency vulnerability reports"}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:'If we follow the SLSA level requirements using the enhancements introduced with Carbide Secured Registry (CSR), it currently puts us firmly at a SLSA level 2 (up from SLSA 0). However, the astute readers will recognize that with the current verbatim implementation of SLSA levels, level 3 and 4 are currently unobtainable due to requirements such as "accredited build platforms".'}),"\n",(0,s.jsx)(t.p,{children:"As stated earlier, the foundation for ultimately achieving SLSA 4 have been put in place to allow us to mature alongside software supply chain best practices, and standards. On that note, it's important to recognize that Carbide Secured Registry (CSR) is an ever evolving set of capabilities. Just as the standards and best practices around software supply chain security evolve, so will Carbide Secured Registry (CSR)."})]})}function u(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},8453:(e,t,r)=>{r.d(t,{R:()=>o,x:()=>a});var s=r(6540);const i={},n=s.createContext(i);function o(e){const t=s.useContext(n);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(n.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/630fbf92.1a67bd9a.js b/assets/js/630fbf92.1a67bd9a.js new file mode 100644 index 0000000..a46fc6d --- /dev/null +++ b/assets/js/630fbf92.1a67bd9a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[61],{9720:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>c,toc:()=>a});var n=s(4848),i=s(8453);const o={},r="Using MITRE Heimdall",c={id:"stigatron-docs/using-heimdall",title:"Using MITRE Heimdall",description:"1. To export scan results to common formats, select the Export button in the upper-left.",source:"@site/docs/stigatron-docs/using-heimdall.md",sourceDirName:"stigatron-docs",slug:"/stigatron-docs/using-heimdall",permalink:"/carbide-docs/docs/stigatron-docs/using-heimdall",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/stigatron-docs/using-heimdall.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Creating STIGATRON Scans",permalink:"/carbide-docs/docs/stigatron-docs/create-scan"},next:{title:"Uninstall",permalink:"/carbide-docs/docs/stigatron-docs/uninstall"}},d={},a=[];function l(e){const t={code:"code",h1:"h1",header:"header",img:"img",li:"li",ol:"ol",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.header,{children:(0,n.jsx)(t.h1,{id:"using-mitre-heimdall",children:"Using MITRE Heimdall"})}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:["To export scan results to common formats, select the ",(0,n.jsx)(t.code,{children:"Export"})," button in the upper-left."]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Select Export",src:s(3745).A+"",width:"1913",height:"669"})}),"\n",(0,n.jsxs)(t.ol,{start:"2",children:["\n",(0,n.jsx)(t.li,{children:"Select the desired export format."}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Select Export",src:s(8652).A+"",width:"1917",height:"670"})})]})}function h(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},8652:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/heimdall-export-0c8108f96a639ccbd089b6fe24ad24c7.png"},3745:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/heimdall-ui-export-6be34574163c6df2c8ec1c58d0017445.png"},8453:(e,t,s)=>{s.d(t,{R:()=>r,x:()=>c});var n=s(6540);const i={},o=n.createContext(i);function r(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/630fbf92.b0107ee7.js b/assets/js/630fbf92.b0107ee7.js deleted file mode 100644 index 4adfae1..0000000 --- a/assets/js/630fbf92.b0107ee7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[61],{3579:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>m,frontMatter:()=>o,metadata:()=>r,toc:()=>a});var n=s(4848),i=s(8453);const o={},c="Using MITRE Heimdall",r={id:"stigatron-docs/using-heimdall",title:"Using MITRE Heimdall",description:"1. To export scan results to common formats, select the Export button in the upper-left.",source:"@site/docs/stigatron-docs/using-heimdall.md",sourceDirName:"stigatron-docs",slug:"/stigatron-docs/using-heimdall",permalink:"/carbide-docs/docs/stigatron-docs/using-heimdall",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/stigatron-docs/using-heimdall.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Creating STIGATRON Scans",permalink:"/carbide-docs/docs/stigatron-docs/create-scan"},next:{title:"Uninstall",permalink:"/carbide-docs/docs/stigatron-docs/uninstall"}},d={},a=[];function l(e){const t={code:"code",h1:"h1",img:"img",li:"li",ol:"ol",p:"p",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"using-mitre-heimdall",children:"Using MITRE Heimdall"}),"\n",(0,n.jsxs)(t.ol,{children:["\n",(0,n.jsxs)(t.li,{children:["To export scan results to common formats, select the ",(0,n.jsx)(t.code,{children:"Export"})," button in the upper-left."]}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Select Export",src:s(3745).A+"",width:"1913",height:"669"})}),"\n",(0,n.jsxs)(t.ol,{start:"2",children:["\n",(0,n.jsx)(t.li,{children:"Select the desired export format."}),"\n"]}),"\n",(0,n.jsx)(t.p,{children:(0,n.jsx)(t.img,{alt:"Select Export",src:s(8652).A+"",width:"1917",height:"670"})})]})}function m(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},8652:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/heimdall-export-0c8108f96a639ccbd089b6fe24ad24c7.png"},3745:(e,t,s)=>{s.d(t,{A:()=>n});const n=s.p+"assets/images/heimdall-ui-export-6be34574163c6df2c8ec1c58d0017445.png"},8453:(e,t,s)=>{s.d(t,{R:()=>c,x:()=>r});var n=s(6540);const i={},o=n.createContext(i);function c(e){const t=n.useContext(o);return n.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(i):e.components||i:c(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/638a4428.741fe7f7.js b/assets/js/638a4428.741fe7f7.js new file mode 100644 index 0000000..f46166d --- /dev/null +++ b/assets/js/638a4428.741fe7f7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[417],{5514:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var a=t(4848),n=t(8453);const o={},s="Downloading the Images",i={id:"registry-docs/downloading-images",title:"Downloading the Images",description:"This page will walk you through locally downloading our secured images from our hardened registry, as well as packaging them to move over an airgap into your registry.",source:"@site/docs/registry-docs/downloading-images.md",sourceDirName:"registry-docs",slug:"/registry-docs/downloading-images",permalink:"/carbide-docs/docs/registry-docs/downloading-images",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/downloading-images.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Copying Images to a Registry",permalink:"/carbide-docs/docs/registry-docs/copying-images"},next:{title:"Loading Images to a Registry",permalink:"/carbide-docs/docs/registry-docs/loading-images"}},c={},l=[{value:"Downloading Secured Images",id:"downloading-secured-images",level:2},{value:"Carbide",id:"carbide",level:3},{value:"K3s",id:"k3s",level:3},{value:"RKE2",id:"rke2",level:3},{value:"Rancher",id:"rancher",level:3},{value:"Cert Manager",id:"cert-manager",level:4},{value:"Rancher",id:"rancher-1",level:4},{value:"Longhorn",id:"longhorn",level:3},{value:"NeuVector",id:"neuvector",level:3},{value:"Kubewarden",id:"kubewarden",level:3}];function d(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",strong:"strong",...(0,n.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.header,{children:(0,a.jsx)(r.h1,{id:"downloading-the-images",children:"Downloading the Images"})}),"\n",(0,a.jsx)(r.p,{children:"This page will walk you through locally downloading our secured images from our hardened registry, as well as packaging them to move over an airgap into your registry."}),"\n",(0,a.jsxs)(r.blockquote,{children:["\n",(0,a.jsxs)(r.p,{children:["This demonstration will be using ",(0,a.jsx)(r.code,{children:"hauler"}),", but any tool with the ability to push/pull an oci image will be adequate."]}),"\n"]}),"\n",(0,a.jsxs)(r.p,{children:["If you're copying images into a connected registry, check the documentation ",(0,a.jsx)(r.a,{href:"/carbide-docs/docs/registry-docs/copying-images",children:"here"}),"."]}),"\n",(0,a.jsx)(r.h2,{id:"downloading-secured-images",children:"Downloading Secured Images"}),"\n",(0,a.jsx)(r.h3,{id:"carbide",children:"Carbide"}),"\n",(0,a.jsxs)(r.blockquote,{children:["\n",(0,a.jsxs)(r.p,{children:[(0,a.jsx)(r.strong,{children:"NOTE:"})," We are actively working to improve the collection and formatting of the below procceses. Additionally, please see the ",(0,a.jsx)(r.a,{href:"https://rancherfederal.github.io/hauler-docs/docs/guides-references/hauler-content/images",children:"Hauler Docs"})," for how to specify a specific platform."]}),"\n"]}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# generate the hauler manifest for carbide\ncat < carbide-images.yaml\napiVersion: content.hauler.cattle.io/v1alpha1\nkind: Images\nmetadata:\n name: carbide-images\n annotations:\n hauler.dev/key: carbide-key.pub\nspec:\n images:\n$(curl -sfL https://raw.githubusercontent.com/rancherfederal/carbide-releases/main/carbide-images.txt | sed '/nats/d' | sed 's/^/ - name: /')\n---\napiVersion: content.hauler.cattle.io/v1alpha1\nkind: Images\nmetadata:\n name: carbide-dependency-images\nspec:\n images:\n$(curl -sfL https://raw.githubusercontent.com/rancherfederal/carbide-releases/main/carbide-images.txt | sed '/rgcr/d' | sed 's/^/ - name: /')\nEOF\n\n# fetch the content from generated hauler manifest\n# verify the location of the key and the platform/architecture\n# key verification is not used here due to natsio images not being signed\nhauler store sync --store carbide-store --files carbide-images.yaml --platform \n\n# save and output the content from the hauler store to tarball\nhauler store save --store carbide-store --filename carbide-images.tar.zst\n"})}),"\n",(0,a.jsx)(r.h3,{id:"k3s",children:"K3s"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# fetch the content from the carbide secured registry\n# verify the version, location of the key, and the platform/architecture\nhauler store sync --store k3s-store --products k3s=v1.27.12-k3s1 --key carbide-key.pub --platform \n\n# save and output the content from the hauler store to tarball\nhauler store save --store k3s-store --filename k3s-images.tar.zst\n"})}),"\n",(0,a.jsx)(r.h3,{id:"rke2",children:"RKE2"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# fetch the content from the carbide secured registry\n# verify the version, location of the key, and the platform/architecture\nhauler store sync --store rke2-store --products rke2=v1.27.12+rke2r1 --key carbide-key.pub --platform \n\n# save and output the content from the hauler store to tarball\nhauler store save --store rke2-store --filename rke2-images.tar.zst\n"})}),"\n",(0,a.jsx)(r.h3,{id:"rancher",children:"Rancher"}),"\n",(0,a.jsx)(r.h4,{id:"cert-manager",children:"Cert Manager"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# fetch the content from the carbide secured registry\n# verify the version, location of the key, and the platform/architecture\nhauler store sync --store certmanager-store --products cert-manager=v1.14.4 --key carbide-key.pub --platform \n\n# save and output the content from the hauler store to tarball\nhauler store save --store certmanager-store --filename certmanager-images.tar.zst\n"})}),"\n",(0,a.jsx)(r.h4,{id:"rancher-1",children:"Rancher"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# fetch the content from the carbide secured registry\n# verify the version, location of the key, and the platform/architecture\nhauler store sync --store rancher-store --products rancher=v2.8.3 --key carbide-key.pub --platform \n\n# save and output the content from the hauler store to tarball\nhauler store save --store rancher-store --filename rancher-images.tar.zst\n"})}),"\n",(0,a.jsx)(r.h3,{id:"longhorn",children:"Longhorn"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# fetch the content from the carbide secured registry\n# verify the version, location of the key, and the platform/architecture\nhauler store sync --store longhorn-store --products longhorn=v1.6.1 --key carbide-key.pub --platform \n\n# save and output the content from the hauler store to tarball\nhauler store save --store longhorn-store --filename longhorn-images.tar.zst\n"})}),"\n",(0,a.jsx)(r.h3,{id:"neuvector",children:"NeuVector"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# fetch the content from the carbide secured registry\n# verify the version, location of the key, and the platform/architecture\nhauler store sync --store neuvector-store --products neuvector=v5.3.2 --key carbide-key.pub --platform \n\n# save and output the content from the hauler store to tarball\nhauler store save --store neuvector-store --filename neuvector-images.tar.zst\n"})}),"\n",(0,a.jsx)(r.h3,{id:"kubewarden",children:"Kubewarden"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# fetch the content from the carbide secured registry\n# verify the version, location of the key, and the platform/architecture\nhauler store sync --store kubewarden-store --products kubewarden=kubewarden-controller-2.0.11 --key carbide-key.pub --platform \n\n# save and output the content from the hauler store to tarball\nhauler store save --store kubewarden-store --filename kubewarden-images.tar.zst\n"})}),"\n",(0,a.jsxs)(r.p,{children:["See ",(0,a.jsx)(r.a,{href:"/carbide-docs/docs/registry-docs/loading-images",children:"Loading Local Images to Registry"})," for information on loading the images into your airgapped registry."]})]})}function h(e={}){const{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,a.jsx)(r,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},8453:(e,r,t)=>{t.d(r,{R:()=>s,x:()=>i});var a=t(6540);const n={},o=a.createContext(n);function s(e){const r=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),a.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/638a4428.85ebba82.js b/assets/js/638a4428.85ebba82.js deleted file mode 100644 index d237901..0000000 --- a/assets/js/638a4428.85ebba82.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[417],{5007:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var a=t(4848),n=t(8453);const o={},s="Downloading the Images",i={id:"registry-docs/downloading-images",title:"Downloading the Images",description:"This page will walk you through locally downloading our secured images from our hardened registry, as well as packaging them to move over an airgap into your registry.",source:"@site/docs/registry-docs/downloading-images.md",sourceDirName:"registry-docs",slug:"/registry-docs/downloading-images",permalink:"/carbide-docs/docs/registry-docs/downloading-images",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/downloading-images.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Copying Images to a Registry",permalink:"/carbide-docs/docs/registry-docs/copying-images"},next:{title:"Loading Images to a Registry",permalink:"/carbide-docs/docs/registry-docs/loading-images"}},c={},l=[{value:"Downloading Secured Images",id:"downloading-secured-images",level:2},{value:"Carbide",id:"carbide",level:3},{value:"K3s",id:"k3s",level:3},{value:"RKE2",id:"rke2",level:3},{value:"Rancher",id:"rancher",level:3},{value:"Cert Manager",id:"cert-manager",level:4},{value:"Rancher",id:"rancher-1",level:4},{value:"Longhorn",id:"longhorn",level:3},{value:"NeuVector",id:"neuvector",level:3},{value:"Kubewarden",id:"kubewarden",level:3}];function d(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",p:"p",pre:"pre",strong:"strong",...(0,n.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.h1,{id:"downloading-the-images",children:"Downloading the Images"}),"\n",(0,a.jsx)(r.p,{children:"This page will walk you through locally downloading our secured images from our hardened registry, as well as packaging them to move over an airgap into your registry."}),"\n",(0,a.jsxs)(r.blockquote,{children:["\n",(0,a.jsxs)(r.p,{children:["This demonstration will be using ",(0,a.jsx)(r.code,{children:"hauler"}),", but any tool with the ability to push/pull an oci image will be adequate."]}),"\n"]}),"\n",(0,a.jsxs)(r.p,{children:["If you're copying images into a connected registry, check the documentation ",(0,a.jsx)(r.a,{href:"/carbide-docs/docs/registry-docs/copying-images",children:"here"}),"."]}),"\n",(0,a.jsx)(r.h2,{id:"downloading-secured-images",children:"Downloading Secured Images"}),"\n",(0,a.jsx)(r.h3,{id:"carbide",children:"Carbide"}),"\n",(0,a.jsxs)(r.blockquote,{children:["\n",(0,a.jsxs)(r.p,{children:[(0,a.jsx)(r.strong,{children:"NOTE:"})," We are actively working to improve the collection and formatting of the below procceses. Additionally, please see the ",(0,a.jsx)(r.a,{href:"https://rancherfederal.github.io/hauler-docs/docs/guides-references/hauler-content/images",children:"Hauler Docs"})," for how to specify a specific platform."]}),"\n"]}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# generate the hauler manifest for carbide\ncat < carbide-images.yaml\napiVersion: content.hauler.cattle.io/v1alpha1\nkind: Images\nmetadata:\n name: carbide-images\n annotations:\n hauler.dev/key: carbide-key.pub\nspec:\n images:\n$(curl -sfL https://raw.githubusercontent.com/rancherfederal/carbide-releases/main/carbide-images.txt | sed '/nats/d' | sed 's/^/ - name: /')\n---\napiVersion: content.hauler.cattle.io/v1alpha1\nkind: Images\nmetadata:\n name: carbide-dependency-images\nspec:\n images:\n$(curl -sfL https://raw.githubusercontent.com/rancherfederal/carbide-releases/main/carbide-images.txt | sed '/rgcr/d' | sed 's/^/ - name: /')\nEOF\n\n# fetch the content from generated hauler manifest\n# verify the location of the key and the platform/architecture\n# key verification is not used here due to natsio images not being signed\nhauler store sync --store carbide-store --files carbide-images.yaml --platform \n\n# save and output the content from the hauler store to tarball\nhauler store save --store carbide-store --filename carbide-images.tar.zst\n"})}),"\n",(0,a.jsx)(r.h3,{id:"k3s",children:"K3s"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# fetch the content from the carbide secured registry\n# verify the version, location of the key, and the platform/architecture\nhauler store sync --store k3s-store --products k3s=v1.27.12-k3s1 --key carbide-key.pub --platform \n\n# save and output the content from the hauler store to tarball\nhauler store save --store k3s-store --filename k3s-images.tar.zst\n"})}),"\n",(0,a.jsx)(r.h3,{id:"rke2",children:"RKE2"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# fetch the content from the carbide secured registry\n# verify the version, location of the key, and the platform/architecture\nhauler store sync --store rke2-store --products rke2=v1.27.12+rke2r1 --key carbide-key.pub --platform \n\n# save and output the content from the hauler store to tarball\nhauler store save --store rke2-store --filename rke2-images.tar.zst\n"})}),"\n",(0,a.jsx)(r.h3,{id:"rancher",children:"Rancher"}),"\n",(0,a.jsx)(r.h4,{id:"cert-manager",children:"Cert Manager"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# fetch the content from the carbide secured registry\n# verify the version, location of the key, and the platform/architecture\nhauler store sync --store certmanager-store --products cert-manager=v1.14.4 --key carbide-key.pub --platform \n\n# save and output the content from the hauler store to tarball\nhauler store save --store certmanager-store --filename certmanager-images.tar.zst\n"})}),"\n",(0,a.jsx)(r.h4,{id:"rancher-1",children:"Rancher"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# fetch the content from the carbide secured registry\n# verify the version, location of the key, and the platform/architecture\nhauler store sync --store rancher-store --products rancher=v2.8.3 --key carbide-key.pub --platform \n\n# save and output the content from the hauler store to tarball\nhauler store save --store rancher-store --filename rancher-images.tar.zst\n"})}),"\n",(0,a.jsx)(r.h3,{id:"longhorn",children:"Longhorn"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# fetch the content from the carbide secured registry\n# verify the version, location of the key, and the platform/architecture\nhauler store sync --store longhorn-store --products longhorn=v1.6.1 --key carbide-key.pub --platform \n\n# save and output the content from the hauler store to tarball\nhauler store save --store longhorn-store --filename longhorn-images.tar.zst\n"})}),"\n",(0,a.jsx)(r.h3,{id:"neuvector",children:"NeuVector"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# fetch the content from the carbide secured registry\n# verify the version, location of the key, and the platform/architecture\nhauler store sync --store neuvector-store --products neuvector=v5.3.2 --key carbide-key.pub --platform \n\n# save and output the content from the hauler store to tarball\nhauler store save --store neuvector-store --filename neuvector-images.tar.zst\n"})}),"\n",(0,a.jsx)(r.h3,{id:"kubewarden",children:"Kubewarden"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# fetch the content from the carbide secured registry\n# verify the version, location of the key, and the platform/architecture\nhauler store sync --store kubewarden-store --products kubewarden=kubewarden-controller-2.0.11 --key carbide-key.pub --platform \n\n# save and output the content from the hauler store to tarball\nhauler store save --store kubewarden-store --filename kubewarden-images.tar.zst\n"})}),"\n",(0,a.jsxs)(r.p,{children:["See ",(0,a.jsx)(r.a,{href:"/carbide-docs/docs/registry-docs/loading-images",children:"Loading Local Images to Registry"})," for information on loading the images into your airgapped registry."]})]})}function h(e={}){const{wrapper:r}={...(0,n.R)(),...e.components};return r?(0,a.jsx)(r,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},8453:(e,r,t)=>{t.d(r,{R:()=>s,x:()=>i});var a=t(6540);const n={},o=a.createContext(n);function s(e){const r=a.useContext(o);return a.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function i(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),a.createElement(o.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/648a5409.28b58cb2.js b/assets/js/648a5409.28b58cb2.js new file mode 100644 index 0000000..9e41355 --- /dev/null +++ b/assets/js/648a5409.28b58cb2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[774],{197:(e,a,i)=>{i.r(a),i.d(a,{assets:()=>d,contentTitle:()=>c,default:()=>u,frontMatter:()=>t,metadata:()=>n,toc:()=>o});var r=i(4848),s=i(8453);const t={},c="Validating Images",n={id:"registry-docs/validating-images",title:"Validating Images",description:"This will guide you through validating the signatures and attestations of each image in the secured registry, as well as how to download artifacts about the image (Software Bill of Materials, Vulnerability Scan, Cryptographic Signature, etc...).",source:"@site/docs/registry-docs/validating-images.md",sourceDirName:"registry-docs",slug:"/registry-docs/validating-images",permalink:"/carbide-docs/docs/registry-docs/validating-images",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/validating-images.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Prerequisites",permalink:"/carbide-docs/docs/registry-docs/prereqs"},next:{title:"Copying Images to a Registry",permalink:"/carbide-docs/docs/registry-docs/copying-images"}},d={},o=[{value:"Secure Supply Chain",id:"secure-supply-chain",level:2},{value:"Display Supply Chain Artifacts",id:"display-supply-chain-artifacts",level:2},{value:"Verifying the Digital Signature",id:"verifying-the-digital-signature",level:3},{value:"Viewing the Software Bill of Materials",id:"viewing-the-software-bill-of-materials",level:3},{value:"Viewing the Vulnerability Scan Results",id:"viewing-the-vulnerability-scan-results",level:3},{value:"Display Supply Chain Artifacts",id:"display-supply-chain-artifacts-1",level:2},{value:"Verifying the Digital Signature",id:"verifying-the-digital-signature-1",level:3},{value:"Viewing the Software Bill of Materials",id:"viewing-the-software-bill-of-materials-1",level:3},{value:"Viewing the Vulnerability Scan Results",id:"viewing-the-vulnerability-scan-results-1",level:3},{value:"Resources",id:"resources",level:3}];function l(e){const a={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",strong:"strong",...(0,s.R)(),...e.components},{Details:i}=a;return i||function(e,a){throw new Error("Expected "+(a?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.header,{children:(0,r.jsx)(a.h1,{id:"validating-images",children:"Validating Images"})}),"\n",(0,r.jsx)(a.p,{children:"This will guide you through validating the signatures and attestations of each image in the secured registry, as well as how to download artifacts about the image (Software Bill of Materials, Vulnerability Scan, Cryptographic Signature, etc...)."}),"\n",(0,r.jsx)(a.h2,{id:"secure-supply-chain",children:"Secure Supply Chain"}),"\n",(0,r.jsxs)(a.p,{children:["Before pulling images or even after images have been pushed to a registry, you should always verify those images against the carbide public key. Below are the instructions for using ",(0,r.jsx)(a.code,{children:"cosign"})," directly from a registry."]}),"\n",(0,r.jsxs)(a.blockquote,{children:["\n",(0,r.jsxs)(a.p,{children:[(0,r.jsx)(a.strong,{children:"NOTE:"})," You'll need to substitute ",(0,r.jsx)(a.code,{children:"rgcrprod.azurecr.us"})," with your own registry domain, if verifying images in your own registry."]}),"\n"]}),"\n",(0,r.jsx)(a.p,{children:"In Carbide Images v2 (or Cosign v2), the attachment of supply chain artifacts to the top layer of an image has been deprecated. In order for us to maintain interoperability, we have migrated our images and supply chain artifacts to be attached at the individual layer for a specific platform or architecture of an image."}),"\n",(0,r.jsxs)(a.p,{children:["If you would like to see more information, please see the noticed posted ",(0,r.jsx)(a.a,{href:"https://github.com/sigstore/cosign/blob/main/specs/SBOM_SPEC.md",children:"here"}),"!"]}),"\n",(0,r.jsxs)(i,{open:!0,children:[(0,r.jsxs)("summary",{children:[(0,r.jsx)("b",{children:"Carbide Images v2"})," (After 03/2024)"]}),(0,r.jsx)(a.h2,{id:"display-supply-chain-artifacts",children:"Display Supply Chain Artifacts"}),(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-bash",children:"# display supply chain related artifacts for an image\ncosign tree rgcrprod.azurecr.us/carbide/carbide-docs:0.1.4\n\ud83d\udce6 Supply Chain Security Related artifacts for an image: rgcrprod.azurecr.us/carbide/carbide-docs:0.1.4\n\u2514\u2500\u2500 \ud83d\udd10 Signatures for an image tag: rgcrprod.azurecr.us/carbide/carbide-docs:sha256-9f4251c8cb5161b7a1670788d4e716e735779804933e4db7698a625a2c762a44.sig\n \u2514\u2500\u2500 \ud83c\udf52 sha256:9e1b59dc650801d4d088c7b816a34f2fb9d8e53a040615750bc45d9202b522b0\n"})}),(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-bash",children:"# display supply chain related artifacts for an image\n# example image digest for carbide-docs:0.1.4 for linux/amd64\ncosign tree rgcrprod.azurecr.us/carbide/carbide-docs@sha256:9cfda4875822b37f1e899c962e9bae5bb709235a1794834a839eaa74f429eb91\n\ud83d\udce6 Supply Chain Security Related artifacts for an image: rgcrprod.azurecr.us/carbide/carbide-docs@sha256:9cfda4875822b37f1e899c962e9bae5bb709235a1794834a839eaa74f429eb91\n\u2514\u2500\u2500 \ud83d\udcbe Attestations for an image tag: rgcrprod.azurecr.us/carbide/carbide-docs:sha256-9cfda4875822b37f1e899c962e9bae5bb709235a1794834a839eaa74f429eb91.att\n \u251c\u2500\u2500 \ud83c\udf52 sha256:dfa305431fecc7148b2975285295701a4e7e2f314bda41efa1fe4fb31758dc68\n \u2514\u2500\u2500 \ud83c\udf52 sha256:133e5c020fe7fd20ae4453a9193a3b2a5e36a0447aa9d322ba83494bfde912d4\n\u2514\u2500\u2500 \ud83d\udd10 Signatures for an image tag: rgcrprod.azurecr.us/carbide/carbide-docs:sha256-9cfda4875822b37f1e899c962e9bae5bb709235a1794834a839eaa74f429eb91.sig\n \u2514\u2500\u2500 \ud83c\udf52 sha256:f8cf6aea22f450991fc1800bc0b1440377a40833a94ff51c850210218fd5ad4d\n"})}),(0,r.jsx)(a.h3,{id:"verifying-the-digital-signature",children:"Verifying the Digital Signature"}),(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-bash",children:"# verify the image's attestation by validating the supplied signature\ncosign verify --key carbide-key.pub rgcrprod.azurecr.us/carbide/carbide-docs:0.1.4 | jq\n"})}),(0,r.jsx)(a.h3,{id:"viewing-the-software-bill-of-materials",children:"Viewing the Software Bill of Materials"}),(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-bash",children:"# verify the image's sbom attestation by validating the supplied signature\ncosign verify-attestation --key carbide-key.pub rgcrprod.azurecr.us/carbide/carbide-docs@sha256:9cfda4875822b37f1e899c962e9bae5bb709235a1794834a839eaa74f429eb91 --type spdxjson | jq\n\n# view the image's sbom\ncosign verify-attestation --key carbide-key.pub rgcrprod.azurecr.us/carbide/carbide-docs@sha256:9cfda4875822b37f1e899c962e9bae5bb709235a1794834a839eaa74f429eb91 --type spdxjson | jq -r '.payload' | base64 -d | jq\n"})}),(0,r.jsx)(a.h3,{id:"viewing-the-vulnerability-scan-results",children:"Viewing the Vulnerability Scan Results"}),(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-bash",children:"# verify the image's vulnerability attestation by validating the supplied signature\ncosign verify-attestation --key carbide-key.pub rgcrprod.azurecr.us/carbide/carbide-docs@sha256:9cfda4875822b37f1e899c962e9bae5bb709235a1794834a839eaa74f429eb91 --type vuln | jq\n\n# view the image's vulnerability scan results\ncosign verify-attestation --key carbide-key.pub rgcrprod.azurecr.us/carbide/carbide-docs@sha256:9cfda4875822b37f1e899c962e9bae5bb709235a1794834a839eaa74f429eb91 --type vuln | jq -r '.payload' | base64 -d | jq\n"})})]}),"\n",(0,r.jsxs)(i,{children:[(0,r.jsxs)("summary",{children:[(0,r.jsx)("b",{children:"Carbide v1"})," (Before 03/2024)"]}),(0,r.jsx)(a.h2,{id:"display-supply-chain-artifacts-1",children:"Display Supply Chain Artifacts"}),(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-bash",children:"# display supply chain related artifacts for an image\ncosign tree rgcrprod.azurecr.us/carbide/carbide-docs:0.1.3\n\ud83d\udce6 Supply Chain Security Related artifacts for an image: rgcrprod.azurecr.us/carbide/carbide-docs:0.1.3\n\u2514\u2500\u2500 \ud83d\udcbe Attestations for an image tag: rgcrprod.azurecr.us/carbide/carbide-docs:sha256-4d8b3e7e6e1a7640ca5f4ea833a5aef7a6f031947093e3e7625c8c949c1c8839.att\n \u2514\u2500\u2500 \ud83c\udf52 sha256:8890d36772569483c9295be31a779770af0a61b51c6ba83cecc699fc724b9fd7\n\u2514\u2500\u2500 \ud83d\udd10 Signatures for an image tag: rgcrprod.azurecr.us/carbide/carbide-docs:sha256-4d8b3e7e6e1a7640ca5f4ea833a5aef7a6f031947093e3e7625c8c949c1c8839.sig\n \u2514\u2500\u2500 \ud83c\udf52 sha256:a28126ae0a4bb23f71787e912125c25232677f6948812d937fd8feb9fe03ac6f\n\u2514\u2500\u2500 \ud83d\udce6 SBOMs for an image tag: rgcrprod.azurecr.us/carbide/carbide-docs:sha256-4d8b3e7e6e1a7640ca5f4ea833a5aef7a6f031947093e3e7625c8c949c1c8839.sbom\n \u2514\u2500\u2500 \ud83c\udf52 sha256:970fc626b7075bd4822083cebc26d2e7cfcc1d5f1bfbcf9c3d0b3543a769be99\n"})}),(0,r.jsx)(a.h3,{id:"verifying-the-digital-signature-1",children:"Verifying the Digital Signature"}),(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-bash",children:"# verify the image's attestation by validating the supplied signature\ncosign verify --key carbide-key.pub rgcrprod.azurecr.us/carbide/carbide-docs:0.1.3\n"})}),(0,r.jsx)(a.h3,{id:"viewing-the-software-bill-of-materials-1",children:"Viewing the Software Bill of Materials"}),(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-bash",children:"# verify the image's SBOM attestation by validating the supplied signature\ncosign verify --key carbide-key.pub rgcrprod.azurecr.us/carbide/carbide-docs:0.1.3 --attachment sbom\n\n# view the image's SBOM\ncosign download sbom rgcrprod.azurecr.us/carbide/carbide-docs:0.1.3\n"})}),(0,r.jsx)(a.h3,{id:"viewing-the-vulnerability-scan-results-1",children:"Viewing the Vulnerability Scan Results"}),(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-bash",children:"# verify the image's SBOM attestation by validating the supplied signature\ncosign verify-attestation --key carbide-key.pub rgcrprod.azurecr.us/carbide/carbide-docs:0.1.3 --type vuln | jq\n\n# view the image's vulnerability scan results\ncosign verify-attestation --key carbide-key.pub rgcrprod.azurecr.us/carbide/carbide-docs:0.1.3 --type vuln | jq -r '.payload' | base64 -d | jq\n"})})]}),"\n",(0,r.jsx)(a.h3,{id:"resources",children:"Resources"}),"\n",(0,r.jsxs)(a.p,{children:["For more information on ",(0,r.jsx)(a.code,{children:"cosign"}),", check out the ",(0,r.jsx)(a.a,{href:"https://edu.chainguard.dev/open-source/sigstore/cosign/how-to-verify-file-signatures-with-cosign",children:"Chainguard Academy"}),"."]})]})}function u(e={}){const{wrapper:a}={...(0,s.R)(),...e.components};return a?(0,r.jsx)(a,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},8453:(e,a,i)=>{i.d(a,{R:()=>c,x:()=>n});var r=i(6540);const s={},t=r.createContext(s);function c(e){const a=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function n(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),r.createElement(t.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/648a5409.413d9b7a.js b/assets/js/648a5409.413d9b7a.js deleted file mode 100644 index 293d769..0000000 --- a/assets/js/648a5409.413d9b7a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[774],{8442:(e,a,i)=>{i.r(a),i.d(a,{assets:()=>d,contentTitle:()=>c,default:()=>u,frontMatter:()=>t,metadata:()=>n,toc:()=>o});var r=i(4848),s=i(8453);const t={},c="Validating Images",n={id:"registry-docs/validating-images",title:"Validating Images",description:"This will guide you through validating the signatures and attestations of each image in the secured registry, as well as how to download artifacts about the image (Software Bill of Materials, Vulnerability Scan, Cryptographic Signature, etc...).",source:"@site/docs/registry-docs/validating-images.md",sourceDirName:"registry-docs",slug:"/registry-docs/validating-images",permalink:"/carbide-docs/docs/registry-docs/validating-images",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/validating-images.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Prerequisites",permalink:"/carbide-docs/docs/registry-docs/prereqs"},next:{title:"Copying Images to a Registry",permalink:"/carbide-docs/docs/registry-docs/copying-images"}},d={},o=[{value:"Secure Supply Chain",id:"secure-supply-chain",level:2},{value:"Display Supply Chain Artifacts",id:"display-supply-chain-artifacts",level:2},{value:"Verifying the Digital Signature",id:"verifying-the-digital-signature",level:3},{value:"Viewing the Software Bill of Materials",id:"viewing-the-software-bill-of-materials",level:3},{value:"Viewing the Vulnerability Scan Results",id:"viewing-the-vulnerability-scan-results",level:3},{value:"Display Supply Chain Artifacts",id:"display-supply-chain-artifacts-1",level:2},{value:"Verifying the Digital Signature",id:"verifying-the-digital-signature-1",level:3},{value:"Viewing the Software Bill of Materials",id:"viewing-the-software-bill-of-materials-1",level:3},{value:"Viewing the Vulnerability Scan Results",id:"viewing-the-vulnerability-scan-results-1",level:3},{value:"Resources",id:"resources",level:3}];function l(e){const a={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",p:"p",pre:"pre",strong:"strong",...(0,s.R)(),...e.components},{Details:i}=a;return i||function(e,a){throw new Error("Expected "+(a?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}("Details",!0),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(a.h1,{id:"validating-images",children:"Validating Images"}),"\n",(0,r.jsx)(a.p,{children:"This will guide you through validating the signatures and attestations of each image in the secured registry, as well as how to download artifacts about the image (Software Bill of Materials, Vulnerability Scan, Cryptographic Signature, etc...)."}),"\n",(0,r.jsx)(a.h2,{id:"secure-supply-chain",children:"Secure Supply Chain"}),"\n",(0,r.jsxs)(a.p,{children:["Before pulling images or even after images have been pushed to a registry, you should always verify those images against the carbide public key. Below are the instructions for using ",(0,r.jsx)(a.code,{children:"cosign"})," directly from a registry."]}),"\n",(0,r.jsxs)(a.blockquote,{children:["\n",(0,r.jsxs)(a.p,{children:[(0,r.jsx)(a.strong,{children:"NOTE:"})," You'll need to substitute ",(0,r.jsx)(a.code,{children:"rgcrprod.azurecr.us"})," with your own registry domain, if verifying images in your own registry."]}),"\n"]}),"\n",(0,r.jsx)(a.p,{children:"In Carbide Images v2 (or Cosign v2), the attachment of supply chain artifacts to the top layer of an image has been deprecated. In order for us to maintain interoperability, we have migrated our images and supply chain artifacts to be attached at the individual layer for a specific platform or architecture of an image."}),"\n",(0,r.jsxs)(a.p,{children:["If you would like to see more information, please see the noticed posted ",(0,r.jsx)(a.a,{href:"https://github.com/sigstore/cosign/blob/main/specs/SBOM_SPEC.md",children:"here"}),"!"]}),"\n",(0,r.jsxs)(i,{open:!0,children:[(0,r.jsxs)("summary",{children:[(0,r.jsx)("b",{children:"Carbide Images v2"})," (After 03/2024)"]}),(0,r.jsx)(a.h2,{id:"display-supply-chain-artifacts",children:"Display Supply Chain Artifacts"}),(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-bash",children:"# display supply chain related artifacts for an image\ncosign tree rgcrprod.azurecr.us/carbide/carbide-docs:0.1.4\n\ud83d\udce6 Supply Chain Security Related artifacts for an image: rgcrprod.azurecr.us/carbide/carbide-docs:0.1.4\n\u2514\u2500\u2500 \ud83d\udd10 Signatures for an image tag: rgcrprod.azurecr.us/carbide/carbide-docs:sha256-9f4251c8cb5161b7a1670788d4e716e735779804933e4db7698a625a2c762a44.sig\n \u2514\u2500\u2500 \ud83c\udf52 sha256:9e1b59dc650801d4d088c7b816a34f2fb9d8e53a040615750bc45d9202b522b0\n"})}),(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-bash",children:"# display supply chain related artifacts for an image\n# example image digest for carbide-docs:0.1.4 for linux/amd64\ncosign tree rgcrprod.azurecr.us/carbide/carbide-docs@sha256:9cfda4875822b37f1e899c962e9bae5bb709235a1794834a839eaa74f429eb91\n\ud83d\udce6 Supply Chain Security Related artifacts for an image: rgcrprod.azurecr.us/carbide/carbide-docs@sha256:9cfda4875822b37f1e899c962e9bae5bb709235a1794834a839eaa74f429eb91\n\u2514\u2500\u2500 \ud83d\udcbe Attestations for an image tag: rgcrprod.azurecr.us/carbide/carbide-docs:sha256-9cfda4875822b37f1e899c962e9bae5bb709235a1794834a839eaa74f429eb91.att\n \u251c\u2500\u2500 \ud83c\udf52 sha256:dfa305431fecc7148b2975285295701a4e7e2f314bda41efa1fe4fb31758dc68\n \u2514\u2500\u2500 \ud83c\udf52 sha256:133e5c020fe7fd20ae4453a9193a3b2a5e36a0447aa9d322ba83494bfde912d4\n\u2514\u2500\u2500 \ud83d\udd10 Signatures for an image tag: rgcrprod.azurecr.us/carbide/carbide-docs:sha256-9cfda4875822b37f1e899c962e9bae5bb709235a1794834a839eaa74f429eb91.sig\n \u2514\u2500\u2500 \ud83c\udf52 sha256:f8cf6aea22f450991fc1800bc0b1440377a40833a94ff51c850210218fd5ad4d\n"})}),(0,r.jsx)(a.h3,{id:"verifying-the-digital-signature",children:"Verifying the Digital Signature"}),(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-bash",children:"# verify the image's attestation by validating the supplied signature\ncosign verify --key carbide-key.pub rgcrprod.azurecr.us/carbide/carbide-docs:0.1.4 | jq\n"})}),(0,r.jsx)(a.h3,{id:"viewing-the-software-bill-of-materials",children:"Viewing the Software Bill of Materials"}),(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-bash",children:"# verify the image's sbom attestation by validating the supplied signature\ncosign verify-attestation --key carbide-key.pub rgcrprod.azurecr.us/carbide/carbide-docs@sha256:9cfda4875822b37f1e899c962e9bae5bb709235a1794834a839eaa74f429eb91 --type spdxjson | jq\n\n# view the image's sbom\ncosign verify-attestation --key carbide-key.pub rgcrprod.azurecr.us/carbide/carbide-docs@sha256:9cfda4875822b37f1e899c962e9bae5bb709235a1794834a839eaa74f429eb91 --type spdxjson | jq -r '.payload' | base64 -d | jq\n"})}),(0,r.jsx)(a.h3,{id:"viewing-the-vulnerability-scan-results",children:"Viewing the Vulnerability Scan Results"}),(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-bash",children:"# verify the image's vulnerability attestation by validating the supplied signature\ncosign verify-attestation --key carbide-key.pub rgcrprod.azurecr.us/carbide/carbide-docs@sha256:9cfda4875822b37f1e899c962e9bae5bb709235a1794834a839eaa74f429eb91 --type vuln | jq\n\n# view the image's vulnerability scan results\ncosign verify-attestation --key carbide-key.pub rgcrprod.azurecr.us/carbide/carbide-docs@sha256:9cfda4875822b37f1e899c962e9bae5bb709235a1794834a839eaa74f429eb91 --type vuln | jq -r '.payload' | base64 -d | jq\n"})})]}),"\n",(0,r.jsxs)(i,{children:[(0,r.jsxs)("summary",{children:[(0,r.jsx)("b",{children:"Carbide v1"})," (Before 03/2024)"]}),(0,r.jsx)(a.h2,{id:"display-supply-chain-artifacts-1",children:"Display Supply Chain Artifacts"}),(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-bash",children:"# display supply chain related artifacts for an image\ncosign tree rgcrprod.azurecr.us/carbide/carbide-docs:0.1.3\n\ud83d\udce6 Supply Chain Security Related artifacts for an image: rgcrprod.azurecr.us/carbide/carbide-docs:0.1.3\n\u2514\u2500\u2500 \ud83d\udcbe Attestations for an image tag: rgcrprod.azurecr.us/carbide/carbide-docs:sha256-4d8b3e7e6e1a7640ca5f4ea833a5aef7a6f031947093e3e7625c8c949c1c8839.att\n \u2514\u2500\u2500 \ud83c\udf52 sha256:8890d36772569483c9295be31a779770af0a61b51c6ba83cecc699fc724b9fd7\n\u2514\u2500\u2500 \ud83d\udd10 Signatures for an image tag: rgcrprod.azurecr.us/carbide/carbide-docs:sha256-4d8b3e7e6e1a7640ca5f4ea833a5aef7a6f031947093e3e7625c8c949c1c8839.sig\n \u2514\u2500\u2500 \ud83c\udf52 sha256:a28126ae0a4bb23f71787e912125c25232677f6948812d937fd8feb9fe03ac6f\n\u2514\u2500\u2500 \ud83d\udce6 SBOMs for an image tag: rgcrprod.azurecr.us/carbide/carbide-docs:sha256-4d8b3e7e6e1a7640ca5f4ea833a5aef7a6f031947093e3e7625c8c949c1c8839.sbom\n \u2514\u2500\u2500 \ud83c\udf52 sha256:970fc626b7075bd4822083cebc26d2e7cfcc1d5f1bfbcf9c3d0b3543a769be99\n"})}),(0,r.jsx)(a.h3,{id:"verifying-the-digital-signature-1",children:"Verifying the Digital Signature"}),(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-bash",children:"# verify the image's attestation by validating the supplied signature\ncosign verify --key carbide-key.pub rgcrprod.azurecr.us/carbide/carbide-docs:0.1.3\n"})}),(0,r.jsx)(a.h3,{id:"viewing-the-software-bill-of-materials-1",children:"Viewing the Software Bill of Materials"}),(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-bash",children:"# verify the image's SBOM attestation by validating the supplied signature\ncosign verify --key carbide-key.pub rgcrprod.azurecr.us/carbide/carbide-docs:0.1.3 --attachment sbom\n\n# view the image's SBOM\ncosign download sbom rgcrprod.azurecr.us/carbide/carbide-docs:0.1.3\n"})}),(0,r.jsx)(a.h3,{id:"viewing-the-vulnerability-scan-results-1",children:"Viewing the Vulnerability Scan Results"}),(0,r.jsx)(a.pre,{children:(0,r.jsx)(a.code,{className:"language-bash",children:"# verify the image's SBOM attestation by validating the supplied signature\ncosign verify-attestation --key carbide-key.pub rgcrprod.azurecr.us/carbide/carbide-docs:0.1.3 --type vuln | jq\n\n# view the image's vulnerability scan results\ncosign verify-attestation --key carbide-key.pub rgcrprod.azurecr.us/carbide/carbide-docs:0.1.3 --type vuln | jq -r '.payload' | base64 -d | jq\n"})})]}),"\n",(0,r.jsx)(a.h3,{id:"resources",children:"Resources"}),"\n",(0,r.jsxs)(a.p,{children:["For more information on ",(0,r.jsx)(a.code,{children:"cosign"}),", check out the ",(0,r.jsx)(a.a,{href:"https://edu.chainguard.dev/open-source/sigstore/cosign/how-to-verify-file-signatures-with-cosign",children:"Chainguard Academy"}),"."]})]})}function u(e={}){const{wrapper:a}={...(0,s.R)(),...e.components};return a?(0,r.jsx)(a,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},8453:(e,a,i)=>{i.d(a,{R:()=>c,x:()=>n});var r=i(6540);const s={},t=r.createContext(s);function c(e){const a=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(a):{...a,...e}}),[a,e])}function n(e){let a;return a=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),r.createElement(t.Provider,{value:a},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/71fae5cf.82335e62.js b/assets/js/71fae5cf.82335e62.js deleted file mode 100644 index 1b4eed3..0000000 --- a/assets/js/71fae5cf.82335e62.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[625],{8688:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var s=n(4848),t=n(8453);const i={},o="Prerequisites",c={id:"airgapped-docs/prereqs",title:"Prerequisites",description:"In order to utilize Airgapped Docs, you will need the following prerequisites:",source:"@site/docs/airgapped-docs/prereqs.md",sourceDirName:"airgapped-docs",slug:"/airgapped-docs/prereqs",permalink:"/carbide-docs/docs/airgapped-docs/prereqs",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/airgapped-docs/prereqs.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Introduction",permalink:"/carbide-docs/docs/airgapped-docs/introduction"},next:{title:"Installation",permalink:"/carbide-docs/docs/airgapped-docs/installation"}},a={},d=[];function l(e){const r={a:"a",code:"code",h1:"h1",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.h1,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,s.jsx)(r.p,{children:"In order to utilize Airgapped Docs, you will need the following prerequisites:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.strong,{children:"Rancher v2.7.0 or higher:"})," ",(0,s.jsx)(r.a,{href:"https://ranchermanager.docs.rancher.com/integrations-in-rancher/rancher-extensions",children:"https://ranchermanager.docs.rancher.com/integrations-in-rancher/rancher-extensions"})]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.strong,{children:"Helm:"})," ",(0,s.jsx)(r.a,{href:"https://helm.sh/docs/intro/install",children:"https://helm.sh/docs/intro/install"})]}),"\n",(0,s.jsxs)(r.li,{children:["Access to the ",(0,s.jsx)(r.code,{children:"downstream"})," cluster(s), to be able to install and deploy the app(s)."]}),"\n"]}),"\n",(0,s.jsx)(r.p,{children:"It is also assumed you have followed all of the Carbide Secured Registry (CSR) documentation."}),"\n",(0,s.jsx)(r.p,{children:"This means you have:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"seeded your registry with the images from the CSR"}),"\n",(0,s.jsx)(r.li,{children:"the carbide helm charts available for use"}),"\n",(0,s.jsx)(r.li,{children:"configured k3s/rke2 to use your registry"}),"\n",(0,s.jsx)(r.li,{children:"configured Rancher Manager to use your registry"}),"\n",(0,s.jsx)(r.li,{children:"setup policy enforcement to only allow images from the CSR"}),"\n"]})]})}function h(e={}){const{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},8453:(e,r,n)=>{n.d(r,{R:()=>o,x:()=>c});var s=n(6540);const t={},i=s.createContext(t);function o(e){const r=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/71fae5cf.f9057c2f.js b/assets/js/71fae5cf.f9057c2f.js new file mode 100644 index 0000000..bd3cb11 --- /dev/null +++ b/assets/js/71fae5cf.f9057c2f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[625],{429:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var s=n(4848),t=n(8453);const i={},o="Prerequisites",c={id:"airgapped-docs/prereqs",title:"Prerequisites",description:"In order to utilize Airgapped Docs, you will need the following prerequisites:",source:"@site/docs/airgapped-docs/prereqs.md",sourceDirName:"airgapped-docs",slug:"/airgapped-docs/prereqs",permalink:"/carbide-docs/docs/airgapped-docs/prereqs",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/airgapped-docs/prereqs.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Introduction",permalink:"/carbide-docs/docs/airgapped-docs/introduction"},next:{title:"Installation",permalink:"/carbide-docs/docs/airgapped-docs/installation"}},a={},d=[];function l(e){const r={a:"a",code:"code",h1:"h1",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(r.header,{children:(0,s.jsx)(r.h1,{id:"prerequisites",children:"Prerequisites"})}),"\n",(0,s.jsx)(r.p,{children:"In order to utilize Airgapped Docs, you will need the following prerequisites:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.strong,{children:"Rancher v2.7.0 or higher:"})," ",(0,s.jsx)(r.a,{href:"https://ranchermanager.docs.rancher.com/integrations-in-rancher/rancher-extensions",children:"https://ranchermanager.docs.rancher.com/integrations-in-rancher/rancher-extensions"})]}),"\n",(0,s.jsxs)(r.li,{children:[(0,s.jsx)(r.strong,{children:"Helm:"})," ",(0,s.jsx)(r.a,{href:"https://helm.sh/docs/intro/install",children:"https://helm.sh/docs/intro/install"})]}),"\n",(0,s.jsxs)(r.li,{children:["Access to the ",(0,s.jsx)(r.code,{children:"downstream"})," cluster(s), to be able to install and deploy the app(s)."]}),"\n"]}),"\n",(0,s.jsx)(r.p,{children:"It is also assumed you have followed all of the Carbide Secured Registry (CSR) documentation."}),"\n",(0,s.jsx)(r.p,{children:"This means you have:"}),"\n",(0,s.jsxs)(r.ul,{children:["\n",(0,s.jsx)(r.li,{children:"seeded your registry with the images from the CSR"}),"\n",(0,s.jsx)(r.li,{children:"the carbide helm charts available for use"}),"\n",(0,s.jsx)(r.li,{children:"configured k3s/rke2 to use your registry"}),"\n",(0,s.jsx)(r.li,{children:"configured Rancher Manager to use your registry"}),"\n",(0,s.jsx)(r.li,{children:"setup policy enforcement to only allow images from the CSR"}),"\n"]})]})}function h(e={}){const{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,s.jsx)(r,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},8453:(e,r,n)=>{n.d(r,{R:()=>o,x:()=>c});var s=n(6540);const t={},i=s.createContext(t);function o(e){const r=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),s.createElement(i.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/730aff30.72df8cd2.js b/assets/js/730aff30.72df8cd2.js deleted file mode 100644 index 2e47e9e..0000000 --- a/assets/js/730aff30.72df8cd2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[238],{1555:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>n,default:()=>h,frontMatter:()=>s,metadata:()=>d,toc:()=>c});var o=t(4848),a=t(8453);const s={},n="Loading Images to a Registry",d={id:"registry-docs/loading-images",title:"Loading Images to a Registry",description:"This page will walk you through seeding your registry with downloaded images from the CSR for all Rancher components.",source:"@site/docs/registry-docs/loading-images.md",sourceDirName:"registry-docs",slug:"/registry-docs/loading-images",permalink:"/carbide-docs/docs/registry-docs/loading-images",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/loading-images.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Downloading the Images",permalink:"/carbide-docs/docs/registry-docs/downloading-images"},next:{title:"Carbide Helm Charts",permalink:"/carbide-docs/docs/registry-docs/carbide-charts"}},l={},c=[{value:"Carbide",id:"carbide",level:2},{value:"K3s",id:"k3s",level:2},{value:"RKE2",id:"rke2",level:2},{value:"Rancher",id:"rancher",level:2},{value:"Cert Manager",id:"cert-manager",level:3},{value:"Rancher",id:"rancher-1",level:3},{value:"Longhorn",id:"longhorn",level:2},{value:"NeuVector",id:"neuvector",level:2},{value:"Kubewarden",id:"kubewarden",level:2}];function i(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.h1,{id:"loading-images-to-a-registry",children:"Loading Images to a Registry"}),"\n",(0,o.jsx)(r.p,{children:"This page will walk you through seeding your registry with downloaded images from the CSR for all Rancher components."}),"\n",(0,o.jsxs)(r.blockquote,{children:["\n",(0,o.jsxs)(r.p,{children:["This demonstration will be using ",(0,o.jsx)(r.code,{children:"hauler"}),", but any tool with the ability to push/pull an oci image will be adequate."]}),"\n"]}),"\n",(0,o.jsxs)(r.p,{children:["This assumes you've followed the ",(0,o.jsx)(r.a,{href:"/carbide-docs/docs/registry-docs/downloading-images",children:"downloading images"})," section and that you've transferred your tarballs to your airgapped environment."]}),"\n",(0,o.jsx)(r.h2,{id:"carbide",children:"Carbide"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-bash",children:"# load the content from the tarball to the hauler store\nhauler store load --store carbide-store carbide-images.tar.zst\n\n# copy the content from the hauler store to your registry\nhauler store copy --store carbide-store --username --password registry:// \n"})}),"\n",(0,o.jsx)(r.h2,{id:"k3s",children:"K3s"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-bash",children:"# load the content from the tarball to the hauler store\nhauler store load --store k3s-store k3s-images.tar.zst\n\n# copy the content from the hauler store to your registry\nhauler store copy --store k3s-store --username --password registry:// \n"})}),"\n",(0,o.jsx)(r.h2,{id:"rke2",children:"RKE2"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-bash",children:"# load the content from the tarball to the hauler store\nhauler store load --store rke2-store rke2-images.tar.zst\n\n# copy the content from the hauler store to your registry\nhauler store copy --store rke2-store --username --password registry:// \n"})}),"\n",(0,o.jsx)(r.h2,{id:"rancher",children:"Rancher"}),"\n",(0,o.jsx)(r.h3,{id:"cert-manager",children:"Cert Manager"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-bash",children:"# load the content from the tarball to the hauler store\nhauler store load --store certmanager-store certmanager-images.tar.zst\n\n# copy the content from the hauler store to your registry\nhauler store copy --store certmanager-store --username --password registry:// \n"})}),"\n",(0,o.jsx)(r.h3,{id:"rancher-1",children:"Rancher"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-bash",children:"# load the content from the tarball to the hauler store\nhauler store load --store rancher-store rancher-images.tar.zst\n\n# copy the content from the hauler store to your registry\nhauler store copy --store rancher-store --username --password registry:// \n"})}),"\n",(0,o.jsx)(r.h2,{id:"longhorn",children:"Longhorn"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-bash",children:"# load the content from the tarball to the hauler store\nhauler store load --store longhorn-store longhorn-images.tar.zst\n\n# copy the content from the hauler store to your registry\nhauler store copy --store longhorn-store --username --password registry:// \n"})}),"\n",(0,o.jsx)(r.h2,{id:"neuvector",children:"NeuVector"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-bash",children:"# load the content from the tarball to the hauler store\nhauler store load --store neuvector-store neuvector-images.tar.zst\n\n# copy the content from the hauler store to your registry\nhauler store copy --store neuvector-store --username --password registry:// \n"})}),"\n",(0,o.jsx)(r.h2,{id:"kubewarden",children:"Kubewarden"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-bash",children:"# load the content from the tarball to the hauler store\nhauler store load --store kubewarden-store kubewarden-images.tar.zst\n\n# copy the content from the hauler store to your registry\nhauler store copy --store kubewarden-store --username --password registry:// \n"})})]})}function h(e={}){const{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,o.jsx)(r,{...e,children:(0,o.jsx)(i,{...e})}):i(e)}},8453:(e,r,t)=>{t.d(r,{R:()=>n,x:()=>d});var o=t(6540);const a={},s=o.createContext(a);function n(e){const r=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:n(e.components),o.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/730aff30.a1b04580.js b/assets/js/730aff30.a1b04580.js new file mode 100644 index 0000000..768d99f --- /dev/null +++ b/assets/js/730aff30.a1b04580.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[857],{4386:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>l,contentTitle:()=>n,default:()=>h,frontMatter:()=>s,metadata:()=>d,toc:()=>c});var o=t(4848),a=t(8453);const s={},n="Loading Images to a Registry",d={id:"registry-docs/loading-images",title:"Loading Images to a Registry",description:"This page will walk you through seeding your registry with downloaded images from the CSR for all Rancher components.",source:"@site/docs/registry-docs/loading-images.md",sourceDirName:"registry-docs",slug:"/registry-docs/loading-images",permalink:"/carbide-docs/docs/registry-docs/loading-images",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/loading-images.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Downloading the Images",permalink:"/carbide-docs/docs/registry-docs/downloading-images"},next:{title:"Helm Charts",permalink:"/carbide-docs/docs/registry-docs/carbide-charts"}},l={},c=[{value:"Carbide",id:"carbide",level:2},{value:"K3s",id:"k3s",level:2},{value:"RKE2",id:"rke2",level:2},{value:"Rancher",id:"rancher",level:2},{value:"Cert Manager",id:"cert-manager",level:3},{value:"Rancher",id:"rancher-1",level:3},{value:"Longhorn",id:"longhorn",level:2},{value:"NeuVector",id:"neuvector",level:2},{value:"Kubewarden",id:"kubewarden",level:2}];function i(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.header,{children:(0,o.jsx)(r.h1,{id:"loading-images-to-a-registry",children:"Loading Images to a Registry"})}),"\n",(0,o.jsx)(r.p,{children:"This page will walk you through seeding your registry with downloaded images from the CSR for all Rancher components."}),"\n",(0,o.jsxs)(r.blockquote,{children:["\n",(0,o.jsxs)(r.p,{children:["This demonstration will be using ",(0,o.jsx)(r.code,{children:"hauler"}),", but any tool with the ability to push/pull an oci image will be adequate."]}),"\n"]}),"\n",(0,o.jsxs)(r.p,{children:["This assumes you've followed the ",(0,o.jsx)(r.a,{href:"/carbide-docs/docs/registry-docs/downloading-images",children:"downloading images"})," section and that you've transferred your tarballs to your airgapped environment."]}),"\n",(0,o.jsx)(r.h2,{id:"carbide",children:"Carbide"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-bash",children:"# load the content from the tarball to the hauler store\nhauler store load --store carbide-store carbide-images.tar.zst\n\n# copy the content from the hauler store to your registry\nhauler store copy --store carbide-store --username --password registry:// \n"})}),"\n",(0,o.jsx)(r.h2,{id:"k3s",children:"K3s"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-bash",children:"# load the content from the tarball to the hauler store\nhauler store load --store k3s-store k3s-images.tar.zst\n\n# copy the content from the hauler store to your registry\nhauler store copy --store k3s-store --username --password registry:// \n"})}),"\n",(0,o.jsx)(r.h2,{id:"rke2",children:"RKE2"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-bash",children:"# load the content from the tarball to the hauler store\nhauler store load --store rke2-store rke2-images.tar.zst\n\n# copy the content from the hauler store to your registry\nhauler store copy --store rke2-store --username --password registry:// \n"})}),"\n",(0,o.jsx)(r.h2,{id:"rancher",children:"Rancher"}),"\n",(0,o.jsx)(r.h3,{id:"cert-manager",children:"Cert Manager"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-bash",children:"# load the content from the tarball to the hauler store\nhauler store load --store certmanager-store certmanager-images.tar.zst\n\n# copy the content from the hauler store to your registry\nhauler store copy --store certmanager-store --username --password registry:// \n"})}),"\n",(0,o.jsx)(r.h3,{id:"rancher-1",children:"Rancher"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-bash",children:"# load the content from the tarball to the hauler store\nhauler store load --store rancher-store rancher-images.tar.zst\n\n# copy the content from the hauler store to your registry\nhauler store copy --store rancher-store --username --password registry:// \n"})}),"\n",(0,o.jsx)(r.h2,{id:"longhorn",children:"Longhorn"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-bash",children:"# load the content from the tarball to the hauler store\nhauler store load --store longhorn-store longhorn-images.tar.zst\n\n# copy the content from the hauler store to your registry\nhauler store copy --store longhorn-store --username --password registry:// \n"})}),"\n",(0,o.jsx)(r.h2,{id:"neuvector",children:"NeuVector"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-bash",children:"# load the content from the tarball to the hauler store\nhauler store load --store neuvector-store neuvector-images.tar.zst\n\n# copy the content from the hauler store to your registry\nhauler store copy --store neuvector-store --username --password registry:// \n"})}),"\n",(0,o.jsx)(r.h2,{id:"kubewarden",children:"Kubewarden"}),"\n",(0,o.jsx)(r.pre,{children:(0,o.jsx)(r.code,{className:"language-bash",children:"# load the content from the tarball to the hauler store\nhauler store load --store kubewarden-store kubewarden-images.tar.zst\n\n# copy the content from the hauler store to your registry\nhauler store copy --store kubewarden-store --username --password registry:// \n"})})]})}function h(e={}){const{wrapper:r}={...(0,a.R)(),...e.components};return r?(0,o.jsx)(r,{...e,children:(0,o.jsx)(i,{...e})}):i(e)}},8453:(e,r,t)=>{t.d(r,{R:()=>n,x:()=>d});var o=t(6540);const a={},s=o.createContext(a);function n(e){const r=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function d(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:n(e.components),o.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7f029640.2188bb31.js b/assets/js/7f029640.2188bb31.js deleted file mode 100644 index 6e0d26e..0000000 --- a/assets/js/7f029640.2188bb31.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[791],{7772:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>o,contentTitle:()=>i,default:()=>l,frontMatter:()=>s,metadata:()=>c,toc:()=>h});var a=n(4848),t=n(8453);const s={},i="Carbide Helm Charts",c={id:"registry-docs/carbide-charts",title:"Carbide Helm Charts",description:"Along with the our secured images provided through the CSR, we also provide helm charts to install various components of the carbide product suite. These include charts include the necessary components to run STIGATRON, an airgapped copy of all rancher product docs, as well as custom build of rancher with our white-labeling.",source:"@site/docs/registry-docs/carbide-charts.md",sourceDirName:"registry-docs",slug:"/registry-docs/carbide-charts",permalink:"/carbide-docs/docs/registry-docs/carbide-charts",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/carbide-charts.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Loading Images to a Registry",permalink:"/carbide-docs/docs/registry-docs/loading-images"},next:{title:"RKE2/K3s Configuration",permalink:"/carbide-docs/docs/registry-docs/configuration/kubernetes"}},o={},h=[{value:"Obtaining Chart Manifests",id:"obtaining-chart-manifests",level:2},{value:"Connected Environments",id:"connected-environments",level:3},{value:"Airgapped Environments",id:"airgapped-environments",level:3},{value:"In Connected Environment",id:"in-connected-environment",level:4},{value:"In Airgapped Environment",id:"in-airgapped-environment",level:4}];function d(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",p:"p",pre:"pre",strong:"strong",...(0,t.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.h1,{id:"carbide-helm-charts",children:"Carbide Helm Charts"}),"\n",(0,a.jsx)(r.p,{children:"Along with the our secured images provided through the CSR, we also provide helm charts to install various components of the carbide product suite. These include charts include the necessary components to run STIGATRON, an airgapped copy of all rancher product docs, as well as custom build of rancher with our white-labeling."}),"\n",(0,a.jsx)(r.p,{children:(0,a.jsx)(r.strong,{children:"Available Helm Charts"})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"NAME CHART VERSION APP VERSION DESCRIPTION\ncarbide-charts/airgapped-docs 0.1.49 0.1.4 Rancher Government Airgapped Docs\ncarbide-charts/heimdall2 0.1.45 0.1.1 Rancher Government Heimdall2 Tool\ncarbide-charts/rancher 2.8.3 v2.8.3 Install Rancher Server to manage Kubernetes...\ncarbide-charts/stigatron 0.2.5 0.2.2 Rancher Government Stigatron Extension\ncarbide-charts/stigatron-ui 0.2.3 0.2.0 Rancher Government Stigatron UI Extension\n"})}),"\n",(0,a.jsxs)(r.p,{children:["The charts are available at ",(0,a.jsx)(r.a,{href:"https://rancherfederal.github.io/carbide-charts",children:"https://rancherfederal.github.io/carbide-charts"}),"."]}),"\n",(0,a.jsx)(r.h2,{id:"obtaining-chart-manifests",children:"Obtaining Chart Manifests"}),"\n",(0,a.jsx)(r.h3,{id:"connected-environments",children:"Connected Environments"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# add and update the helm chart repository\nhelm repo add carbide-charts https://rancherfederal.github.io/carbide-charts\nhelm repo update\n\n# view the charts in the helm chart repository\nhelm search repo carbide-charts\n\n# example install of a helm chart\nhelm install carbide-charts/ \n"})}),"\n",(0,a.jsxs)(r.p,{children:["If you would like to add the Carbide Helm Charts to the Rancher Manager Chart Catalog (so you can use the user interface to install them) please follow the steps in the ",(0,a.jsx)(r.a,{href:"https://ranchermanager.docs.rancher.com/how-to-guides/new-user-guides/helm-charts-in-rancher",children:"Rancher Manager Docs"}),"."]}),"\n",(0,a.jsx)(r.h3,{id:"airgapped-environments",children:"Airgapped Environments"}),"\n",(0,a.jsx)(r.h4,{id:"in-connected-environment",children:"In Connected Environment"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# generate the hauler manfiest for the carbide charts\ncat < carbide-charts.yaml\napiVersion: content.hauler.cattle.io/v1alpha1\nkind: Charts\nmetadata:\n name: carbide-charts\nspec:\n charts:\n - name: rancher\n repoURL: https://rancherfederal.github.io/carbide-charts\n version: 2.8.3\n - name: airgapped-docs\n repoURL: https://rancherfederal.github.io/carbide-charts\n version: 0.1.49\n - name: stigatron\n repoURL: https://rancherfederal.github.io/carbide-charts\n version: 0.2.5\n - name: stigatron-ui\n repoURL: https://rancherfederal.github.io/carbide-charts\n version: 0.2.3\n---\napiVersion: content.hauler.cattle.io/v1alpha1\nkind: Charts\nmetadata:\n name: carbide-dependency-charts\nspec:\n charts:\n - name: heimdall2\n repoURL: https://rancherfederal.github.io/carbide-charts\n version: 0.1.45\n - name: nats\n repoURL: https://nats-io.github.io/k8s/helm/charts\n version: 1.1.5\nEOF\n\n# fetch the content from generated hauler manifest\n# verify the version and the platform/architecture\nhauler store sync --store carbide-store --files carbide-charts.yaml --platform \n\n# save and output the content from the hauler store to tarball\nhauler store save --store carbide-store --filename carbide-charts.tar.zst\n"})}),"\n",(0,a.jsx)(r.h4,{id:"in-airgapped-environment",children:"In Airgapped Environment"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# load the content from the tarball to the hauler store\nhauler store load --store carbide-store carbide-charts.tar.zst\n\n# server the content from the hauler store\nhauler store serve fileserver --store carbide-store\n\n# example install of a helm chart\nhelm install http:// : / .tgz\n"})})]})}function l(e={}){const{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,a.jsx)(r,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},8453:(e,r,n)=>{n.d(r,{R:()=>i,x:()=>c});var a=n(6540);const t={},s=a.createContext(t);function i(e){const r=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),a.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7f029640.53149bf3.js b/assets/js/7f029640.53149bf3.js new file mode 100644 index 0000000..a26fb7c --- /dev/null +++ b/assets/js/7f029640.53149bf3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[791],{265:(e,r,n)=>{n.r(r),n.d(r,{assets:()=>o,contentTitle:()=>i,default:()=>l,frontMatter:()=>s,metadata:()=>c,toc:()=>h});var a=n(4848),t=n(8453);const s={},i="Carbide Helm Charts",c={id:"registry-docs/carbide-charts",title:"Carbide Helm Charts",description:"Along with the our secured images provided through the CSR, we also provide helm charts to install various components of the carbide product suite. These include charts include the necessary components to run STIGATRON, an airgapped copy of all rancher product docs, as well as custom build of rancher with our white-labeling.",source:"@site/docs/registry-docs/carbide-charts.md",sourceDirName:"registry-docs",slug:"/registry-docs/carbide-charts",permalink:"/carbide-docs/docs/registry-docs/carbide-charts",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/carbide-charts.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Loading Images to a Registry",permalink:"/carbide-docs/docs/registry-docs/loading-images"},next:{title:"RKE2/K3s Configuration",permalink:"/carbide-docs/docs/registry-docs/configuration/kubernetes"}},o={},h=[{value:"Obtaining Chart Manifests",id:"obtaining-chart-manifests",level:2},{value:"Connected Environments",id:"connected-environments",level:3},{value:"Airgapped Environments",id:"airgapped-environments",level:3},{value:"In Connected Environment",id:"in-connected-environment",level:4},{value:"In Airgapped Environment",id:"in-airgapped-environment",level:4}];function d(e){const r={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",strong:"strong",...(0,t.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(r.header,{children:(0,a.jsx)(r.h1,{id:"carbide-helm-charts",children:"Carbide Helm Charts"})}),"\n",(0,a.jsx)(r.p,{children:"Along with the our secured images provided through the CSR, we also provide helm charts to install various components of the carbide product suite. These include charts include the necessary components to run STIGATRON, an airgapped copy of all rancher product docs, as well as custom build of rancher with our white-labeling."}),"\n",(0,a.jsx)(r.p,{children:(0,a.jsx)(r.strong,{children:"Available Helm Charts"})}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"NAME CHART VERSION APP VERSION DESCRIPTION\ncarbide-charts/airgapped-docs 0.1.49 0.1.4 Rancher Government Airgapped Docs\ncarbide-charts/heimdall2 0.1.45 0.1.1 Rancher Government Heimdall2 Tool\ncarbide-charts/rancher 2.8.3 v2.8.3 Install Rancher Server to manage Kubernetes...\ncarbide-charts/stigatron 0.2.5 0.2.2 Rancher Government Stigatron Extension\ncarbide-charts/stigatron-ui 0.2.3 0.2.0 Rancher Government Stigatron UI Extension\n"})}),"\n",(0,a.jsxs)(r.p,{children:["The charts are available at ",(0,a.jsx)(r.a,{href:"https://rancherfederal.github.io/carbide-charts",children:"https://rancherfederal.github.io/carbide-charts"}),"."]}),"\n",(0,a.jsx)(r.h2,{id:"obtaining-chart-manifests",children:"Obtaining Chart Manifests"}),"\n",(0,a.jsx)(r.h3,{id:"connected-environments",children:"Connected Environments"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# add and update the helm chart repository\nhelm repo add carbide-charts https://rancherfederal.github.io/carbide-charts\nhelm repo update\n\n# view the charts in the helm chart repository\nhelm search repo carbide-charts\n\n# example install of a helm chart\nhelm install carbide-charts/ \n"})}),"\n",(0,a.jsxs)(r.p,{children:["If you would like to add the Carbide Helm Charts to the Rancher Manager Chart Catalog (so you can use the user interface to install them) please follow the steps in the ",(0,a.jsx)(r.a,{href:"https://ranchermanager.docs.rancher.com/how-to-guides/new-user-guides/helm-charts-in-rancher",children:"Rancher Manager Docs"}),"."]}),"\n",(0,a.jsx)(r.h3,{id:"airgapped-environments",children:"Airgapped Environments"}),"\n",(0,a.jsx)(r.h4,{id:"in-connected-environment",children:"In Connected Environment"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# generate the hauler manfiest for the carbide charts\ncat < carbide-charts.yaml\napiVersion: content.hauler.cattle.io/v1alpha1\nkind: Charts\nmetadata:\n name: carbide-charts\nspec:\n charts:\n - name: rancher\n repoURL: https://rancherfederal.github.io/carbide-charts\n version: 2.8.3\n - name: airgapped-docs\n repoURL: https://rancherfederal.github.io/carbide-charts\n version: 0.1.49\n - name: stigatron\n repoURL: https://rancherfederal.github.io/carbide-charts\n version: 0.2.5\n - name: stigatron-ui\n repoURL: https://rancherfederal.github.io/carbide-charts\n version: 0.2.3\n---\napiVersion: content.hauler.cattle.io/v1alpha1\nkind: Charts\nmetadata:\n name: carbide-dependency-charts\nspec:\n charts:\n - name: heimdall2\n repoURL: https://rancherfederal.github.io/carbide-charts\n version: 0.1.45\n - name: nats\n repoURL: https://nats-io.github.io/k8s/helm/charts\n version: 1.1.5\nEOF\n\n# fetch the content from generated hauler manifest\n# verify the version and the platform/architecture\nhauler store sync --store carbide-store --files carbide-charts.yaml --platform \n\n# save and output the content from the hauler store to tarball\nhauler store save --store carbide-store --filename carbide-charts.tar.zst\n"})}),"\n",(0,a.jsx)(r.h4,{id:"in-airgapped-environment",children:"In Airgapped Environment"}),"\n",(0,a.jsx)(r.pre,{children:(0,a.jsx)(r.code,{className:"language-bash",children:"# load the content from the tarball to the hauler store\nhauler store load --store carbide-store carbide-charts.tar.zst\n\n# server the content from the hauler store\nhauler store serve fileserver --store carbide-store\n\n# example install of a helm chart\nhelm install http:// : / .tgz\n"})})]})}function l(e={}){const{wrapper:r}={...(0,t.R)(),...e.components};return r?(0,a.jsx)(r,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},8453:(e,r,n)=>{n.d(r,{R:()=>i,x:()=>c});var a=n(6540);const t={},s=a.createContext(t);function i(e){const r=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function c(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),a.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8fc29581.268d1144.js b/assets/js/8fc29581.268d1144.js deleted file mode 100644 index 0d99160..0000000 --- a/assets/js/8fc29581.268d1144.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[721],{1098:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var i=n(4848),o=n(8453);const r={},s="Known Limitations & Caveats",a={id:"known-limits",title:"Known Limitations & Caveats",description:"While we continue to improve Carbide from the feedback and requirements from our customers, we strive to remain agile in our development. With that, below are the known limitations and caveats with the Secured Registry. We intend to work diligently to address these as Carbide continues to evolve.",source:"@site/docs/known-limits.md",sourceDirName:".",slug:"/known-limits",permalink:"/carbide-docs/docs/known-limits",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/known-limits.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Uninstall",permalink:"/carbide-docs/docs/airgapped-docs/uninstall"},next:{title:"Feedback",permalink:"/carbide-docs/docs/feedback"}},d={},c=[{value:"Rancher Managing Cloud-Hosted Kubernetes",id:"rancher-managing-cloud-hosted-kubernetes",level:3}];function l(e){const t={code:"code",h1:"h1",h3:"h3",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h1,{id:"known-limitations--caveats",children:"Known Limitations & Caveats"}),"\n",(0,i.jsx)(t.p,{children:"While we continue to improve Carbide from the feedback and requirements from our customers, we strive to remain agile in our development. With that, below are the known limitations and caveats with the Secured Registry. We intend to work diligently to address these as Carbide continues to evolve."}),"\n",(0,i.jsx)(t.h3,{id:"rancher-managing-cloud-hosted-kubernetes",children:"Rancher Managing Cloud-Hosted Kubernetes"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Currently, Rancher managing Cloud-Hosted Kubernetes (EKS, AKS, GKE, etc.) does not support private, secured registries for the agent that gets installed onto EKS for Rancher to manage it."}),"\n",(0,i.jsx)(t.li,{children:"Rancher Cluster Manager currently does not support managing Cloud-Hosted solutions in an airgap, to include serving images from a private registry."}),"\n",(0,i.jsxs)(t.li,{children:["If you are managing Cloud-Hosted Kubernetes from Rancher in any capacity, ",(0,i.jsxs)(t.strong,{children:["do not update your Rancher's ",(0,i.jsx)(t.code,{children:"systemDefaultRegistry"})," to point to a private registry holding the securing images"]}),". It will break Rancher's ability to manage those downstream clusters."]}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>a});var i=n(6540);const o={},r=i.createContext(o);function s(e){const t=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:s(e.components),i.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8fc29581.e92dccf4.js b/assets/js/8fc29581.e92dccf4.js new file mode 100644 index 0000000..a9789b1 --- /dev/null +++ b/assets/js/8fc29581.e92dccf4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[721],{4755:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var i=n(4848),r=n(8453);const o={},s="Known Limitations & Caveats",a={id:"known-limits",title:"Known Limitations & Caveats",description:"While we continue to improve Carbide from the feedback and requirements from our customers, we strive to remain agile in our development. With that, below are the known limitations and caveats with the Secured Registry. We intend to work diligently to address these as Carbide continues to evolve.",source:"@site/docs/known-limits.md",sourceDirName:".",slug:"/known-limits",permalink:"/carbide-docs/docs/known-limits",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/known-limits.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Uninstall",permalink:"/carbide-docs/docs/airgapped-docs/uninstall"},next:{title:"Feedback",permalink:"/carbide-docs/docs/feedback"}},d={},c=[{value:"Rancher Managing Cloud-Hosted Kubernetes",id:"rancher-managing-cloud-hosted-kubernetes",level:3}];function l(e){const t={code:"code",h1:"h1",h3:"h3",header:"header",li:"li",p:"p",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.header,{children:(0,i.jsx)(t.h1,{id:"known-limitations--caveats",children:"Known Limitations & Caveats"})}),"\n",(0,i.jsx)(t.p,{children:"While we continue to improve Carbide from the feedback and requirements from our customers, we strive to remain agile in our development. With that, below are the known limitations and caveats with the Secured Registry. We intend to work diligently to address these as Carbide continues to evolve."}),"\n",(0,i.jsx)(t.h3,{id:"rancher-managing-cloud-hosted-kubernetes",children:"Rancher Managing Cloud-Hosted Kubernetes"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Currently, Rancher managing Cloud-Hosted Kubernetes (EKS, AKS, GKE, etc.) does not support private, secured registries for the agent that gets installed onto EKS for Rancher to manage it."}),"\n",(0,i.jsx)(t.li,{children:"Rancher Cluster Manager currently does not support managing Cloud-Hosted solutions in an airgap, to include serving images from a private registry."}),"\n",(0,i.jsxs)(t.li,{children:["If you are managing Cloud-Hosted Kubernetes from Rancher in any capacity, ",(0,i.jsxs)(t.strong,{children:["do not update your Rancher's ",(0,i.jsx)(t.code,{children:"systemDefaultRegistry"})," to point to a private registry holding the securing images"]}),". It will break Rancher's ability to manage those downstream clusters."]}),"\n"]})]})}function u(e={}){const{wrapper:t}={...(0,r.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>s,x:()=>a});var i=n(6540);const r={},o=i.createContext(r);function s(e){const t=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:s(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.1f8fbf4b.js b/assets/js/935f2afb.1f8fbf4b.js deleted file mode 100644 index 2efb3aa..0000000 --- a/assets/js/935f2afb.1f8fbf4b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[581],{5610: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":"Introduction","href":"/carbide-docs/docs/intro","docId":"intro","unlisted":false},{"type":"category","label":"Carbide Image Registry","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Architecture","href":"/carbide-docs/docs/registry-docs/architecture","docId":"registry-docs/architecture","unlisted":false},{"type":"link","label":"Carbide Helm Charts","href":"/carbide-docs/docs/registry-docs/carbide-charts","docId":"registry-docs/carbide-charts","unlisted":false},{"type":"category","label":"configuration","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"RKE2/K3s Configuration","href":"/carbide-docs/docs/registry-docs/configuration/kubernetes","docId":"registry-docs/configuration/kubernetes","unlisted":false},{"type":"link","label":"Rancher Manager Configuration","href":"/carbide-docs/docs/registry-docs/configuration/rancher","docId":"registry-docs/configuration/rancher","unlisted":false}]},{"type":"link","label":"Copying Images to a Registry","href":"/carbide-docs/docs/registry-docs/copying-images","docId":"registry-docs/copying-images","unlisted":false},{"type":"link","label":"Downloading the Images","href":"/carbide-docs/docs/registry-docs/downloading-images","docId":"registry-docs/downloading-images","unlisted":false},{"type":"link","label":"Enforcement","href":"/carbide-docs/docs/registry-docs/enforcement","docId":"registry-docs/enforcement","unlisted":false},{"type":"link","label":"Introduction","href":"/carbide-docs/docs/registry-docs/introduction","docId":"registry-docs/introduction","unlisted":false},{"type":"link","label":"Loading Images to a Registry","href":"/carbide-docs/docs/registry-docs/loading-images","docId":"registry-docs/loading-images","unlisted":false},{"type":"link","label":"Prerequisites","href":"/carbide-docs/docs/registry-docs/prereqs","docId":"registry-docs/prereqs","unlisted":false},{"type":"link","label":"Release Cadence","href":"/carbide-docs/docs/registry-docs/release-cadence","docId":"registry-docs/release-cadence","unlisted":false},{"type":"link","label":"RKE2/K3s Uninstall","href":"/carbide-docs/docs/registry-docs/uninstall-kubernetes","docId":"registry-docs/uninstall-kubernetes","unlisted":false},{"type":"link","label":"Rancher Manager Uninstall","href":"/carbide-docs/docs/registry-docs/uninstall-rancher","docId":"registry-docs/uninstall-rancher","unlisted":false},{"type":"link","label":"Validating Images","href":"/carbide-docs/docs/registry-docs/validating-images","docId":"registry-docs/validating-images","unlisted":false}],"href":"/carbide-docs/docs/category/carbide-image-registry"},{"type":"category","label":"Airgapped Docs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Installation","href":"/carbide-docs/docs/airgapped-docs/installation","docId":"airgapped-docs/installation","unlisted":false},{"type":"link","label":"Introduction","href":"/carbide-docs/docs/airgapped-docs/introduction","docId":"airgapped-docs/introduction","unlisted":false},{"type":"link","label":"Prerequisites","href":"/carbide-docs/docs/airgapped-docs/prereqs","docId":"airgapped-docs/prereqs","unlisted":false},{"type":"link","label":"Uninstall","href":"/carbide-docs/docs/airgapped-docs/uninstall","docId":"airgapped-docs/uninstall","unlisted":false}],"href":"/carbide-docs/docs/category/airgapped-docs"},{"type":"category","label":"STIGATRON Security Operator","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Creating STIGATRON Scans","href":"/carbide-docs/docs/stigatron-docs/create-scan","docId":"stigatron-docs/create-scan","unlisted":false},{"type":"link","label":"Installation","href":"/carbide-docs/docs/stigatron-docs/installation","docId":"stigatron-docs/installation","unlisted":false},{"type":"link","label":"Introduction","href":"/carbide-docs/docs/stigatron-docs/introduction","docId":"stigatron-docs/introduction","unlisted":false},{"type":"link","label":"Prerequisites","href":"/carbide-docs/docs/stigatron-docs/prereqs","docId":"stigatron-docs/prereqs","unlisted":false},{"type":"link","label":"Uninstall","href":"/carbide-docs/docs/stigatron-docs/uninstall","docId":"stigatron-docs/uninstall","unlisted":false},{"type":"link","label":"Using MITRE Heimdall","href":"/carbide-docs/docs/stigatron-docs/using-heimdall","docId":"stigatron-docs/using-heimdall","unlisted":false}],"href":"/carbide-docs/docs/category/stigatron-security-operator"},{"type":"link","label":"Feedback","href":"/carbide-docs/docs/feedback","docId":"feedback","unlisted":false},{"type":"link","label":"Known Limitations & Caveats","href":"/carbide-docs/docs/known-limits","docId":"known-limits","unlisted":false}],"carbideSidebar":[{"type":"link","label":"Introduction","href":"/carbide-docs/docs/intro","docId":"intro","unlisted":false},{"type":"category","label":"Carbide Secured Registry (CSR)","collapsed":false,"items":[{"type":"link","label":"Introduction","href":"/carbide-docs/docs/registry-docs/introduction","docId":"registry-docs/introduction","unlisted":false},{"type":"link","label":"Architecture","href":"/carbide-docs/docs/registry-docs/architecture","docId":"registry-docs/architecture","unlisted":false},{"type":"link","label":"Release Cadence","href":"/carbide-docs/docs/registry-docs/release-cadence","docId":"registry-docs/release-cadence","unlisted":false},{"type":"category","label":"Installation","items":[{"type":"link","label":"Prerequisites","href":"/carbide-docs/docs/registry-docs/prereqs","docId":"registry-docs/prereqs","unlisted":false},{"type":"link","label":"Validating Images","href":"/carbide-docs/docs/registry-docs/validating-images","docId":"registry-docs/validating-images","unlisted":false},{"type":"category","label":"Seeding a Registry","items":[{"type":"category","label":"Connected Environments","items":[{"type":"link","label":"Copying Images to a Registry","href":"/carbide-docs/docs/registry-docs/copying-images","docId":"registry-docs/copying-images","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Airgapped Environments","items":[{"type":"link","label":"Downloading the Images","href":"/carbide-docs/docs/registry-docs/downloading-images","docId":"registry-docs/downloading-images","unlisted":false},{"type":"link","label":"Loading Images to a Registry","href":"/carbide-docs/docs/registry-docs/loading-images","docId":"registry-docs/loading-images","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"link","label":"Helm Charts","href":"/carbide-docs/docs/registry-docs/carbide-charts","docId":"registry-docs/carbide-charts","unlisted":false},{"type":"category","label":"Configuration","items":[{"type":"link","label":"RKE2/K3s Configuration","href":"/carbide-docs/docs/registry-docs/configuration/kubernetes","docId":"registry-docs/configuration/kubernetes","unlisted":false},{"type":"link","label":"Rancher Manager Configuration","href":"/carbide-docs/docs/registry-docs/configuration/rancher","docId":"registry-docs/configuration/rancher","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Enforcement","href":"/carbide-docs/docs/registry-docs/enforcement","docId":"registry-docs/enforcement","unlisted":false},{"type":"category","label":"Uninstall","items":[{"type":"link","label":"RKE2/K3s Uninstall","href":"/carbide-docs/docs/registry-docs/uninstall-kubernetes","docId":"registry-docs/uninstall-kubernetes","unlisted":false},{"type":"link","label":"Rancher Manager Uninstall","href":"/carbide-docs/docs/registry-docs/uninstall-rancher","docId":"registry-docs/uninstall-rancher","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsible":true},{"type":"category","label":"STIGATRON","collapsed":false,"items":[{"type":"link","label":"Introduction","href":"/carbide-docs/docs/stigatron-docs/introduction","docId":"stigatron-docs/introduction","unlisted":false},{"type":"category","label":"Installation","items":[{"type":"link","label":"Prerequisites","href":"/carbide-docs/docs/stigatron-docs/prereqs","docId":"stigatron-docs/prereqs","unlisted":false},{"type":"link","label":"Installation","href":"/carbide-docs/docs/stigatron-docs/installation","docId":"stigatron-docs/installation","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Using STIGATRON","items":[{"type":"link","label":"Creating STIGATRON Scans","href":"/carbide-docs/docs/stigatron-docs/create-scan","docId":"stigatron-docs/create-scan","unlisted":false},{"type":"link","label":"Using MITRE Heimdall","href":"/carbide-docs/docs/stigatron-docs/using-heimdall","docId":"stigatron-docs/using-heimdall","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Uninstall","href":"/carbide-docs/docs/stigatron-docs/uninstall","docId":"stigatron-docs/uninstall","unlisted":false}],"collapsible":true},{"type":"category","label":"Airgapped Docs","collapsed":false,"items":[{"type":"link","label":"Introduction","href":"/carbide-docs/docs/airgapped-docs/introduction","docId":"airgapped-docs/introduction","unlisted":false},{"type":"category","label":"Installation","items":[{"type":"link","label":"Prerequisites","href":"/carbide-docs/docs/airgapped-docs/prereqs","docId":"airgapped-docs/prereqs","unlisted":false},{"type":"link","label":"Installation","href":"/carbide-docs/docs/airgapped-docs/installation","docId":"airgapped-docs/installation","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Uninstall","href":"/carbide-docs/docs/airgapped-docs/uninstall","docId":"airgapped-docs/uninstall","unlisted":false}],"collapsible":true},{"type":"link","label":"Known Limitations & Caveats","href":"/carbide-docs/docs/known-limits","docId":"known-limits","unlisted":false},{"type":"link","label":"Feedback","href":"/carbide-docs/docs/feedback","docId":"feedback","unlisted":false}]},"docs":{"airgapped-docs/installation":{"id":"airgapped-docs/installation","title":"Installation","description":"Downstream Clusters","sidebar":"carbideSidebar"},"airgapped-docs/introduction":{"id":"airgapped-docs/introduction","title":"Introduction","description":"This page will walk through installation and usage of the Airgapped Docs component of Rancher Government Carbide.","sidebar":"carbideSidebar"},"airgapped-docs/prereqs":{"id":"airgapped-docs/prereqs","title":"Prerequisites","description":"In order to utilize Airgapped Docs, you will need the following prerequisites:","sidebar":"carbideSidebar"},"airgapped-docs/uninstall":{"id":"airgapped-docs/uninstall","title":"Uninstall","description":"Downstream Clusters","sidebar":"carbideSidebar"},"feedback":{"id":"feedback","title":"Feedback","description":"Feedback is critical to us to continue to improve our tools and help you with your mission.","sidebar":"carbideSidebar"},"intro":{"id":"intro","title":"Introduction","description":"Carbide is Rancher Government\'s hardened distribution of the SUSE Rancher product portfolio. Carbide is exclusively offered to our US Government and partnering customers that value security above all else.","sidebar":"carbideSidebar"},"known-limits":{"id":"known-limits","title":"Known Limitations & Caveats","description":"While we continue to improve Carbide from the feedback and requirements from our customers, we strive to remain agile in our development. With that, below are the known limitations and caveats with the Secured Registry. We intend to work diligently to address these as Carbide continues to evolve.","sidebar":"carbideSidebar"},"registry-docs/architecture":{"id":"registry-docs/architecture","title":"Architecture","description":"This page will walk through the architecture of the Carbide Secured Registry (CSR), including both of the pipelines related to the CSR, as well as typical usage of the images.","sidebar":"carbideSidebar"},"registry-docs/carbide-charts":{"id":"registry-docs/carbide-charts","title":"Carbide Helm Charts","description":"Along with the our secured images provided through the CSR, we also provide helm charts to install various components of the carbide product suite. These include charts include the necessary components to run STIGATRON, an airgapped copy of all rancher product docs, as well as custom build of rancher with our white-labeling.","sidebar":"carbideSidebar"},"registry-docs/configuration/kubernetes":{"id":"registry-docs/configuration/kubernetes","title":"RKE2/K3s Configuration","description":"This page will walk you through how to configure Rancher Kubernetes distributions (K3s, RKE2) to utilize the secured images instead of the upstream Docker hub images.","sidebar":"carbideSidebar"},"registry-docs/configuration/rancher":{"id":"registry-docs/configuration/rancher","title":"Rancher Manager Configuration","description":"This page will walk you through how to configure Rancher Manager to use images from the CSR instead of the upstream Docker Hub images. This will apply to both its own components and downstream Rancher Kubernetes clusters (RKE2/K3s).","sidebar":"carbideSidebar"},"registry-docs/copying-images":{"id":"registry-docs/copying-images","title":"Copying Images to a Registry","description":"This page will walk you through copying our secured images into your own registry for later use.","sidebar":"carbideSidebar"},"registry-docs/downloading-images":{"id":"registry-docs/downloading-images","title":"Downloading the Images","description":"This page will walk you through locally downloading our secured images from our hardened registry, as well as packaging them to move over an airgap into your registry.","sidebar":"carbideSidebar"},"registry-docs/enforcement":{"id":"registry-docs/enforcement","title":"Enforcement","description":"This page will walk you through configuring a few example policy enforcement engines to validate your cluster images against our public key. This should ensure only the images from our hardened registry are allowed to run.","sidebar":"carbideSidebar"},"registry-docs/introduction":{"id":"registry-docs/introduction","title":"Introduction","description":"This page will walk through IOC expectations of the hardened registry and what exactly the hardened registry provides.","sidebar":"carbideSidebar"},"registry-docs/loading-images":{"id":"registry-docs/loading-images","title":"Loading Images to a Registry","description":"This page will walk you through seeding your registry with downloaded images from the CSR for all Rancher components.","sidebar":"carbideSidebar"},"registry-docs/prereqs":{"id":"registry-docs/prereqs","title":"Prerequisites","description":"Below are all the things you need to get started with the Hardened Container Registry. As we improve and streamline the process, this list could evolve.","sidebar":"carbideSidebar"},"registry-docs/release-cadence":{"id":"registry-docs/release-cadence","title":"Release Cadence","description":"This page will walk through how the pipelines are currently configured to execute, and future plans.","sidebar":"carbideSidebar"},"registry-docs/uninstall-kubernetes":{"id":"registry-docs/uninstall-kubernetes","title":"RKE2/K3s Uninstall","description":"K3s","sidebar":"carbideSidebar"},"registry-docs/uninstall-rancher":{"id":"registry-docs/uninstall-rancher","title":"Rancher Manager Uninstall","description":"This page will walk you through how to uninstall Carbide Registry Images from Rancher Manager both for its own components and downstream Rancher Kubernetes clusters (RKE2/K3s).","sidebar":"carbideSidebar"},"registry-docs/validating-images":{"id":"registry-docs/validating-images","title":"Validating Images","description":"This will guide you through validating the signatures and attestations of each image in the secured registry, as well as how to download artifacts about the image (Software Bill of Materials, Vulnerability Scan, Cryptographic Signature, etc...).","sidebar":"carbideSidebar"},"stigatron-docs/create-scan":{"id":"stigatron-docs/create-scan","title":"Creating STIGATRON Scans","description":"1. After installing STIGATRON on your downstream cluster, when you navigate to that downstream cluster, you should see STIGATRON on the left navigation menu. Click there.","sidebar":"carbideSidebar"},"stigatron-docs/installation":{"id":"stigatron-docs/installation","title":"Installation","description":"Local Cluster","sidebar":"carbideSidebar"},"stigatron-docs/introduction":{"id":"stigatron-docs/introduction","title":"Introduction","description":"This page will walk through Installation and Usage of the STIGATRON component of Rancher Government Carbide.","sidebar":"carbideSidebar"},"stigatron-docs/prereqs":{"id":"stigatron-docs/prereqs","title":"Prerequisites","description":"In order to utilize STIGATRON, you will need the following prerequisites:","sidebar":"carbideSidebar"},"stigatron-docs/uninstall":{"id":"stigatron-docs/uninstall","title":"Uninstall","description":"Local Cluster","sidebar":"carbideSidebar"},"stigatron-docs/using-heimdall":{"id":"stigatron-docs/using-heimdall","title":"Using MITRE Heimdall","description":"1. To export scan results to common formats, select the Export button in the upper-left.","sidebar":"carbideSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/a9a2fdb1.6efa66c3.js b/assets/js/a7456010.27f58562.js similarity index 65% rename from assets/js/a9a2fdb1.6efa66c3.js rename to assets/js/a7456010.27f58562.js index a85ba51..d96445d 100644 --- a/assets/js/a9a2fdb1.6efa66c3.js +++ b/assets/js/a7456010.27f58562.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[873],{4061:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[235],{8552:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/a7bd4aaa.6eca71af.js b/assets/js/a7bd4aaa.6eca71af.js new file mode 100644 index 0000000..2f59139 --- /dev/null +++ b/assets/js/a7bd4aaa.6eca71af.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[98],{1723:(n,e,s)=>{s.r(e),s.d(e,{default:()=>l});s(6540);var r=s(1003);function o(n,e){return`docs-${n}-${e}`}var c=s(3025),t=s(2831),i=s(1463),a=s(4848);function u(n){const{version:e}=n;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.A,{version:e.version,tag:o(e.pluginId,e.version)}),(0,a.jsx)(r.be,{children:e.noIndex&&(0,a.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function d(n){const{version:e,route:s}=n;return(0,a.jsx)(r.e3,{className:e.className,children:(0,a.jsx)(c.n,{version:e,children:(0,t.v)(s.routes)})})}function l(n){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(u,{...n}),(0,a.jsx)(d,{...n})]})}}}]); \ No newline at end of file diff --git a/assets/js/a7bd4aaa.f7a00d1f.js b/assets/js/a7bd4aaa.f7a00d1f.js deleted file mode 100644 index fa3432a..0000000 --- a/assets/js/a7bd4aaa.f7a00d1f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[98],{4532:(n,e,s)=>{s.r(e),s.d(e,{default:()=>l});s(6540);var r=s(1003),o=s(2967),t=s(2252),c=s(2831),i=s(1463),a=s(4848);function d(n){const{version:e}=n;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(i.A,{version:e.version,tag:(0,o.tU)(e.pluginId,e.version)}),(0,a.jsx)(r.be,{children:e.noIndex&&(0,a.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})]})}function u(n){const{version:e,route:s}=n;return(0,a.jsx)(r.e3,{className:e.className,children:(0,a.jsx)(t.n,{version:e,children:(0,c.v)(s.routes)})})}function l(n){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(d,{...n}),(0,a.jsx)(u,{...n})]})}}}]); \ No newline at end of file diff --git a/assets/js/a94703ab.204c7c02.js b/assets/js/a94703ab.204c7c02.js deleted file mode 100644 index 4a2ce6c..0000000 --- a/assets/js/a94703ab.204c7c02.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[48],{2559:(e,t,n)=>{n.r(t),n.d(t,{default:()=>be});var a=n(6540),o=n(4164),i=n(1003),s=n(7559),l=n(1754),r=n(4207),c=n(1312),d=n(3104),u=n(5062);const m={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};var b=n(4848);function h(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:l}=(0,d.gk)();return(0,d.Mq)(((e,n)=>{let{scrollY:a}=e;const s=n?.scrollY;s&&(i.current?i.current=!1:a>=s?(l(),o(!1)):a {e.location.hash&&(i.current=!0,o(!1))})),{shown:n,scrollToTop:()=>s(0)}}({threshold:300});return(0,b.jsx)("button",{"aria-label":(0,c.T)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.A)("clean-btn",s.G.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(3109),x=n(6347),j=n(4581),f=n(6342),v=n(3465);function _(e){return(0,b.jsx)("svg",{width:"20",height:"20","aria-hidden":"true",...e,children:(0,b.jsxs)("g",{fill:"#7a7a7a",children:[(0,b.jsx)("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),(0,b.jsx)("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})]})})}const A={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function g(e){let{onClick:t}=e;return(0,b.jsx)("button",{type:"button",title:(0,c.T)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,c.T)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.A)("button button--secondary button--outline",A.collapseSidebarButton),onClick:t,children:(0,b.jsx)(_,{className:A.collapseSidebarButtonIcon})})}var k=n(5041),C=n(9532);const S=Symbol("EmptyContext"),T=a.createContext(S);function N(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),i=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return(0,b.jsx)(T.Provider,{value:i,children:t})}var I=n(1422),B=n(9169),y=n(8774),w=n(2303);function L(e){let{collapsed:t,categoryLabel:n,onClick:a}=e;return(0,b.jsx)("button",{"aria-label":t?(0,c.T)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:n}):(0,c.T)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:n}),"aria-expanded":!t,type:"button",className:"clean-btn menu__caret",onClick:a})}function E(e){let{item:t,onItemClick:n,activePath:i,level:r,index:c,...d}=e;const{items:u,label:m,collapsible:h,className:p,href:x}=t,{docs:{sidebar:{autoCollapseCategories:j}}}=(0,f.p)(),v=function(e){const t=(0,w.A)();return(0,a.useMemo)((()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,l.Nr)(e):void 0),[e,t])}(t),_=(0,l.w8)(t,i),A=(0,B.ys)(x,i),{collapsed:g,setCollapsed:k}=(0,I.u)({initialState:()=>!!h&&(!_&&t.collapsed)}),{expandedItem:N,setExpandedItem:E}=function(){const e=(0,a.useContext)(T);if(e===S)throw new C.dV("DocSidebarItemsExpandedStateProvider");return e}(),M=function(e){void 0===e&&(e=!g),E(e?null:c),k(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const i=(0,C.ZC)(t);(0,a.useEffect)((()=>{t&&!i&&n&&o(!1)}),[t,i,n,o])}({isActive:_,collapsed:g,updateCollapsed:M}),(0,a.useEffect)((()=>{h&&null!=N&&N!==c&&j&&k(!0)}),[h,N,c,k,j]),(0,b.jsxs)("li",{className:(0,o.A)(s.G.docs.docSidebarItemCategory,s.G.docs.docSidebarItemCategoryLevel(r),"menu__list-item",{"menu__list-item--collapsed":g},p),children:[(0,b.jsxs)("div",{className:(0,o.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":A}),children:[(0,b.jsx)(y.A,{className:(0,o.A)("menu__link",{"menu__link--sublist":h,"menu__link--sublist-caret":!x&&h,"menu__link--active":_}),onClick:h?e=>{n?.(t),x?M(!1):(e.preventDefault(),M())}:()=>{n?.(t)},"aria-current":A?"page":void 0,role:h&&!x?"button":void 0,"aria-expanded":h&&!x?!g:void 0,href:h?v??"#":v,...d,children:m}),x&&h&&(0,b.jsx)(L,{collapsed:g,categoryLabel:m,onClick:e=>{e.preventDefault(),M()}})]}),(0,b.jsx)(I.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:g,children:(0,b.jsx)(U,{items:u,tabIndex:g?-1:0,onItemClick:n,activePath:i,level:r+1})})]})}var M=n(6654),H=n(3186);const G={menuExternalLink:"menuExternalLink_NmtK"};function W(e){let{item:t,onItemClick:n,activePath:a,level:i,index:r,...c}=e;const{href:d,label:u,className:m,autoAddBaseUrl:h}=t,p=(0,l.w8)(t,a),x=(0,M.A)(d);return(0,b.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(i),"menu__list-item",m),children:(0,b.jsxs)(y.A,{className:(0,o.A)("menu__link",!x&&G.menuExternalLink,{"menu__link--active":p}),autoAddBaseUrl:h,"aria-current":p?"page":void 0,to:d,...x&&{onClick:n?()=>n(t):void 0},...c,children:[u,!x&&(0,b.jsx)(H.A,{})]})},u)}const P={menuHtmlItem:"menuHtmlItem_M9Kj"};function R(e){let{item:t,level:n,index:a}=e;const{value:i,defaultStyle:l,className:r}=t;return(0,b.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(n),l&&[P.menuHtmlItem,"menu__list-item"],r),dangerouslySetInnerHTML:{__html:i}},a)}function D(e){let{item:t,...n}=e;switch(t.type){case"category":return(0,b.jsx)(E,{item:t,...n});case"html":return(0,b.jsx)(R,{item:t,...n});default:return(0,b.jsx)(W,{item:t,...n})}}function F(e){let{items:t,...n}=e;const a=(0,l.Y)(t,n.activePath);return(0,b.jsx)(N,{children:a.map(((e,t)=>(0,b.jsx)(D,{item:e,index:t,...n},t)))})}const U=(0,a.memo)(F),V={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function Y(e){let{path:t,sidebar:n,className:i}=e;const l=function(){const{isActive:e}=(0,k.Mj)(),[t,n]=(0,a.useState)(e);return(0,d.Mq)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return(0,b.jsx)("nav",{"aria-label":(0,c.T)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.A)("menu thin-scrollbar",V.menu,l&&V.menuWithAnnouncementBar,i),children:(0,b.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(U,{items:n,activePath:t,level:1})})})}const K="sidebar_njMd",z="sidebarWithHideableNavbar_wUlq",q="sidebarHidden_VK0M",O="sidebarLogo_isFc";function J(e){let{path:t,sidebar:n,onCollapse:a,isHidden:i}=e;const{navbar:{hideOnScroll:s},docs:{sidebar:{hideable:l}}}=(0,f.p)();return(0,b.jsxs)("div",{className:(0,o.A)(K,s&&z,i&&q),children:[s&&(0,b.jsx)(v.A,{tabIndex:-1,className:O}),(0,b.jsx)(Y,{path:t,sidebar:n}),l&&(0,b.jsx)(g,{onClick:a})]})}const Q=a.memo(J);var X=n(5600),Z=n(9876);const $=e=>{let{sidebar:t,path:n}=e;const a=(0,Z.M)();return(0,b.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(U,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&a.toggle(),"link"===e.type&&a.toggle()},level:1})})};function ee(e){return(0,b.jsx)(X.GX,{component:$,props:e})}const te=a.memo(ee);function ne(e){const t=(0,j.l)(),n="desktop"===t||"ssr"===t,a="mobile"===t;return(0,b.jsxs)(b.Fragment,{children:[n&&(0,b.jsx)(Q,{...e}),a&&(0,b.jsx)(te,{...e})]})}const ae={expandButton:"expandButton_TmdG",expandButtonIcon:"expandButtonIcon_i1dp"};function oe(e){let{toggleSidebar:t}=e;return(0,b.jsx)("div",{className:ae.expandButton,title:(0,c.T)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,c.T)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t,children:(0,b.jsx)(_,{className:ae.expandButtonIcon})})}const ie={docSidebarContainer:"docSidebarContainer_YfHR",docSidebarContainerHidden:"docSidebarContainerHidden_DPk8",sidebarViewport:"sidebarViewport_aRkj"};function se(e){let{children:t}=e;const n=(0,r.t)();return(0,b.jsx)(a.Fragment,{children:t},n?.name??"noSidebar")}function le(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:i}=e;const{pathname:l}=(0,x.zy)(),[r,c]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{r&&c(!1),!r&&(0,p.O)()&&c(!0),i((e=>!e))}),[i,r]);return(0,b.jsx)("aside",{className:(0,o.A)(s.G.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&c(!0)},children:(0,b.jsx)(se,{children:(0,b.jsxs)("div",{className:(0,o.A)(ie.sidebarViewport,r&&ie.sidebarViewportHidden),children:[(0,b.jsx)(ne,{sidebar:t,path:l,onCollapse:d,isHidden:r}),r&&(0,b.jsx)(oe,{toggleSidebar:d})]})})})}const re={docMainContainer:"docMainContainer_TBSr",docMainContainerEnhanced:"docMainContainerEnhanced_lQrH",docItemWrapperEnhanced:"docItemWrapperEnhanced_JWYK"};function ce(e){let{hiddenSidebarContainer:t,children:n}=e;const a=(0,r.t)();return(0,b.jsx)("main",{className:(0,o.A)(re.docMainContainer,(t||!a)&&re.docMainContainerEnhanced),children:(0,b.jsx)("div",{className:(0,o.A)("container padding-top--md padding-bottom--lg",re.docItemWrapper,t&&re.docItemWrapperEnhanced),children:n})})}const de={docRoot:"docRoot_UBD9",docsWrapper:"docsWrapper_hBAB"};function ue(e){let{children:t}=e;const n=(0,r.t)(),[o,i]=(0,a.useState)(!1);return(0,b.jsxs)("div",{className:de.docsWrapper,children:[(0,b.jsx)(h,{}),(0,b.jsxs)("div",{className:de.docRoot,children:[n&&(0,b.jsx)(le,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:i}),(0,b.jsx)(ce,{hiddenSidebarContainer:o,children:t})]})]})}var me=n(3363);function be(e){const t=(0,l.B5)(e);if(!t)return(0,b.jsx)(me.A,{});const{docElement:n,sidebarName:a,sidebarItems:c}=t;return(0,b.jsx)(i.e3,{className:(0,o.A)(s.G.page.docsDocPage),children:(0,b.jsx)(r.V,{name:a,items:c,children:(0,b.jsx)(ue,{children:n})})})}},3363:(e,t,n)=>{n.d(t,{A:()=>l});n(6540);var a=n(4164),o=n(1312),i=n(1107),s=n(4848);function l(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,a.A)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(i.A,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}}}]); \ No newline at end of file diff --git a/assets/js/a94703ab.91f13eb8.js b/assets/js/a94703ab.91f13eb8.js new file mode 100644 index 0000000..6753973 --- /dev/null +++ b/assets/js/a94703ab.91f13eb8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[48],{1377:(e,t,n)=>{n.r(t),n.d(t,{default:()=>pe});var a=n(6540),o=n(4164),i=n(1003),s=n(7559),l=n(4718),r=n(609),c=n(1312),d=n(3104),u=n(5062);const m={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};var b=n(4848);function h(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:l}=(0,d.gk)();return(0,d.Mq)(((e,n)=>{let{scrollY:a}=e;const s=n?.scrollY;s&&(i.current?i.current=!1:a>=s?(l(),o(!1)):a {e.location.hash&&(i.current=!0,o(!1))})),{shown:n,scrollToTop:()=>s(0)}}({threshold:300});return(0,b.jsx)("button",{"aria-label":(0,c.T)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.A)("clean-btn",s.G.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(3109),x=n(6347),f=n(4581),j=n(6342),v=n(3465);function _(e){return(0,b.jsx)("svg",{width:"20",height:"20","aria-hidden":"true",...e,children:(0,b.jsxs)("g",{fill:"#7a7a7a",children:[(0,b.jsx)("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),(0,b.jsx)("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})]})})}const g="collapseSidebarButton_PEFL",A="collapseSidebarButtonIcon_kv0_";function C(e){let{onClick:t}=e;return(0,b.jsx)("button",{type:"button",title:(0,c.T)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,c.T)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.A)("button button--secondary button--outline",g),onClick:t,children:(0,b.jsx)(_,{className:A})})}var k=n(5041),S=n(9532);const T=Symbol("EmptyContext"),N=a.createContext(T);function I(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),i=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return(0,b.jsx)(N.Provider,{value:i,children:t})}var y=n(1422),B=n(9169),w=n(8774),L=n(2303);function E(e){let{collapsed:t,categoryLabel:n,onClick:a}=e;return(0,b.jsx)("button",{"aria-label":t?(0,c.T)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:n}):(0,c.T)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:n}),"aria-expanded":!t,type:"button",className:"clean-btn menu__caret",onClick:a})}function M(e){let{item:t,onItemClick:n,activePath:i,level:r,index:c,...d}=e;const{items:u,label:m,collapsible:h,className:p,href:x}=t,{docs:{sidebar:{autoCollapseCategories:f}}}=(0,j.p)(),v=function(e){const t=(0,L.A)();return(0,a.useMemo)((()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,l.Nr)(e):void 0),[e,t])}(t),_=(0,l.w8)(t,i),g=(0,B.ys)(x,i),{collapsed:A,setCollapsed:C}=(0,y.u)({initialState:()=>!!h&&(!_&&t.collapsed)}),{expandedItem:k,setExpandedItem:I}=function(){const e=(0,a.useContext)(N);if(e===T)throw new S.dV("DocSidebarItemsExpandedStateProvider");return e}(),M=function(e){void 0===e&&(e=!A),I(e?null:c),C(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const i=(0,S.ZC)(t);(0,a.useEffect)((()=>{t&&!i&&n&&o(!1)}),[t,i,n,o])}({isActive:_,collapsed:A,updateCollapsed:M}),(0,a.useEffect)((()=>{h&&null!=k&&k!==c&&f&&C(!0)}),[h,k,c,C,f]),(0,b.jsxs)("li",{className:(0,o.A)(s.G.docs.docSidebarItemCategory,s.G.docs.docSidebarItemCategoryLevel(r),"menu__list-item",{"menu__list-item--collapsed":A},p),children:[(0,b.jsxs)("div",{className:(0,o.A)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":g}),children:[(0,b.jsx)(w.A,{className:(0,o.A)("menu__link",{"menu__link--sublist":h,"menu__link--sublist-caret":!x&&h,"menu__link--active":_}),onClick:h?e=>{n?.(t),x?M(!1):(e.preventDefault(),M())}:()=>{n?.(t)},"aria-current":g?"page":void 0,role:h&&!x?"button":void 0,"aria-expanded":h&&!x?!A:void 0,href:h?v??"#":v,...d,children:m}),x&&h&&(0,b.jsx)(E,{collapsed:A,categoryLabel:m,onClick:e=>{e.preventDefault(),M()}})]}),(0,b.jsx)(y.N,{lazy:!0,as:"ul",className:"menu__list",collapsed:A,children:(0,b.jsx)(V,{items:u,tabIndex:A?-1:0,onItemClick:n,activePath:i,level:r+1})})]})}var H=n(6654),G=n(3186);const P="menuExternalLink_NmtK";function R(e){let{item:t,onItemClick:n,activePath:a,level:i,index:r,...c}=e;const{href:d,label:u,className:m,autoAddBaseUrl:h}=t,p=(0,l.w8)(t,a),x=(0,H.A)(d);return(0,b.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(i),"menu__list-item",m),children:(0,b.jsxs)(w.A,{className:(0,o.A)("menu__link",!x&&P,{"menu__link--active":p}),autoAddBaseUrl:h,"aria-current":p?"page":void 0,to:d,...x&&{onClick:n?()=>n(t):void 0},...c,children:[u,!x&&(0,b.jsx)(G.A,{})]})},u)}const W="menuHtmlItem_M9Kj";function D(e){let{item:t,level:n,index:a}=e;const{value:i,defaultStyle:l,className:r}=t;return(0,b.jsx)("li",{className:(0,o.A)(s.G.docs.docSidebarItemLink,s.G.docs.docSidebarItemLinkLevel(n),l&&[W,"menu__list-item"],r),dangerouslySetInnerHTML:{__html:i}},a)}function F(e){let{item:t,...n}=e;switch(t.type){case"category":return(0,b.jsx)(M,{item:t,...n});case"html":return(0,b.jsx)(D,{item:t,...n});default:return(0,b.jsx)(R,{item:t,...n})}}function U(e){let{items:t,...n}=e;const a=(0,l.Y)(t,n.activePath);return(0,b.jsx)(I,{children:a.map(((e,t)=>(0,b.jsx)(F,{item:e,index:t,...n},t)))})}const V=(0,a.memo)(U),Y="menu_SIkG",K="menuWithAnnouncementBar_GW3s";function z(e){let{path:t,sidebar:n,className:i}=e;const l=function(){const{isActive:e}=(0,k.M)(),[t,n]=(0,a.useState)(e);return(0,d.Mq)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return(0,b.jsx)("nav",{"aria-label":(0,c.T)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.A)("menu thin-scrollbar",Y,l&&K,i),children:(0,b.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:n,activePath:t,level:1})})})}const q="sidebar_njMd",O="sidebarWithHideableNavbar_wUlq",J="sidebarHidden_VK0M",Q="sidebarLogo_isFc";function X(e){let{path:t,sidebar:n,onCollapse:a,isHidden:i}=e;const{navbar:{hideOnScroll:s},docs:{sidebar:{hideable:l}}}=(0,j.p)();return(0,b.jsxs)("div",{className:(0,o.A)(q,s&&O,i&&J),children:[s&&(0,b.jsx)(v.A,{tabIndex:-1,className:Q}),(0,b.jsx)(z,{path:t,sidebar:n}),l&&(0,b.jsx)(C,{onClick:a})]})}const Z=a.memo(X);var $=n(5600),ee=n(9876);const te=e=>{let{sidebar:t,path:n}=e;const a=(0,ee.M)();return(0,b.jsx)("ul",{className:(0,o.A)(s.G.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&a.toggle(),"link"===e.type&&a.toggle()},level:1})})};function ne(e){return(0,b.jsx)($.GX,{component:te,props:e})}const ae=a.memo(ne);function oe(e){const t=(0,f.l)(),n="desktop"===t||"ssr"===t,a="mobile"===t;return(0,b.jsxs)(b.Fragment,{children:[n&&(0,b.jsx)(Z,{...e}),a&&(0,b.jsx)(ae,{...e})]})}const ie={expandButton:"expandButton_TmdG",expandButtonIcon:"expandButtonIcon_i1dp"};function se(e){let{toggleSidebar:t}=e;return(0,b.jsx)("div",{className:ie.expandButton,title:(0,c.T)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,c.T)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t,children:(0,b.jsx)(_,{className:ie.expandButtonIcon})})}const le={docSidebarContainer:"docSidebarContainer_YfHR",docSidebarContainerHidden:"docSidebarContainerHidden_DPk8",sidebarViewport:"sidebarViewport_aRkj"};function re(e){let{children:t}=e;const n=(0,r.t)();return(0,b.jsx)(a.Fragment,{children:t},n?.name??"noSidebar")}function ce(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:i}=e;const{pathname:l}=(0,x.zy)(),[r,c]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{r&&c(!1),!r&&(0,p.O)()&&c(!0),i((e=>!e))}),[i,r]);return(0,b.jsx)("aside",{className:(0,o.A)(s.G.docs.docSidebarContainer,le.docSidebarContainer,n&&le.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(le.docSidebarContainer)&&n&&c(!0)},children:(0,b.jsx)(re,{children:(0,b.jsxs)("div",{className:(0,o.A)(le.sidebarViewport,r&&le.sidebarViewportHidden),children:[(0,b.jsx)(oe,{sidebar:t,path:l,onCollapse:d,isHidden:r}),r&&(0,b.jsx)(se,{toggleSidebar:d})]})})})}const de={docMainContainer:"docMainContainer_TBSr",docMainContainerEnhanced:"docMainContainerEnhanced_lQrH",docItemWrapperEnhanced:"docItemWrapperEnhanced_JWYK"};function ue(e){let{hiddenSidebarContainer:t,children:n}=e;const a=(0,r.t)();return(0,b.jsx)("main",{className:(0,o.A)(de.docMainContainer,(t||!a)&&de.docMainContainerEnhanced),children:(0,b.jsx)("div",{className:(0,o.A)("container padding-top--md padding-bottom--lg",de.docItemWrapper,t&&de.docItemWrapperEnhanced),children:n})})}const me={docRoot:"docRoot_UBD9",docsWrapper:"docsWrapper_hBAB"};function be(e){let{children:t}=e;const n=(0,r.t)(),[o,i]=(0,a.useState)(!1);return(0,b.jsxs)("div",{className:me.docsWrapper,children:[(0,b.jsx)(h,{}),(0,b.jsxs)("div",{className:me.docRoot,children:[n&&(0,b.jsx)(ce,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:i}),(0,b.jsx)(ue,{hiddenSidebarContainer:o,children:t})]})]})}var he=n(3363);function pe(e){const t=(0,l.B5)(e);if(!t)return(0,b.jsx)(he.A,{});const{docElement:n,sidebarName:a,sidebarItems:c}=t;return(0,b.jsx)(i.e3,{className:(0,o.A)(s.G.page.docsDocPage),children:(0,b.jsx)(r.V,{name:a,items:c,children:(0,b.jsx)(be,{children:n})})})}},3363:(e,t,n)=>{n.d(t,{A:()=>l});n(6540);var a=n(4164),o=n(1312),i=n(1107),s=n(4848);function l(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,a.A)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(i.A,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.A,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.A,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}}}]); \ No newline at end of file diff --git a/assets/js/aaed30b0.25f28890.js b/assets/js/aaed30b0.25f28890.js deleted file mode 100644 index f2c114a..0000000 --- a/assets/js/aaed30b0.25f28890.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[269],{6318:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var s=t(4848),a=t(8453);const r={},o="Uninstall",i={id:"airgapped-docs/uninstall",title:"Uninstall",description:"Downstream Clusters",source:"@site/docs/airgapped-docs/uninstall.md",sourceDirName:"airgapped-docs",slug:"/airgapped-docs/uninstall",permalink:"/carbide-docs/docs/airgapped-docs/uninstall",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/airgapped-docs/uninstall.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Installation",permalink:"/carbide-docs/docs/airgapped-docs/installation"},next:{title:"Known Limitations & Caveats",permalink:"/carbide-docs/docs/known-limits"}},c={},d=[{value:"Downstream Clusters",id:"downstream-clusters",level:2}];function l(e){const n={code:"code",h1:"h1",h2:"h2",p:"p",pre:"pre",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"uninstall",children:"Uninstall"}),"\n",(0,s.jsx)(n.h2,{id:"downstream-clusters",children:"Downstream Clusters"}),"\n",(0,s.jsx)(n.p,{children:"On each downstream cluster, run the following command to uninstall Airgapped Docs:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"helm uninstall -n carbide-docs-system airgapped-docs\n"})})]})}function u(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>i});var s=t(6540);const a={},r=s.createContext(a);function o(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/aaed30b0.873e427d.js b/assets/js/aaed30b0.873e427d.js new file mode 100644 index 0000000..415389b --- /dev/null +++ b/assets/js/aaed30b0.873e427d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[269],{1431:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>o,toc:()=>d});var s=t(4848),a=t(8453);const r={},i="Uninstall",o={id:"airgapped-docs/uninstall",title:"Uninstall",description:"Downstream Clusters",source:"@site/docs/airgapped-docs/uninstall.md",sourceDirName:"airgapped-docs",slug:"/airgapped-docs/uninstall",permalink:"/carbide-docs/docs/airgapped-docs/uninstall",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/airgapped-docs/uninstall.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Installation",permalink:"/carbide-docs/docs/airgapped-docs/installation"},next:{title:"Known Limitations & Caveats",permalink:"/carbide-docs/docs/known-limits"}},c={},d=[{value:"Downstream Clusters",id:"downstream-clusters",level:2}];function l(e){const n={code:"code",h1:"h1",h2:"h2",header:"header",p:"p",pre:"pre",...(0,a.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"uninstall",children:"Uninstall"})}),"\n",(0,s.jsx)(n.h2,{id:"downstream-clusters",children:"Downstream Clusters"}),"\n",(0,s.jsx)(n.p,{children:"On each downstream cluster, run the following command to uninstall Airgapped Docs:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"helm uninstall -n carbide-docs-system airgapped-docs\n"})})]})}function u(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>i,x:()=>o});var s=t(6540);const a={},r=s.createContext(a);function i(e){const n=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:i(e.components),s.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1359955c.ec935871.js b/assets/js/aba21aa0.3b349f65.js similarity index 65% rename from assets/js/1359955c.ec935871.js rename to assets/js/aba21aa0.3b349f65.js index 33a41fc..d7c4275 100644 --- a/assets/js/1359955c.ec935871.js +++ b/assets/js/aba21aa0.3b349f65.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[767],{1966:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[742],{7093:e=>{e.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/c0c2b7bb.ae9df9b6.js b/assets/js/c0c2b7bb.ae9df9b6.js new file mode 100644 index 0000000..d202623 --- /dev/null +++ b/assets/js/c0c2b7bb.ae9df9b6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[132],{6131:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Introduction","href":"/carbide-docs/docs/intro","docId":"intro","unlisted":false},{"type":"category","label":"Carbide Image Registry","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Architecture","href":"/carbide-docs/docs/registry-docs/architecture","docId":"registry-docs/architecture","unlisted":false},{"type":"link","label":"Carbide Helm Charts","href":"/carbide-docs/docs/registry-docs/carbide-charts","docId":"registry-docs/carbide-charts","unlisted":false},{"type":"category","label":"configuration","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"RKE2/K3s Configuration","href":"/carbide-docs/docs/registry-docs/configuration/kubernetes","docId":"registry-docs/configuration/kubernetes","unlisted":false},{"type":"link","label":"Rancher Manager Configuration","href":"/carbide-docs/docs/registry-docs/configuration/rancher","docId":"registry-docs/configuration/rancher","unlisted":false}]},{"type":"link","label":"Copying Images to a Registry","href":"/carbide-docs/docs/registry-docs/copying-images","docId":"registry-docs/copying-images","unlisted":false},{"type":"link","label":"Downloading the Images","href":"/carbide-docs/docs/registry-docs/downloading-images","docId":"registry-docs/downloading-images","unlisted":false},{"type":"link","label":"Enforcement","href":"/carbide-docs/docs/registry-docs/enforcement","docId":"registry-docs/enforcement","unlisted":false},{"type":"link","label":"Introduction","href":"/carbide-docs/docs/registry-docs/introduction","docId":"registry-docs/introduction","unlisted":false},{"type":"link","label":"Loading Images to a Registry","href":"/carbide-docs/docs/registry-docs/loading-images","docId":"registry-docs/loading-images","unlisted":false},{"type":"link","label":"Prerequisites","href":"/carbide-docs/docs/registry-docs/prereqs","docId":"registry-docs/prereqs","unlisted":false},{"type":"link","label":"Release Cadence","href":"/carbide-docs/docs/registry-docs/release-cadence","docId":"registry-docs/release-cadence","unlisted":false},{"type":"link","label":"RKE2/K3s Uninstall","href":"/carbide-docs/docs/registry-docs/uninstall-kubernetes","docId":"registry-docs/uninstall-kubernetes","unlisted":false},{"type":"link","label":"Rancher Manager Uninstall","href":"/carbide-docs/docs/registry-docs/uninstall-rancher","docId":"registry-docs/uninstall-rancher","unlisted":false},{"type":"link","label":"Validating Images","href":"/carbide-docs/docs/registry-docs/validating-images","docId":"registry-docs/validating-images","unlisted":false}],"href":"/carbide-docs/docs/category/carbide-image-registry"},{"type":"category","label":"Airgapped Docs","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Installation","href":"/carbide-docs/docs/airgapped-docs/installation","docId":"airgapped-docs/installation","unlisted":false},{"type":"link","label":"Introduction","href":"/carbide-docs/docs/airgapped-docs/introduction","docId":"airgapped-docs/introduction","unlisted":false},{"type":"link","label":"Prerequisites","href":"/carbide-docs/docs/airgapped-docs/prereqs","docId":"airgapped-docs/prereqs","unlisted":false},{"type":"link","label":"Uninstall","href":"/carbide-docs/docs/airgapped-docs/uninstall","docId":"airgapped-docs/uninstall","unlisted":false}],"href":"/carbide-docs/docs/category/airgapped-docs"},{"type":"category","label":"STIGATRON Security Operator","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Creating STIGATRON Scans","href":"/carbide-docs/docs/stigatron-docs/create-scan","docId":"stigatron-docs/create-scan","unlisted":false},{"type":"link","label":"Installation","href":"/carbide-docs/docs/stigatron-docs/installation","docId":"stigatron-docs/installation","unlisted":false},{"type":"link","label":"Introduction","href":"/carbide-docs/docs/stigatron-docs/introduction","docId":"stigatron-docs/introduction","unlisted":false},{"type":"link","label":"Prerequisites","href":"/carbide-docs/docs/stigatron-docs/prereqs","docId":"stigatron-docs/prereqs","unlisted":false},{"type":"link","label":"Uninstall","href":"/carbide-docs/docs/stigatron-docs/uninstall","docId":"stigatron-docs/uninstall","unlisted":false},{"type":"link","label":"Using MITRE Heimdall","href":"/carbide-docs/docs/stigatron-docs/using-heimdall","docId":"stigatron-docs/using-heimdall","unlisted":false}],"href":"/carbide-docs/docs/category/stigatron-security-operator"},{"type":"link","label":"Feedback","href":"/carbide-docs/docs/feedback","docId":"feedback","unlisted":false},{"type":"link","label":"Known Limitations & Caveats","href":"/carbide-docs/docs/known-limits","docId":"known-limits","unlisted":false}],"carbideSidebar":[{"type":"link","label":"Introduction","href":"/carbide-docs/docs/intro","docId":"intro","unlisted":false},{"type":"category","label":"Carbide Secured Registry (CSR)","collapsed":false,"items":[{"type":"link","label":"Introduction","href":"/carbide-docs/docs/registry-docs/introduction","docId":"registry-docs/introduction","unlisted":false},{"type":"link","label":"Architecture","href":"/carbide-docs/docs/registry-docs/architecture","docId":"registry-docs/architecture","unlisted":false},{"type":"link","label":"Release Cadence","href":"/carbide-docs/docs/registry-docs/release-cadence","docId":"registry-docs/release-cadence","unlisted":false},{"type":"category","label":"Installation","items":[{"type":"link","label":"Prerequisites","href":"/carbide-docs/docs/registry-docs/prereqs","docId":"registry-docs/prereqs","unlisted":false},{"type":"link","label":"Validating Images","href":"/carbide-docs/docs/registry-docs/validating-images","docId":"registry-docs/validating-images","unlisted":false},{"type":"category","label":"Seeding a Registry","items":[{"type":"category","label":"Connected Environments","items":[{"type":"link","label":"Copying Images to a Registry","href":"/carbide-docs/docs/registry-docs/copying-images","docId":"registry-docs/copying-images","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Airgapped Environments","items":[{"type":"link","label":"Downloading the Images","href":"/carbide-docs/docs/registry-docs/downloading-images","docId":"registry-docs/downloading-images","unlisted":false},{"type":"link","label":"Loading Images to a Registry","href":"/carbide-docs/docs/registry-docs/loading-images","docId":"registry-docs/loading-images","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"link","label":"Helm Charts","href":"/carbide-docs/docs/registry-docs/carbide-charts","docId":"registry-docs/carbide-charts","unlisted":false},{"type":"category","label":"Configuration","items":[{"type":"link","label":"RKE2/K3s Configuration","href":"/carbide-docs/docs/registry-docs/configuration/kubernetes","docId":"registry-docs/configuration/kubernetes","unlisted":false},{"type":"link","label":"Rancher Manager Configuration","href":"/carbide-docs/docs/registry-docs/configuration/rancher","docId":"registry-docs/configuration/rancher","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Enforcement","href":"/carbide-docs/docs/registry-docs/enforcement","docId":"registry-docs/enforcement","unlisted":false},{"type":"category","label":"Uninstall","items":[{"type":"link","label":"RKE2/K3s Uninstall","href":"/carbide-docs/docs/registry-docs/uninstall-kubernetes","docId":"registry-docs/uninstall-kubernetes","unlisted":false},{"type":"link","label":"Rancher Manager Uninstall","href":"/carbide-docs/docs/registry-docs/uninstall-rancher","docId":"registry-docs/uninstall-rancher","unlisted":false}],"collapsed":true,"collapsible":true}],"collapsible":true},{"type":"category","label":"STIGATRON","collapsed":false,"items":[{"type":"link","label":"Introduction","href":"/carbide-docs/docs/stigatron-docs/introduction","docId":"stigatron-docs/introduction","unlisted":false},{"type":"category","label":"Installation","items":[{"type":"link","label":"Prerequisites","href":"/carbide-docs/docs/stigatron-docs/prereqs","docId":"stigatron-docs/prereqs","unlisted":false},{"type":"link","label":"Installation","href":"/carbide-docs/docs/stigatron-docs/installation","docId":"stigatron-docs/installation","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Using STIGATRON","items":[{"type":"link","label":"Creating STIGATRON Scans","href":"/carbide-docs/docs/stigatron-docs/create-scan","docId":"stigatron-docs/create-scan","unlisted":false},{"type":"link","label":"Using MITRE Heimdall","href":"/carbide-docs/docs/stigatron-docs/using-heimdall","docId":"stigatron-docs/using-heimdall","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Uninstall","href":"/carbide-docs/docs/stigatron-docs/uninstall","docId":"stigatron-docs/uninstall","unlisted":false}],"collapsible":true},{"type":"category","label":"Airgapped Docs","collapsed":false,"items":[{"type":"link","label":"Introduction","href":"/carbide-docs/docs/airgapped-docs/introduction","docId":"airgapped-docs/introduction","unlisted":false},{"type":"category","label":"Installation","items":[{"type":"link","label":"Prerequisites","href":"/carbide-docs/docs/airgapped-docs/prereqs","docId":"airgapped-docs/prereqs","unlisted":false},{"type":"link","label":"Installation","href":"/carbide-docs/docs/airgapped-docs/installation","docId":"airgapped-docs/installation","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Uninstall","href":"/carbide-docs/docs/airgapped-docs/uninstall","docId":"airgapped-docs/uninstall","unlisted":false}],"collapsible":true},{"type":"link","label":"Known Limitations & Caveats","href":"/carbide-docs/docs/known-limits","docId":"known-limits","unlisted":false},{"type":"link","label":"Feedback","href":"/carbide-docs/docs/feedback","docId":"feedback","unlisted":false}]},"docs":{"airgapped-docs/installation":{"id":"airgapped-docs/installation","title":"Installation","description":"Downstream Clusters","sidebar":"carbideSidebar"},"airgapped-docs/introduction":{"id":"airgapped-docs/introduction","title":"Introduction","description":"This page will walk through installation and usage of the Airgapped Docs component of Rancher Government Carbide.","sidebar":"carbideSidebar"},"airgapped-docs/prereqs":{"id":"airgapped-docs/prereqs","title":"Prerequisites","description":"In order to utilize Airgapped Docs, you will need the following prerequisites:","sidebar":"carbideSidebar"},"airgapped-docs/uninstall":{"id":"airgapped-docs/uninstall","title":"Uninstall","description":"Downstream Clusters","sidebar":"carbideSidebar"},"feedback":{"id":"feedback","title":"Feedback","description":"Feedback is critical to us to continue to improve our tools and help you with your mission.","sidebar":"carbideSidebar"},"intro":{"id":"intro","title":"Introduction","description":"Carbide is Rancher Government\'s hardened distribution of the SUSE Rancher product portfolio. Carbide is exclusively offered to our US Government and partnering customers that value security above all else.","sidebar":"carbideSidebar"},"known-limits":{"id":"known-limits","title":"Known Limitations & Caveats","description":"While we continue to improve Carbide from the feedback and requirements from our customers, we strive to remain agile in our development. With that, below are the known limitations and caveats with the Secured Registry. We intend to work diligently to address these as Carbide continues to evolve.","sidebar":"carbideSidebar"},"registry-docs/architecture":{"id":"registry-docs/architecture","title":"Architecture","description":"This page will walk through the architecture of the Carbide Secured Registry (CSR), including both of the pipelines related to the CSR, as well as typical usage of the images.","sidebar":"carbideSidebar"},"registry-docs/carbide-charts":{"id":"registry-docs/carbide-charts","title":"Carbide Helm Charts","description":"Along with the our secured images provided through the CSR, we also provide helm charts to install various components of the carbide product suite. These include charts include the necessary components to run STIGATRON, an airgapped copy of all rancher product docs, as well as custom build of rancher with our white-labeling.","sidebar":"carbideSidebar"},"registry-docs/configuration/kubernetes":{"id":"registry-docs/configuration/kubernetes","title":"RKE2/K3s Configuration","description":"This page will walk you through how to configure Rancher Kubernetes distributions (K3s, RKE2) to utilize the secured images instead of the upstream Docker hub images.","sidebar":"carbideSidebar"},"registry-docs/configuration/rancher":{"id":"registry-docs/configuration/rancher","title":"Rancher Manager Configuration","description":"This page will walk you through how to configure Rancher Manager to use images from the CSR instead of the upstream Docker Hub images. This will apply to both its own components and downstream Rancher Kubernetes clusters (RKE2/K3s).","sidebar":"carbideSidebar"},"registry-docs/copying-images":{"id":"registry-docs/copying-images","title":"Copying Images to a Registry","description":"This page will walk you through copying our secured images into your own registry for later use.","sidebar":"carbideSidebar"},"registry-docs/downloading-images":{"id":"registry-docs/downloading-images","title":"Downloading the Images","description":"This page will walk you through locally downloading our secured images from our hardened registry, as well as packaging them to move over an airgap into your registry.","sidebar":"carbideSidebar"},"registry-docs/enforcement":{"id":"registry-docs/enforcement","title":"Enforcement","description":"This page will walk you through configuring a few example policy enforcement engines to validate your cluster images against our public key. This should ensure only the images from our hardened registry are allowed to run.","sidebar":"carbideSidebar"},"registry-docs/introduction":{"id":"registry-docs/introduction","title":"Introduction","description":"This page will walk through IOC expectations of the hardened registry and what exactly the hardened registry provides.","sidebar":"carbideSidebar"},"registry-docs/loading-images":{"id":"registry-docs/loading-images","title":"Loading Images to a Registry","description":"This page will walk you through seeding your registry with downloaded images from the CSR for all Rancher components.","sidebar":"carbideSidebar"},"registry-docs/prereqs":{"id":"registry-docs/prereqs","title":"Prerequisites","description":"Below are all the things you need to get started with the Hardened Container Registry. As we improve and streamline the process, this list could evolve.","sidebar":"carbideSidebar"},"registry-docs/release-cadence":{"id":"registry-docs/release-cadence","title":"Release Cadence","description":"This page will walk through how the pipelines are currently configured to execute, and future plans.","sidebar":"carbideSidebar"},"registry-docs/uninstall-kubernetes":{"id":"registry-docs/uninstall-kubernetes","title":"RKE2/K3s Uninstall","description":"K3s","sidebar":"carbideSidebar"},"registry-docs/uninstall-rancher":{"id":"registry-docs/uninstall-rancher","title":"Rancher Manager Uninstall","description":"This page will walk you through how to uninstall Carbide Registry Images from Rancher Manager both for its own components and downstream Rancher Kubernetes clusters (RKE2/K3s).","sidebar":"carbideSidebar"},"registry-docs/validating-images":{"id":"registry-docs/validating-images","title":"Validating Images","description":"This will guide you through validating the signatures and attestations of each image in the secured registry, as well as how to download artifacts about the image (Software Bill of Materials, Vulnerability Scan, Cryptographic Signature, etc...).","sidebar":"carbideSidebar"},"stigatron-docs/create-scan":{"id":"stigatron-docs/create-scan","title":"Creating STIGATRON Scans","description":"1. After installing STIGATRON on your downstream cluster, when you navigate to that downstream cluster, you should see STIGATRON on the left navigation menu. Click there.","sidebar":"carbideSidebar"},"stigatron-docs/installation":{"id":"stigatron-docs/installation","title":"Installation","description":"Local Cluster","sidebar":"carbideSidebar"},"stigatron-docs/introduction":{"id":"stigatron-docs/introduction","title":"Introduction","description":"This page will walk through Installation and Usage of the STIGATRON component of Rancher Government Carbide.","sidebar":"carbideSidebar"},"stigatron-docs/prereqs":{"id":"stigatron-docs/prereqs","title":"Prerequisites","description":"In order to utilize STIGATRON, you will need the following prerequisites:","sidebar":"carbideSidebar"},"stigatron-docs/uninstall":{"id":"stigatron-docs/uninstall","title":"Uninstall","description":"Local Cluster","sidebar":"carbideSidebar"},"stigatron-docs/using-heimdall":{"id":"stigatron-docs/using-heimdall","title":"Using MITRE Heimdall","description":"1. To export scan results to common formats, select the Export button in the upper-left.","sidebar":"carbideSidebar"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/c3e6124d.2470aaeb.js b/assets/js/c3e6124d.2470aaeb.js deleted file mode 100644 index f000e3d..0000000 --- a/assets/js/c3e6124d.2470aaeb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[941],{9147:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>l,frontMatter:()=>c,metadata:()=>i,toc:()=>d});var s=n(4848),o=n(8453);const c={},r="Feedback",i={id:"feedback",title:"Feedback",description:"Feedback is critical to us to continue to improve our tools and help you with your mission.",source:"@site/docs/feedback.md",sourceDirName:".",slug:"/feedback",permalink:"/carbide-docs/docs/feedback",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/feedback.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Known Limitations & Caveats",permalink:"/carbide-docs/docs/known-limits"}},a={},d=[];function u(e){const t={a:"a",h1:"h1",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"feedback",children:"Feedback"}),"\n",(0,s.jsxs)(t.p,{children:["Feedback is ",(0,s.jsx)(t.strong,{children:"critical"})," to us to continue to improve our tools and help you with your mission."]}),"\n",(0,s.jsxs)(t.p,{children:["For any issues, concerns, or questions, please open an issue: ",(0,s.jsx)(t.a,{href:"https://github.com/rancherfederal/carbide-docs/issues",children:"https://github.com/rancherfederal/carbide-docs/issues"})]})]})}function l(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>r,x:()=>i});var s=n(6540);const o={},c=s.createContext(o);function r(e){const t=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(c.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c3e6124d.d2e002c7.js b/assets/js/c3e6124d.d2e002c7.js new file mode 100644 index 0000000..f7e0d35 --- /dev/null +++ b/assets/js/c3e6124d.d2e002c7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[941],{1098:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>l,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var s=n(4848),o=n(8453);const r={},c="Feedback",i={id:"feedback",title:"Feedback",description:"Feedback is critical to us to continue to improve our tools and help you with your mission.",source:"@site/docs/feedback.md",sourceDirName:".",slug:"/feedback",permalink:"/carbide-docs/docs/feedback",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/feedback.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Known Limitations & Caveats",permalink:"/carbide-docs/docs/known-limits"}},a={},d=[];function u(e){const t={a:"a",h1:"h1",header:"header",p:"p",strong:"strong",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"feedback",children:"Feedback"})}),"\n",(0,s.jsxs)(t.p,{children:["Feedback is ",(0,s.jsx)(t.strong,{children:"critical"})," to us to continue to improve our tools and help you with your mission."]}),"\n",(0,s.jsxs)(t.p,{children:["For any issues, concerns, or questions, please open an issue: ",(0,s.jsx)(t.a,{href:"https://github.com/rancherfederal/carbide-docs/issues",children:"https://github.com/rancherfederal/carbide-docs/issues"})]})]})}function l(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(u,{...e})}):u(e)}},8453:(e,t,n)=>{n.d(t,{R:()=>c,x:()=>i});var s=n(6540);const o={},r=s.createContext(o);function c(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:c(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c4f5d8e4.0d88945a.js b/assets/js/c4f5d8e4.0d88945a.js new file mode 100644 index 0000000..96fee33 --- /dev/null +++ b/assets/js/c4f5d8e4.0d88945a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[634],{3320:(e,t,a)=>{a.d(t,{A:()=>i});var l,c,s,n=a(6540);function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t {let{title:t,titleId:a,...i}=e;return n.createElement("svg",r({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 311.42 363.91","aria-labelledby":a},i),t?n.createElement("title",{id:a},t):null,l||(l=n.createElement("defs",null,n.createElement("style",null,".cls-2{fill:#f05455}.cls-4{fill:#fff}"))),n.createElement("g",{id:"Layer_2","data-name":"Layer 2"},n.createElement("g",{id:"Layer_1-2","data-name":"Layer 1"},n.createElement("path",{d:"M149.27 355.87c-8.29-4.1-16.94-7.4-26.1-10.89C90 332.36 52.49 318.06 24.23 260.9 3.69 219.34 11 188.4 17.4 161.1c5.81-24.66 10.4-44.14-5.66-69.86l-6.19-9.91 53.07-51.88 8.56 3.08a99.5 99.5 0 0 0 32.76 5.86c19 0 34.08-6.31 44.73-18.76l11-12.92 11 12.92c10.65 12.45 25.7 18.76 44.73 18.76a99.5 99.5 0 0 0 32.76-5.86l8.56-3.08 53.07 51.88-6.19 9.91c-15.98 25.76-11.4 45.2-5.6 69.86 6.43 27.3 13.72 58.24-6.82 99.8-28.26 57.16-65.81 71.46-98.94 84.08-9.16 3.49-17.81 6.79-26.1 10.89l-6.44 3.18Z",style:{fill:"none",stroke:"#0375a8",strokeMiterlimit:10,strokeWidth:"8.72px"}}),c||(c=n.createElement("path",{d:"M194.45 327c11.9-4.74 23.8-10.18 35.29-18.24V140.25h-35.29ZM81.6 308.7c11.48 8.07 23.4 13.52 35.29 18.3V140.25H81.6ZM250.87 289.89c8.23-9.27 16.06-20.79 23.3-35.43 23.95-48.45 5.33-80.39.85-114.21h-24.15ZM60.46 140.25H36.4c-4.48 33.82-23.1 65.76.85 114.21 7.22 14.59 15 26.08 23.21 35.33ZM173.31 335.18V140.25H138v194.89c6 2.36 11.9 4.84 17.69 7.7 5.79-2.84 11.67-5.32 17.62-7.66",className:"cls-2"})),n.createElement("path",{d:"M36.4 140.25H275c-2.32-17.54-.85-35.58 12.34-56.7L249.15 46.2c-25.5 9.18-67.37 13.36-93.44-17.14-26.07 30.5-67.94 26.32-93.45 17.14l-38.2 37.35c13.19 21.12 14.66 39.16 12.34 56.7",style:{fill:"#0375a8"}}),s||(s=n.createElement("path",{d:"M229.79 76.59 228.18 67c-.51-3.1-1.72-5.64-2.68-5.64s-1.74 2.57-1.74 5.71v2.53a5.73 5.73 0 0 1-5.71 5.71H215v6.94h10a4.69 4.69 0 0 0 4.77-5.64M207 68.43h-31.54a5 5 0 0 0-.54 0V67c0-3.14-.78-5.7-1.74-5.7S171 63.85 170.5 67l-1.61 9.64a4.69 4.69 0 0 0 4.77 5.64h9.49a8.9 8.9 0 0 0 2.71-.42 3.49 3.49 0 0 1-3.43 2.84h-13.31a3.49 3.49 0 0 1-3.44-4.06l1.32-8.13a3.48 3.48 0 0 0-3.44-4.06H97.35a3.49 3.49 0 0 0-3.18 2l-12.47 19a.86.86 0 0 0 .06 1l2.42 2.86a.86.86 0 0 0 1.2.12l8.48-6.69v40.61a3.48 3.48 0 0 0 3.49 3.48h18.8a3.48 3.48 0 0 0 3.49-3.48v-14.07a3.48 3.48 0 0 1 3.48-3.48h46.95a3.48 3.48 0 0 1 3.49 3.48v14.13a3.48 3.48 0 0 0 3.49 3.48h18.8a3.48 3.48 0 0 0 3.49-3.48v-15.2h-10a5.73 5.73 0 0 1-5.71-5.71v-9.77a5.72 5.72 0 0 1 2.29-4.56v11.66a5.73 5.73 0 0 0 5.71 5.71H207a5.72 5.72 0 0 0 5.7-5.71V74.14a5.72 5.72 0 0 0-5.7-5.71",className:"cls-4"})))))}},2325:(e,t,a)=>{a.d(t,{A:()=>r});var l,c,s=a(6540);function n(){return n=Object.assign?Object.assign.bind():function(e){for(var t=1;t {let{title:t,titleId:a,...r}=e;return s.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg",xmlSpace:"preserve",viewBox:"0 0 255.12 185.73","aria-labelledby":a},r),t?s.createElement("title",{id:a},t):null,l||(l=s.createElement("style",null,".st2{fill:#2453ff}")),c||(c=s.createElement("g",{id:"logo"},s.createElement("path",{d:"M32.05 97.42h13.14c6.24 0 10.45 3.03 10.45 8.89 0 4.77-3.26 7.66-6.43 8.65.95.8 1.65 1.89 2.22 3.03 1.32 2.69 2.22 5.67 5.01 5.67.71 0 1.28-.24 1.28-.24l-.61 5.63s-1.7.43-3.17.43c-3.78 0-5.96-1.47-8.18-6.52-.95-2.27-2.27-6.24-4.02-6.24h-1.8v12.62h-7.89zm7.9 5.72v7.85h2.84c2.27 0 4.92-.71 4.92-4.11 0-2.79-1.8-3.74-3.97-3.74zm26.37-5.72h7.99l10.78 31.91H77.1l-1.99-6.05H64.43l-1.94 6.05h-6.9zm0 19.99h6.85L71 110.7c-.76-2.27-1.09-5.48-1.09-5.48h-.19s-.47 3.26-1.18 5.44zm19.1 11.92h6.48v-15.32c0-1.75-.24-3.88-.38-5.67h.19c.66 1.7 1.51 3.78 2.32 5.2l8.7 15.79H111V97.42h-6.48v15.32c0 1.84.24 4.4.33 6.19h-.19c-.76-1.89-1.7-4.3-2.41-5.67l-8.37-15.84h-8.46zm27.27-16.17c0 11.63 5.58 16.73 14.23 16.73 8.51 0 13.19-4.78 12.67-11.25l-6.9-.71c.57 4.16-2.08 6.19-5.34 6.19-3.45 0-6.48-2.22-6.48-10.92 0-8.23 2.79-10.78 6.24-10.78 3.59 0 5.58 2.03 4.77 7.09l7.38-.66c1.04-6.9-2.7-12.01-12.01-12.01-8.84.01-14.56 4.78-14.56 16.32m28.5 16.17h7.9v-13.52h9.69v13.52h7.9V97.42h-7.9v12.06h-9.69V97.42h-7.9zm28.64 0h21.6v-5.86h-13.71V116h11.11v-5.86h-11.11v-6.85h13.24v-5.86h-21.13zm23.12-31.91h13.14c6.24 0 10.45 3.03 10.45 8.89 0 4.77-3.26 7.66-6.43 8.65.95.8 1.65 1.89 2.22 3.03 1.32 2.69 2.22 5.67 5.01 5.67.71 0 1.28-.24 1.28-.24l-.61 5.63s-1.7.43-3.17.43c-3.78 0-5.96-1.47-8.18-6.52-.95-2.27-2.27-6.24-4.02-6.24h-1.8v12.62h-7.89zm7.89 5.72v7.85h2.84c2.27 0 4.92-.71 4.92-4.11 0-2.79-1.8-3.74-3.97-3.74z"}),s.createElement("path",{d:"m182.55 44.09-1.24-7.45c-.4-2.39-1.33-4.35-2.07-4.35s-1.35 1.98-1.35 4.41v1.95c0 2.43-1.98 4.41-4.41 4.41h-1.95c-.14 0-.28.01-.42.01v5.36c.14.01.28.01.42.01h7.33c2.43 0 4.09-1.96 3.69-4.35M164.98 37.78h-11.89c-.1 0-.2.01-.29.01h-12.2c-.14 0-.28.01-.42.04V36.7c0-2.43-.61-4.41-1.35-4.41s-1.67 1.96-2.07 4.35l-1.24 7.45c-.4 2.39 1.26 4.35 3.68 4.35h7.33c.75 0 1.47-.12 2.09-.32a2.69 2.69 0 0 1-2.64 2.2H135.7c-1.66 0-2.93-1.49-2.66-3.13l1.04-6.25a2.69 2.69 0 0 0-2.66-3.13H80.26c-1.09 0-2.03.65-2.45 1.58l-9.64 14.66c-.16.25-.14.57.05.8l1.87 2.21c.23.28.64.32.93.09l6.55-5.17v31.36a2.69 2.69 0 0 0 2.69 2.69h14.53a2.69 2.69 0 0 0 2.69-2.69V72.43a2.69 2.69 0 0 1 2.69-2.69h36.26a2.69 2.69 0 0 1 2.69 2.69v10.91a2.69 2.69 0 0 0 2.69 2.69h14.53a2.69 2.69 0 0 0 2.69-2.69V71.6h-7.72c-2.43 0-4.41-1.98-4.41-4.41v-7.55c0-1.44.7-2.71 1.77-3.52v9.01c0 2.43 1.98 4.41 4.41 4.41h11.89c2.43 0 4.41-1.98 4.41-4.41V42.19c.01-2.42-1.98-4.41-4.4-4.41",className:"st2"}),s.createElement("path",{d:"M218.77 99.01c0-1.5 1.12-2.16 2.15-2.16s2.15.65 2.15 2.16c0 1.48-1.12 2.12-2.15 2.12-1.04 0-2.15-.65-2.15-2.12m3.78-.01c0-1.18-.77-1.7-1.63-1.7s-1.65.52-1.65 1.7c0 1.17.79 1.68 1.65 1.68s1.63-.51 1.63-1.68m-2.34-1.07h.76c.39 0 .77.11.77.66 0 .32-.21.51-.51.56l.51.87h-.46l-.47-.84h-.18v.84h-.42zm.79.95c.18 0 .33-.11.33-.3 0-.22-.18-.28-.33-.28h-.38v.58zM145.69 153.44h-4.5v-12.06h4.33c2.54 0 3.82 1.38 3.82 3.06 0 1.52-.95 2.4-2.11 2.79 1.31.23 2.39 1.49 2.39 2.98 0 1.81-1.44 3.23-3.93 3.23m-.31-10.77h-2.61v3.91h2.65c1.47 0 2.32-.73 2.32-1.96-.01-1.18-.82-1.95-2.36-1.95m.12 5.21h-2.73v4.26h2.79c1.56 0 2.49-.78 2.49-2.09-.01-1.34-1.01-2.17-2.55-2.17M151.66 141.38h1.75l2.98 6.11 2.98-6.11h1.75l-3.93 7.51v4.55h-1.57v-4.55z"}),s.createElement("path",{id:"Layer_1_00000018198142132233427420000003751010304965106607_",d:"M212.62 153.28c-1.31 0-2.37-1.06-2.37-2.37v-7.02c0-1.31 1.06-2.37 2.37-2.37H218c.42 0 .77.34.77.76s-.34.76-.77.76h-5.39c-.46 0-.84.38-.84.84v2.76h5.28a.726.726 0 0 1 0 1.45h-5.28v2.81c0 .46.38.84.84.84H218c.42 0 .77.34.77.77 0 .42-.34.76-.77.76h-5.38zm-24.15.16c-1.55 0-2.75-.39-3.56-1.17s-1.21-1.94-1.21-3.47v-6.53c0-.49.4-.89.89-.89s.89.4.89.89v6.29c0 1.14.25 2 .73 2.55.49.55 1.25.83 2.27.83 1.01 0 1.78-.28 2.27-.83s.73-1.4.73-2.55v-6.29c0-.49.4-.89.89-.89s.89.4.89.89v6.53c0 1.53-.41 2.7-1.22 3.47-.82.77-2.02 1.17-3.57 1.17m13.32 0c-2 0-3.52-.57-4.53-1.69-.29-.32-.27-.82.04-1.14a.83.83 0 0 1 .6-.24c.24 0 .46.1.62.28.28.32.6.59.95.78.61.34 1.39.51 2.3.51.86 0 1.55-.15 2.05-.45.51-.31.77-.75.77-1.32 0-.46-.23-.84-.7-1.11-.45-.27-1.21-.5-2.32-.71-1.08-.2-1.95-.45-2.59-.75-.63-.29-1.09-.66-1.38-1.09-.28-.43-.43-.95-.43-1.57 0-.65.18-1.25.54-1.79s.89-.97 1.57-1.28c.69-.32 1.5-.48 2.42-.48 1.07 0 2 .2 2.76.58.51.26.97.62 1.37 1.06.31.34.28.87-.06 1.18-.15.14-.35.21-.56.21-.26 0-.5-.12-.66-.33-.23-.3-.48-.54-.76-.72-.51-.33-1.21-.5-2.06-.5-.84 0-1.5.17-1.97.51-.48.34-.72.79-.72 1.34 0 .51.24.92.7 1.21.45.29 1.24.53 2.4.74q1.59.285 2.52.72c.61.28 1.06.64 1.34 1.07.28.42.42.95.42 1.58 0 .67-.19 1.27-.58 1.78s-.93.91-1.63 1.19c-.68.29-1.5.43-2.42.43m-26.56 0c-2 0-3.52-.57-4.53-1.69-.29-.32-.27-.82.04-1.14a.84.84 0 0 1 .6-.25c.24 0 .46.1.62.28.28.32.6.59.95.78.62.34 1.39.51 2.3.51.86 0 1.55-.15 2.05-.45.51-.31.77-.75.77-1.32 0-.46-.23-.84-.7-1.11-.45-.27-1.21-.5-2.32-.71-1.08-.2-1.95-.45-2.59-.75-.63-.29-1.09-.66-1.38-1.09-.28-.43-.43-.96-.43-1.57 0-.65.18-1.25.54-1.79s.89-.97 1.57-1.28c.69-.32 1.5-.48 2.42-.48 1.07 0 2 .2 2.76.58.51.26.97.62 1.37 1.06.31.34.28.87-.06 1.18-.15.14-.35.21-.56.21-.26 0-.5-.12-.66-.33-.23-.3-.48-.54-.76-.72-.52-.33-1.21-.5-2.06-.5-.84 0-1.5.17-1.97.51-.48.35-.72.8-.72 1.34 0 .51.24.92.7 1.21.45.29 1.24.53 2.4.74 1.05.19 1.9.43 2.52.72.61.29 1.06.65 1.34 1.07s.42.95.42 1.58c0 .67-.19 1.27-.58 1.78s-.93.91-1.63 1.19c-.67.3-1.5.44-2.42.44"}))))}},4733:(e,t,a)=>{a.d(t,{A:()=>s});var l=a(6540);function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t {let{title:t,titleId:a,...s}=e;return l.createElement("svg",c({xmlns:"http://www.w3.org/2000/svg",width:563.807,height:67.104,viewBox:"0 0 149.174 17.755","aria-labelledby":a},s),t?l.createElement("title",{id:a},t):null,l.createElement("text",{xmlSpace:"preserve",x:5.819,y:23.741,style:{fontSize:"25.4px",fontFamily:"Nasalization",InkscapeFontSpecification:"Nasalization",fill:"#666",strokeWidth:.264583},transform:"translate(-7.114 -6.292)"},l.createElement("tspan",{x:5.819,y:23.741,style:{strokeWidth:.264583}},l.createElement("tspan",{style:{fill:"#000"}},"STIG"),l.createElement("tspan",{style:{fill:"red"}},"A"),l.createElement("tspan",{style:{fill:"#000"}},"TRON"))))}},6467:(e,t,a)=>{a.r(t),a.d(t,{default:()=>u});a(6540);var l=a(4164),c=a(8774),s=a(4586),n=a(7907);const r={features:"features_t9lD",featureSvg:"featureSvg_GfXr"};var i=a(4848);const h=[{title:"Carbide Secured Registry (CSR)",Svg:a(3320).A,description:(0,i.jsx)(i.Fragment,{children:"Centralized Secure SLSA 3 Compliant Container Registry, with SBOMs, CVEs, Image Attestations, and verifiable digital signatures."})},{title:"STIGATRON",Svg:a(4733).A,description:(0,i.jsxs)(i.Fragment,{children:["Compliance and Observability tool for Day 2 Operations, tactically built to validate downstream clusters against the ",(0,i.jsx)("a",{href:"https://public.cyber.mil/stigs/downloads",children:"published DISA STIGs"}),"."]})},{title:"World Class Support",Svg:a(2325).A,description:(0,i.jsxs)(i.Fragment,{children:["Rancher Government Solutions is your trusted provider of Rancher, Kubernetes, and Cloud Native support. Learn more on our ",(0,i.jsx)("a",{href:"https://ranchergovernment.com",children:"website"}),"."]})}];function o(e){let{Svg:t,title:a,description:c}=e;return(0,i.jsxs)("div",{className:(0,l.A)("col col--4"),children:[(0,i.jsx)("div",{className:"text--center",children:(0,i.jsx)(t,{className:r.featureSvg,role:"img"})}),(0,i.jsxs)("div",{className:"text--center padding-horiz--md",children:[(0,i.jsx)("h3",{children:a}),(0,i.jsx)("p",{children:c})]})]})}function d(){return(0,i.jsx)("section",{className:r.features,children:(0,i.jsx)("div",{className:"container",children:(0,i.jsx)("div",{className:"row",children:h.map(((e,t)=>(0,i.jsx)(o,{...e},t)))})})})}const m={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"};function v(){const{siteConfig:e}=(0,s.A)();return(0,i.jsx)("header",{className:(0,l.A)("hero hero--primary",m.heroBanner),children:(0,i.jsxs)("div",{className:"container",children:[(0,i.jsxs)("h1",{className:"hero__title",children:["Rancher Government \xa0",(0,i.jsxs)("span",{className:"nasa",children:["C",(0,i.jsx)("span",{class:"nasa-red",children:"A"}),"RBIDE"]})]}),(0,i.jsx)("p",{className:"hero__subtitle",children:e.tagline}),(0,i.jsx)("div",{className:m.buttons,children:(0,i.jsx)(c.A,{className:"button button--secondary button--lg",to:"/docs/intro",children:"\ud83d\udcda View the Docs \ud83d\udcda"})})]})})}function u(){const{siteConfig:e}=(0,s.A)();return(0,i.jsxs)(n.A,{title:`${e.title}`,description:"Description will go into a meta tag in ",children:[(0,i.jsx)(v,{}),(0,i.jsx)("main",{children:(0,i.jsx)(d,{})})]})}}}]); \ No newline at end of file diff --git a/assets/js/c4f5d8e4.5a307ab1.js b/assets/js/c4f5d8e4.5a307ab1.js deleted file mode 100644 index 72b0b42..0000000 --- a/assets/js/c4f5d8e4.5a307ab1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[634],{3320:(e,t,a)=>{a.d(t,{A:()=>i});var l,c,r,n=a(6540);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:a,...i}=e;return n.createElement("svg",s({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 311.42 363.91","aria-labelledby":a},i),t?n.createElement("title",{id:a},t):null,l||(l=n.createElement("defs",null,n.createElement("style",null,".cls-2{fill:#f05455}.cls-4{fill:#fff}"))),n.createElement("g",{id:"Layer_2","data-name":"Layer 2"},n.createElement("g",{id:"Layer_1-2","data-name":"Layer 1"},n.createElement("path",{d:"M149.27 355.87c-8.29-4.1-16.94-7.4-26.1-10.89C90 332.36 52.49 318.06 24.23 260.9 3.69 219.34 11 188.4 17.4 161.1c5.81-24.66 10.4-44.14-5.66-69.86l-6.19-9.91 53.07-51.88 8.56 3.08a99.48 99.48 0 0 0 32.76 5.86c19 0 34.08-6.31 44.73-18.76l11-12.92 11 12.92c10.65 12.45 25.7 18.76 44.73 18.76a99.48 99.48 0 0 0 32.76-5.86l8.56-3.08 53.07 51.88-6.19 9.91c-15.98 25.76-11.4 45.2-5.6 69.86 6.43 27.3 13.72 58.24-6.82 99.8-28.26 57.16-65.81 71.46-98.94 84.08-9.16 3.49-17.81 6.79-26.1 10.89l-6.44 3.18Z",style:{fill:"none",stroke:"#0375a8",strokeMiterlimit:10,strokeWidth:"8.72px"}}),c||(c=n.createElement("path",{className:"cls-2",d:"M194.45 327c11.9-4.74 23.8-10.18 35.29-18.24V140.25h-35.29ZM81.6 308.7c11.48 8.07 23.4 13.52 35.29 18.3V140.25H81.6ZM250.87 289.89c8.23-9.27 16.06-20.79 23.3-35.43 23.95-48.45 5.33-80.39.85-114.21h-24.15ZM60.46 140.25H36.4c-4.48 33.82-23.1 65.76.85 114.21 7.22 14.59 15 26.08 23.21 35.33ZM173.31 335.18V140.25H138v194.89c6 2.36 11.9 4.84 17.69 7.7 5.79-2.84 11.67-5.32 17.62-7.66Z"})),n.createElement("path",{d:"M36.4 140.25H275c-2.32-17.54-.85-35.58 12.34-56.7L249.15 46.2c-25.5 9.18-67.37 13.36-93.44-17.14-26.07 30.5-67.94 26.32-93.45 17.14l-38.2 37.35c13.19 21.12 14.66 39.16 12.34 56.7Z",style:{fill:"#0375a8"}}),r||(r=n.createElement("path",{className:"cls-4",d:"M229.79 76.59 228.18 67c-.51-3.1-1.72-5.64-2.68-5.64s-1.74 2.57-1.74 5.71v2.53a5.73 5.73 0 0 1-5.71 5.71H215v6.94h10a4.69 4.69 0 0 0 4.77-5.64M207 68.43h-31.54a4.9 4.9 0 0 0-.54 0V67c0-3.14-.78-5.7-1.74-5.7S171 63.85 170.5 67l-1.61 9.64a4.69 4.69 0 0 0 4.77 5.64h9.49a8.9 8.9 0 0 0 2.71-.42 3.49 3.49 0 0 1-3.43 2.84h-13.31a3.49 3.49 0 0 1-3.44-4.06l1.32-8.13a3.48 3.48 0 0 0-3.44-4.06H97.35a3.49 3.49 0 0 0-3.18 2l-12.47 19a.86.86 0 0 0 .06 1l2.42 2.86a.86.86 0 0 0 1.2.12l8.48-6.69v40.61a3.48 3.48 0 0 0 3.49 3.48h18.8a3.48 3.48 0 0 0 3.49-3.48v-14.07a3.48 3.48 0 0 1 3.48-3.48h46.95a3.48 3.48 0 0 1 3.49 3.48v14.13a3.48 3.48 0 0 0 3.49 3.48h18.8a3.48 3.48 0 0 0 3.49-3.48v-15.2h-10a5.73 5.73 0 0 1-5.71-5.71v-9.77a5.72 5.72 0 0 1 2.29-4.56v11.66a5.73 5.73 0 0 0 5.71 5.71H207a5.72 5.72 0 0 0 5.7-5.71V74.14a5.72 5.72 0 0 0-5.7-5.71"})))))}},4706:(e,t,a)=>{a.d(t,{A:()=>s});var l,c,r=a(6540);function n(){return n=Object.assign?Object.assign.bind():function(e){for(var t=1;t {let{title:t,titleId:a,...s}=e;return r.createElement("svg",n({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 255.12 185.73",style:{enableBackground:"new 0 0 255.12 185.73"},xmlSpace:"preserve","aria-labelledby":a},s),t?r.createElement("title",{id:a},t):null,l||(l=r.createElement("style",null,".st2{fill:#2453ff}")),c||(c=r.createElement("g",{id:"logo"},r.createElement("path",{d:"M32.05 97.42h13.14c6.24 0 10.45 3.03 10.45 8.89 0 4.77-3.26 7.66-6.43 8.65.95.8 1.65 1.89 2.22 3.03 1.32 2.69 2.22 5.67 5.01 5.67.71 0 1.28-.24 1.28-.24l-.61 5.63s-1.7.43-3.17.43c-3.78 0-5.96-1.47-8.18-6.52-.95-2.27-2.27-6.24-4.02-6.24h-1.8v12.62h-7.89V97.42m7.9 5.72v7.85h2.84c2.27 0 4.92-.71 4.92-4.11 0-2.79-1.8-3.74-3.97-3.74h-3.79zm26.37-5.72h7.99l10.78 31.91H77.1l-1.99-6.05H64.43l-1.94 6.05h-6.9l10.73-31.91zm0 19.99h6.85L71 110.7c-.76-2.27-1.09-5.48-1.09-5.48h-.19s-.47 3.26-1.18 5.44l-2.22 6.75zm19.1 11.92h6.48v-15.32c0-1.75-.24-3.88-.38-5.67h.19c.66 1.7 1.51 3.78 2.32 5.2l8.7 15.79H111V97.42h-6.48v15.32c0 1.84.24 4.4.33 6.19h-.19c-.76-1.89-1.7-4.3-2.41-5.67l-8.37-15.84h-8.46v31.91zm27.27-16.17c0 11.63 5.58 16.73 14.23 16.73 8.51 0 13.19-4.78 12.67-11.25l-6.9-.71c.57 4.16-2.08 6.19-5.34 6.19-3.45 0-6.48-2.22-6.48-10.92 0-8.23 2.79-10.78 6.24-10.78 3.59 0 5.58 2.03 4.77 7.09l7.38-.66c1.04-6.9-2.7-12.01-12.01-12.01-8.84.01-14.56 4.78-14.56 16.32m28.5 16.17h7.9v-13.52h9.69v13.52h7.9V97.42h-7.9v12.06h-9.69V97.42h-7.9v31.91zm28.64 0h21.6v-5.86h-13.71V116h11.11v-5.86h-11.11v-6.85h13.24v-5.86h-21.13v31.9zm23.12-31.91h13.14c6.24 0 10.45 3.03 10.45 8.89 0 4.77-3.26 7.66-6.43 8.65.95.8 1.65 1.89 2.22 3.03 1.32 2.69 2.22 5.67 5.01 5.67.71 0 1.28-.24 1.28-.24l-.61 5.63s-1.7.43-3.17.43c-3.78 0-5.96-1.47-8.18-6.52-.95-2.27-2.27-6.24-4.02-6.24h-1.8v12.62h-7.89V97.42zm7.89 5.72v7.85h2.84c2.27 0 4.92-.71 4.92-4.11 0-2.79-1.8-3.74-3.97-3.74h-3.79z"}),r.createElement("path",{className:"st2",d:"m182.55 44.09-1.24-7.45c-.4-2.39-1.33-4.35-2.07-4.35-.74 0-1.35 1.98-1.35 4.41v1.95c0 2.43-1.98 4.41-4.41 4.41h-1.95c-.14 0-.28.01-.42.01v5.36c.14.01.28.01.42.01h7.33c2.43 0 4.09-1.96 3.69-4.35M164.98 37.78h-11.89c-.1 0-.2.01-.29.01h-12.2c-.14 0-.28.01-.42.04V36.7c0-2.43-.61-4.41-1.35-4.41-.74 0-1.67 1.96-2.07 4.35l-1.24 7.45c-.4 2.39 1.26 4.35 3.68 4.35h7.33c.75 0 1.47-.12 2.09-.32a2.693 2.693 0 0 1-2.64 2.2H135.7c-1.66 0-2.93-1.49-2.66-3.13l1.04-6.25a2.69 2.69 0 0 0-2.66-3.13H80.26c-1.09 0-2.03.65-2.45 1.58l-9.64 14.66c-.16.25-.14.57.05.8l1.87 2.21c.23.28.64.32.93.09l6.55-5.17v31.36a2.69 2.69 0 0 0 2.69 2.69h14.53a2.69 2.69 0 0 0 2.69-2.69V72.43a2.69 2.69 0 0 1 2.69-2.69h36.26a2.69 2.69 0 0 1 2.69 2.69v10.91a2.69 2.69 0 0 0 2.69 2.69h14.53a2.69 2.69 0 0 0 2.69-2.69V71.6h-7.72c-2.43 0-4.41-1.98-4.41-4.41v-7.55c0-1.44.7-2.71 1.77-3.52v9.01c0 2.43 1.98 4.41 4.41 4.41h11.89c2.43 0 4.41-1.98 4.41-4.41V42.19c.01-2.42-1.98-4.41-4.4-4.41"}),r.createElement("path",{d:"M218.77 99.01c0-1.5 1.12-2.16 2.15-2.16 1.03 0 2.15.65 2.15 2.16 0 1.48-1.12 2.12-2.15 2.12-1.04 0-2.15-.65-2.15-2.12m3.78-.01c0-1.18-.77-1.7-1.63-1.7-.86 0-1.65.52-1.65 1.7 0 1.17.79 1.68 1.65 1.68.86 0 1.63-.51 1.63-1.68zm-2.34-1.07h.76c.39 0 .77.11.77.66 0 .32-.21.51-.51.56l.51.87h-.46l-.47-.84h-.18v.84h-.42v-2.09zm.79.95c.18 0 .33-.11.33-.3 0-.22-.18-.28-.33-.28h-.38v.58h.38zM145.69 153.44h-4.5v-12.06h4.33c2.54 0 3.82 1.38 3.82 3.06 0 1.52-.95 2.4-2.11 2.79 1.31.23 2.39 1.49 2.39 2.98 0 1.81-1.44 3.23-3.93 3.23zm-.31-10.77h-2.61v3.91h2.65c1.47 0 2.32-.73 2.32-1.96-.01-1.18-.82-1.95-2.36-1.95zm.12 5.21h-2.73v4.26h2.79c1.56 0 2.49-.78 2.49-2.09-.01-1.34-1.01-2.17-2.55-2.17zM151.66 141.38h1.75l2.98 6.11 2.98-6.11h1.75l-3.93 7.51v4.55h-1.57v-4.55l-3.96-7.51z"}),r.createElement("path",{d:"M212.62 153.28c-1.31 0-2.37-1.06-2.37-2.37v-7.02c0-1.31 1.06-2.37 2.37-2.37H218c.42 0 .77.34.77.76s-.34.76-.77.76h-5.39c-.46 0-.84.38-.84.84v2.76h5.28a.726.726 0 0 1 0 1.45h-5.28v2.81c0 .46.38.84.84.84H218c.42 0 .77.34.77.77 0 .42-.34.76-.77.76h-5.38zm-24.15.16c-1.55 0-2.75-.39-3.56-1.17-.81-.78-1.21-1.94-1.21-3.47v-6.53c0-.49.4-.89.89-.89s.89.4.89.89v6.29c0 1.14.25 2 .73 2.55.49.55 1.25.83 2.27.83 1.01 0 1.78-.28 2.27-.83.49-.55.73-1.4.73-2.55v-6.29c0-.49.4-.89.89-.89s.89.4.89.89v6.53c0 1.53-.41 2.7-1.22 3.47-.82.77-2.02 1.17-3.57 1.17m13.32 0c-2 0-3.52-.57-4.53-1.69-.29-.32-.27-.82.04-1.14a.83.83 0 0 1 .6-.24c.24 0 .46.1.62.28.28.32.6.59.95.78.61.34 1.39.51 2.3.51.86 0 1.55-.15 2.05-.45.51-.31.77-.75.77-1.32 0-.46-.23-.84-.7-1.11-.45-.27-1.21-.5-2.32-.71-1.08-.2-1.95-.45-2.59-.75-.63-.29-1.09-.66-1.38-1.09-.28-.43-.43-.95-.43-1.57 0-.65.18-1.25.54-1.79.36-.54.89-.97 1.57-1.28.69-.32 1.5-.48 2.42-.48 1.07 0 2 .2 2.76.58.51.26.97.62 1.37 1.06.31.34.28.87-.06 1.18-.15.14-.35.21-.56.21-.26 0-.5-.12-.66-.33-.23-.3-.48-.54-.76-.72-.51-.33-1.21-.5-2.06-.5-.84 0-1.5.17-1.97.51-.48.34-.72.79-.72 1.34 0 .51.24.92.7 1.21.45.29 1.24.53 2.4.74 1.06.19 1.9.43 2.52.72.61.28 1.06.64 1.34 1.07.28.42.42.95.42 1.58 0 .67-.19 1.27-.58 1.78-.39.51-.93.91-1.63 1.19-.68.29-1.5.43-2.42.43m-26.56 0c-2 0-3.52-.57-4.53-1.69-.29-.32-.27-.82.04-1.14a.84.84 0 0 1 .6-.25c.24 0 .46.1.62.28.28.32.6.59.95.78.62.34 1.39.51 2.3.51.86 0 1.55-.15 2.05-.45.51-.31.77-.75.77-1.32 0-.46-.23-.84-.7-1.11-.45-.27-1.21-.5-2.32-.71-1.08-.2-1.95-.45-2.59-.75-.63-.29-1.09-.66-1.38-1.09-.28-.43-.43-.96-.43-1.57 0-.65.18-1.25.54-1.79.36-.54.89-.97 1.57-1.28.69-.32 1.5-.48 2.42-.48 1.07 0 2 .2 2.76.58.51.26.97.62 1.37 1.06.31.34.28.87-.06 1.18-.15.14-.35.21-.56.21-.26 0-.5-.12-.66-.33-.23-.3-.48-.54-.76-.72-.52-.33-1.21-.5-2.06-.5-.84 0-1.5.17-1.97.51-.48.35-.72.8-.72 1.34 0 .51.24.92.7 1.21.45.29 1.24.53 2.4.74 1.05.19 1.9.43 2.52.72.61.29 1.06.65 1.34 1.07.28.42.42.95.42 1.58 0 .67-.19 1.27-.58 1.78-.39.51-.93.91-1.63 1.19-.67.3-1.5.44-2.42.44",id:"Layer_1_00000018198142132233427420000003751010304965106607_"}))))}},4733:(e,t,a)=>{a.d(t,{A:()=>r});var l=a(6540);function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t {let{title:t,titleId:a,...r}=e;return l.createElement("svg",c({width:563.807,height:67.104,viewBox:"0 0 149.174 17.755",xmlns:"http://www.w3.org/2000/svg","aria-labelledby":a},r),t?l.createElement("title",{id:a},t):null,l.createElement("text",{xmlSpace:"preserve",style:{fontSize:"25.4px",fontFamily:"Nasalization",InkscapeFontSpecification:"Nasalization",fill:"#666",strokeWidth:.264583},x:5.819,y:23.741,transform:"translate(-7.114 -6.292)"},l.createElement("tspan",{style:{strokeWidth:.264583},x:5.819,y:23.741},l.createElement("tspan",{style:{fill:"#000"}},"STIG"),l.createElement("tspan",{style:{fill:"red"}},"A"),l.createElement("tspan",{style:{fill:"#000"}},"TRON"))))}},6467:(e,t,a)=>{a.r(t),a.d(t,{default:()=>p});a(6540);var l=a(4164),c=a(8774),r=a(4586),n=a(7907);const s={features:"features_t9lD",featureSvg:"featureSvg_GfXr"};var i=a(4848);const h=[{title:"Carbide Secured Registry (CSR)",Svg:a(3320).A,description:(0,i.jsx)(i.Fragment,{children:"Centralized Secure SLSA 3 Compliant Container Registry, with SBOMs, CVEs, Image Attestations, and verifiable digital signatures."})},{title:"STIGATRON",Svg:a(4733).A,description:(0,i.jsxs)(i.Fragment,{children:["Compliance and Observability tool for Day 2 Operations, tactically built to validate downstream clusters against the ",(0,i.jsx)("a",{href:"https://public.cyber.mil/stigs/downloads",children:"published DISA STIGs"}),"."]})},{title:"World Class Support",Svg:a(4706).A,description:(0,i.jsxs)(i.Fragment,{children:["Rancher Government Solutions is your trusted provider of Rancher, Kubernetes, and Cloud Native support. Learn more on our ",(0,i.jsx)("a",{href:"https://ranchergovernment.com",children:"website"}),"."]})}];function o(e){let{Svg:t,title:a,description:c}=e;return(0,i.jsxs)("div",{className:(0,l.A)("col col--4"),children:[(0,i.jsx)("div",{className:"text--center",children:(0,i.jsx)(t,{className:s.featureSvg,role:"img"})}),(0,i.jsxs)("div",{className:"text--center padding-horiz--md",children:[(0,i.jsx)("h3",{children:a}),(0,i.jsx)("p",{children:c})]})]})}function d(){return(0,i.jsx)("section",{className:s.features,children:(0,i.jsx)("div",{className:"container",children:(0,i.jsx)("div",{className:"row",children:h.map(((e,t)=>(0,i.jsx)(o,{...e},t)))})})})}const v={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"};function m(){const{siteConfig:e}=(0,r.A)();return(0,i.jsx)("header",{className:(0,l.A)("hero hero--primary",v.heroBanner),children:(0,i.jsxs)("div",{className:"container",children:[(0,i.jsxs)("h1",{className:"hero__title",children:["Rancher Government \xa0",(0,i.jsxs)("span",{className:"nasa",children:["C",(0,i.jsx)("span",{class:"nasa-red",children:"A"}),"RBIDE"]})]}),(0,i.jsx)("p",{className:"hero__subtitle",children:e.tagline}),(0,i.jsx)("div",{className:v.buttons,children:(0,i.jsx)(c.A,{className:"button button--secondary button--lg",to:"/docs/intro",children:"\ud83d\udcda View the Docs \ud83d\udcda"})})]})})}function p(){const{siteConfig:e}=(0,r.A)();return(0,i.jsxs)(n.A,{title:`${e.title}`,description:"Description will go into a meta tag in ",children:[(0,i.jsx)(m,{}),(0,i.jsx)("main",{children:(0,i.jsx)(d,{})})]})}}}]); \ No newline at end of file diff --git a/assets/js/ce719f21.66b40e44.js b/assets/js/ce719f21.66b40e44.js deleted file mode 100644 index c679f1d..0000000 --- a/assets/js/ce719f21.66b40e44.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[389],{8378:a=>{a.exports=JSON.parse('{"title":"Airgapped Docs","description":"Airgapped-Capable Docs for the Entire Rancher Product Portfolio","slug":"/category/airgapped-docs","permalink":"/carbide-docs/docs/category/airgapped-docs","navigation":{"previous":{"title":"Validating Images","permalink":"/carbide-docs/docs/registry-docs/validating-images"},"next":{"title":"Installation","permalink":"/carbide-docs/docs/airgapped-docs/installation"}}}')}}]); \ No newline at end of file diff --git a/assets/js/de29c8b2.1e33bb56.js b/assets/js/de29c8b2.1e33bb56.js new file mode 100644 index 0000000..f2b3886 --- /dev/null +++ b/assets/js/de29c8b2.1e33bb56.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[356],{9887:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>r,metadata:()=>o,toc:()=>l});var s=n(4848),i=n(8453);const r={},a="Creating STIGATRON Scans",o={id:"stigatron-docs/create-scan",title:"Creating STIGATRON Scans",description:"1. After installing STIGATRON on your downstream cluster, when you navigate to that downstream cluster, you should see STIGATRON on the left navigation menu. Click there.",source:"@site/docs/stigatron-docs/create-scan.md",sourceDirName:"stigatron-docs",slug:"/stigatron-docs/create-scan",permalink:"/carbide-docs/docs/stigatron-docs/create-scan",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/stigatron-docs/create-scan.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Installation",permalink:"/carbide-docs/docs/stigatron-docs/installation"},next:{title:"Using MITRE Heimdall",permalink:"/carbide-docs/docs/stigatron-docs/using-heimdall"}},c={},l=[{value:"Profile Selection",id:"profile-selection",level:2}];function d(e){const t={h1:"h1",h2:"h2",header:"header",img:"img",li:"li",ol:"ol",p:"p",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"creating-stigatron-scans",children:"Creating STIGATRON Scans"})}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"After installing STIGATRON on your downstream cluster, when you navigate to that downstream cluster, you should see STIGATRON on the left navigation menu. Click there."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"STIGATRON Menu Selection",src:n(6100).A+"",width:"458",height:"902"})}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsx)(t.li,{children:"To trigger a scan, click Create in the upper left, create a name, select a profile, and click Create"}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Create A Scan",src:n(3679).A+"",width:"3114",height:"480"})}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsx)(t.li,{children:"After the scan runs (should only take a few minutes at most), click the 3-dot menu next to the scan and go to Open Visualizer. This will give you insight into the current state of your cluster in relation to the RKE2 STIG."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Open Visualizer",src:n(736).A+"",width:"3102",height:"852"})}),"\n",(0,s.jsx)(t.h2,{id:"profile-selection",children:"Profile Selection"}),"\n",(0,s.jsx)(t.p,{children:"When selecting a STIGATRON Scan Profile, there are 2 options for each support Kubernetes version:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Official: This is the officially certified version from DISA. While fully certified, it may be missing the latest security requirements currently in process for STIG reevaluations and fixes."}),"\n",(0,s.jsx)(t.li,{children:"Preview: This is the latest version currently being worked and submitted to DISA from Rancher Government. This will contain the latest STIG fixes and reevaluations, even before being fully certified."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"It is useful to leverage both versions when scanning to understand your cluster's current state against both of the current and future STIGs."})]})}function h(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},3679:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/create-scan-8080b44da62de12f965a953c6f548dbf.png"},736:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/open-visualizer-6621238f1e5c716220f4a3cd89896747.png"},6100:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/stigatron-menu-9e72b6aa0faa42095c880c7e17bdd68c.png"},8453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>o});var s=n(6540);const i={},r=s.createContext(i);function a(e){const t=s.useContext(r);return s.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:a(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/de29c8b2.a82d9436.js b/assets/js/de29c8b2.a82d9436.js deleted file mode 100644 index abc0e5d..0000000 --- a/assets/js/de29c8b2.a82d9436.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[356],{4654:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>o,toc:()=>l});var s=n(4848),i=n(8453);const r={},a="Creating STIGATRON Scans",o={id:"stigatron-docs/create-scan",title:"Creating STIGATRON Scans",description:"1. After installing STIGATRON on your downstream cluster, when you navigate to that downstream cluster, you should see STIGATRON on the left navigation menu. Click there.",source:"@site/docs/stigatron-docs/create-scan.md",sourceDirName:"stigatron-docs",slug:"/stigatron-docs/create-scan",permalink:"/carbide-docs/docs/stigatron-docs/create-scan",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/stigatron-docs/create-scan.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Installation",permalink:"/carbide-docs/docs/stigatron-docs/installation"},next:{title:"Using MITRE Heimdall",permalink:"/carbide-docs/docs/stigatron-docs/using-heimdall"}},c={},l=[{value:"Profile Selection",id:"profile-selection",level:2}];function d(e){const t={h1:"h1",h2:"h2",img:"img",li:"li",ol:"ol",p:"p",ul:"ul",...(0,i.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"creating-stigatron-scans",children:"Creating STIGATRON Scans"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"After installing STIGATRON on your downstream cluster, when you navigate to that downstream cluster, you should see STIGATRON on the left navigation menu. Click there."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"STIGATRON Menu Selection",src:n(6100).A+"",width:"458",height:"902"})}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsx)(t.li,{children:"To trigger a scan, click Create in the upper left, create a name, select a profile, and click Create"}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Create A Scan",src:n(3679).A+"",width:"3114",height:"480"})}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsx)(t.li,{children:"After the scan runs (should only take a few minutes at most), click the 3-dot menu next to the scan and go to Open Visualizer. This will give you insight into the current state of your cluster in relation to the RKE2 STIG."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"Open Visualizer",src:n(736).A+"",width:"3102",height:"852"})}),"\n",(0,s.jsx)(t.h2,{id:"profile-selection",children:"Profile Selection"}),"\n",(0,s.jsx)(t.p,{children:"When selecting a STIGATRON Scan Profile, there are 2 options for each support Kubernetes version:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Official: This is the officially certified version from DISA. While fully certified, it may be missing the latest security requirements currently in process for STIG reevaluations and fixes."}),"\n",(0,s.jsx)(t.li,{children:"Preview: This is the latest version currently being worked and submitted to DISA from Rancher Government. This will contain the latest STIG fixes and reevaluations, even before being fully certified."}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"It is useful to leverage both versions when scanning to understand your cluster's current state against both of the current and future STIGs."})]})}function u(e={}){const{wrapper:t}={...(0,i.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},3679:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/create-scan-8080b44da62de12f965a953c6f548dbf.png"},736:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/open-visualizer-6621238f1e5c716220f4a3cd89896747.png"},6100:(e,t,n)=>{n.d(t,{A:()=>s});const s=n.p+"assets/images/stigatron-menu-9e72b6aa0faa42095c880c7e17bdd68c.png"},8453:(e,t,n)=>{n.d(t,{R:()=>a,x:()=>o});var s=n(6540);const i={},r=s.createContext(i);function a(e){const t=s.useContext(r);return s.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:a(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e0eaaed1.3d00f2be.js b/assets/js/e0eaaed1.3d00f2be.js new file mode 100644 index 0000000..815ff17 --- /dev/null +++ b/assets/js/e0eaaed1.3d00f2be.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[353],{8503:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var s=t(4848),l=t(8453);const i={},r="Uninstall",o={id:"stigatron-docs/uninstall",title:"Uninstall",description:"Local Cluster",source:"@site/docs/stigatron-docs/uninstall.md",sourceDirName:"stigatron-docs",slug:"/stigatron-docs/uninstall",permalink:"/carbide-docs/docs/stigatron-docs/uninstall",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/stigatron-docs/uninstall.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Using MITRE Heimdall",permalink:"/carbide-docs/docs/stigatron-docs/using-heimdall"},next:{title:"Introduction",permalink:"/carbide-docs/docs/airgapped-docs/introduction"}},a={},c=[{value:"Local Cluster",id:"local-cluster",level:2},{value:"Downstream Clusters",id:"downstream-clusters",level:2},{value:"Uninstalling CIS Benchmark (Optional)",id:"uninstalling-cis-benchmark-optional",level:2},{value:"Disable UI Extensions (Optional)",id:"disable-ui-extensions-optional",level:2},{value:"TODO: List",id:"todo-list",level:3}];function d(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsx)(n.h1,{id:"uninstall",children:"Uninstall"})}),"\n",(0,s.jsx)(n.h2,{id:"local-cluster",children:"Local Cluster"}),"\n",(0,s.jsxs)(n.p,{children:["On the ",(0,s.jsx)(n.code,{children:"local"})," cluster running Rancher MCM, run the following Helm command to remove the UI Extension."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"helm uninstall -n carbide-stigatron-system stigatron-ui\n"})}),"\n",(0,s.jsx)(n.h2,{id:"downstream-clusters",children:"Downstream Clusters"}),"\n",(0,s.jsx)(n.p,{children:"On each downstream cluster, run the following command to uninstall STIGATRON:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"helm uninstall -n carbide-stigatron-system stigatron\n"})}),"\n",(0,s.jsx)(n.h2,{id:"uninstalling-cis-benchmark-optional",children:"Uninstalling CIS Benchmark (Optional)"}),"\n",(0,s.jsx)(n.p,{children:"If you want to uninstall CIS Benchmark, after uninstall STIGATRON, perform the following:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Log into the Rancher MCM."}),"\n",(0,s.jsx)(n.li,{children:"In the UI, navigate to each downstream cluster in the Cluster Explorer."}),"\n",(0,s.jsxs)(n.li,{children:["On the left menu, select ",(0,s.jsx)(n.code,{children:"Apps"}),", then select ",(0,s.jsx)(n.code,{children:"Installed Apps"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Find the app named ",(0,s.jsx)(n.code,{children:"rancher-cis-benchmark"}),", select the 3-dot menu on the right, and select ",(0,s.jsx)(n.code,{children:"Delete"}),". (IMPORTANT: Delete this before the CRD application)"]}),"\n",(0,s.jsxs)(n.li,{children:["Find the app named ",(0,s.jsx)(n.code,{children:"rancher-cis-benchmark-crd"}),", select the 3-dot menu on the right, and select ",(0,s.jsx)(n.code,{children:"Delete"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"disable-ui-extensions-optional",children:"Disable UI Extensions (Optional)"}),"\n",(0,s.jsx)(n.p,{children:"If you want to disable UI Extensions, after uninstall STIGATRON UI, perform the following:"}),"\n",(0,s.jsx)(n.h3,{id:"todo-list",children:"TODO: List"})]})}function h(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>r,x:()=>o});var s=t(6540);const l={},i=s.createContext(l);function r(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:r(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e0eaaed1.6664c342.js b/assets/js/e0eaaed1.6664c342.js deleted file mode 100644 index cc84e30..0000000 --- a/assets/js/e0eaaed1.6664c342.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[353],{814:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>a});var s=t(4848),l=t(8453);const i={},o="Uninstall",r={id:"stigatron-docs/uninstall",title:"Uninstall",description:"Local Cluster",source:"@site/docs/stigatron-docs/uninstall.md",sourceDirName:"stigatron-docs",slug:"/stigatron-docs/uninstall",permalink:"/carbide-docs/docs/stigatron-docs/uninstall",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/stigatron-docs/uninstall.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Using MITRE Heimdall",permalink:"/carbide-docs/docs/stigatron-docs/using-heimdall"},next:{title:"Introduction",permalink:"/carbide-docs/docs/airgapped-docs/introduction"}},c={},a=[{value:"Local Cluster",id:"local-cluster",level:2},{value:"Downstream Clusters",id:"downstream-clusters",level:2},{value:"Uninstalling CIS Benchmark (Optional)",id:"uninstalling-cis-benchmark-optional",level:2},{value:"Disable UI Extensions (Optional)",id:"disable-ui-extensions-optional",level:2},{value:"TODO: List",id:"todo-list",level:3}];function d(e){const n={code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",...(0,l.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h1,{id:"uninstall",children:"Uninstall"}),"\n",(0,s.jsx)(n.h2,{id:"local-cluster",children:"Local Cluster"}),"\n",(0,s.jsxs)(n.p,{children:["On the ",(0,s.jsx)(n.code,{children:"local"})," cluster running Rancher MCM, run the following Helm command to remove the UI Extension."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"helm uninstall -n carbide-stigatron-system stigatron-ui\n"})}),"\n",(0,s.jsx)(n.h2,{id:"downstream-clusters",children:"Downstream Clusters"}),"\n",(0,s.jsx)(n.p,{children:"On each downstream cluster, run the following command to uninstall STIGATRON:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-bash",children:"helm uninstall -n carbide-stigatron-system stigatron\n"})}),"\n",(0,s.jsx)(n.h2,{id:"uninstalling-cis-benchmark-optional",children:"Uninstalling CIS Benchmark (Optional)"}),"\n",(0,s.jsx)(n.p,{children:"If you want to uninstall CIS Benchmark, after uninstall STIGATRON, perform the following:"}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:"Log into the Rancher MCM."}),"\n",(0,s.jsx)(n.li,{children:"In the UI, navigate to each downstream cluster in the Cluster Explorer."}),"\n",(0,s.jsxs)(n.li,{children:["On the left menu, select ",(0,s.jsx)(n.code,{children:"Apps"}),", then select ",(0,s.jsx)(n.code,{children:"Installed Apps"}),"."]}),"\n",(0,s.jsxs)(n.li,{children:["Find the app named ",(0,s.jsx)(n.code,{children:"rancher-cis-benchmark"}),", select the 3-dot menu on the right, and select ",(0,s.jsx)(n.code,{children:"Delete"}),". (IMPORTANT: Delete this before the CRD application)"]}),"\n",(0,s.jsxs)(n.li,{children:["Find the app named ",(0,s.jsx)(n.code,{children:"rancher-cis-benchmark-crd"}),", select the 3-dot menu on the right, and select ",(0,s.jsx)(n.code,{children:"Delete"}),"."]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"disable-ui-extensions-optional",children:"Disable UI Extensions (Optional)"}),"\n",(0,s.jsx)(n.p,{children:"If you want to disable UI Extensions, after uninstall STIGATRON UI, perform the following:"}),"\n",(0,s.jsx)(n.h3,{id:"todo-list",children:"TODO: List"})]})}function h(e={}){const{wrapper:n}={...(0,l.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},8453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>r});var s=t(6540);const l={},i=s.createContext(l);function o(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:o(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e26d4f29.8b85d376.js b/assets/js/e26d4f29.8b85d376.js new file mode 100644 index 0000000..a671460 --- /dev/null +++ b/assets/js/e26d4f29.8b85d376.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[825],{5421:e=>{e.exports=JSON.parse('{"categoryGeneratedIndex":{"title":"Airgapped Docs","description":"Airgapped-Capable Docs for the Entire Rancher Product Portfolio","slug":"/category/airgapped-docs","permalink":"/carbide-docs/docs/category/airgapped-docs","sidebar":"tutorialSidebar","navigation":{"previous":{"title":"Validating Images","permalink":"/carbide-docs/docs/registry-docs/validating-images"},"next":{"title":"Installation","permalink":"/carbide-docs/docs/airgapped-docs/installation"}}}}')}}]); \ No newline at end of file diff --git a/assets/js/e4cbdf04.86baa692.js b/assets/js/e4cbdf04.86baa692.js deleted file mode 100644 index 8378e28..0000000 --- a/assets/js/e4cbdf04.86baa692.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[505],{9294:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var n=i(4848),s=i(8453);const o={},r="Introduction",a={id:"airgapped-docs/introduction",title:"Introduction",description:"This page will walk through installation and usage of the Airgapped Docs component of Rancher Government Carbide.",source:"@site/docs/airgapped-docs/introduction.md",sourceDirName:"airgapped-docs",slug:"/airgapped-docs/introduction",permalink:"/carbide-docs/docs/airgapped-docs/introduction",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/airgapped-docs/introduction.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Uninstall",permalink:"/carbide-docs/docs/stigatron-docs/uninstall"},next:{title:"Prerequisites",permalink:"/carbide-docs/docs/airgapped-docs/prereqs"}},c={},d=[{value:"IOC Expectations",id:"ioc-expectations",level:2},{value:"What is this?",id:"what-is-this",level:2}];function l(e){const t={a:"a",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h1,{id:"introduction",children:"Introduction"}),"\n",(0,n.jsx)(t.p,{children:"This page will walk through installation and usage of the Airgapped Docs component of Rancher Government Carbide."}),"\n",(0,n.jsx)(t.h2,{id:"ioc-expectations",children:"IOC Expectations"}),"\n",(0,n.jsx)(t.p,{children:"As our product is still at Initial Operation Capability (IOC), there are some expectations to level-set:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Installation and packaging is still in progress and improving."}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["If you see issues and areas for improvement, please submit Github issues ",(0,n.jsx)(t.a,{href:"https://github.com/rancherfederal/carbide-charts/issues",children:"here"}),"."]}),"\n",(0,n.jsx)(t.h2,{id:"what-is-this",children:"What is this?"}),"\n",(0,n.jsx)(t.p,{children:"When in an airgap, having accessibility to documentation can be critical to mission success, especially while troubleshooting problems."}),"\n",(0,n.jsx)(t.p,{children:"Carbide Airgapped Docs will give Rancher supported users access to documentation for not only Carbide itself, but the entire supported Rancher product porfolio. This includes capabililites like query and copy/paste shortcuts."})]})}function p(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},8453:(e,t,i)=>{i.d(t,{R:()=>r,x:()=>a});var n=i(6540);const s={},o=n.createContext(s);function r(e){const t=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e4cbdf04.a54478f9.js b/assets/js/e4cbdf04.a54478f9.js new file mode 100644 index 0000000..217d8ef --- /dev/null +++ b/assets/js/e4cbdf04.a54478f9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[505],{749:(e,i,t)=>{t.r(i),t.d(i,{assets:()=>c,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var n=t(4848),s=t(8453);const o={},r="Introduction",a={id:"airgapped-docs/introduction",title:"Introduction",description:"This page will walk through installation and usage of the Airgapped Docs component of Rancher Government Carbide.",source:"@site/docs/airgapped-docs/introduction.md",sourceDirName:"airgapped-docs",slug:"/airgapped-docs/introduction",permalink:"/carbide-docs/docs/airgapped-docs/introduction",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/airgapped-docs/introduction.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Uninstall",permalink:"/carbide-docs/docs/stigatron-docs/uninstall"},next:{title:"Prerequisites",permalink:"/carbide-docs/docs/airgapped-docs/prereqs"}},c={},d=[{value:"IOC Expectations",id:"ioc-expectations",level:2},{value:"What is this?",id:"what-is-this",level:2}];function l(e){const i={a:"a",h1:"h1",h2:"h2",header:"header",li:"li",p:"p",ul:"ul",...(0,s.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.header,{children:(0,n.jsx)(i.h1,{id:"introduction",children:"Introduction"})}),"\n",(0,n.jsx)(i.p,{children:"This page will walk through installation and usage of the Airgapped Docs component of Rancher Government Carbide."}),"\n",(0,n.jsx)(i.h2,{id:"ioc-expectations",children:"IOC Expectations"}),"\n",(0,n.jsx)(i.p,{children:"As our product is still at Initial Operation Capability (IOC), there are some expectations to level-set:"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsx)(i.li,{children:"Installation and packaging is still in progress and improving."}),"\n"]}),"\n",(0,n.jsxs)(i.p,{children:["If you see issues and areas for improvement, please submit Github issues ",(0,n.jsx)(i.a,{href:"https://github.com/rancherfederal/carbide-charts/issues",children:"here"}),"."]}),"\n",(0,n.jsx)(i.h2,{id:"what-is-this",children:"What is this?"}),"\n",(0,n.jsx)(i.p,{children:"When in an airgap, having accessibility to documentation can be critical to mission success, especially while troubleshooting problems."}),"\n",(0,n.jsx)(i.p,{children:"Carbide Airgapped Docs will give Rancher supported users access to documentation for not only Carbide itself, but the entire supported Rancher product porfolio. This includes capabililites like query and copy/paste shortcuts."})]})}function p(e={}){const{wrapper:i}={...(0,s.R)(),...e.components};return i?(0,n.jsx)(i,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},8453:(e,i,t)=>{t.d(i,{R:()=>r,x:()=>a});var n=t(6540);const s={},o=n.createContext(s);function r(e){const i=n.useContext(o);return n.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function a(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),n.createElement(o.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e675c224.9efd144f.js b/assets/js/e675c224.9efd144f.js new file mode 100644 index 0000000..031144c --- /dev/null +++ b/assets/js/e675c224.9efd144f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[875],{4167:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>o,contentTitle:()=>a,default:()=>d,frontMatter:()=>s,metadata:()=>l,toc:()=>c});var n=t(4848),i=t(8453);const s={},a="Rancher Manager Configuration",l={id:"registry-docs/configuration/rancher",title:"Rancher Manager Configuration",description:"This page will walk you through how to configure Rancher Manager to use images from the CSR instead of the upstream Docker Hub images. This will apply to both its own components and downstream Rancher Kubernetes clusters (RKE2/K3s).",source:"@site/docs/registry-docs/configuration/rancher.md",sourceDirName:"registry-docs/configuration",slug:"/registry-docs/configuration/rancher",permalink:"/carbide-docs/docs/registry-docs/configuration/rancher",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/configuration/rancher.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"RKE2/K3s Configuration",permalink:"/carbide-docs/docs/registry-docs/configuration/kubernetes"},next:{title:"Enforcement",permalink:"/carbide-docs/docs/registry-docs/enforcement"}},o={},c=[{value:"Compatibility Matrix",id:"compatibility-matrix",level:2},{value:"Preliminary Setup",id:"preliminary-setup",level:3},{value:"Configuring Cert Manager",id:"configuring-cert-manager",level:4},{value:"Registry Auth Strategies",id:"registry-auth-strategies",level:2},{value:"Global Registry (Rancher)",id:"global-registry-rancher",level:3},{value:"Existing Rancher Installations",id:"existing-rancher-installations",level:4},{value:"Setting a Private Registry with No Credentials as the Default Registry",id:"setting-a-private-registry-with-no-credentials-as-the-default-registry",level:5},{value:"Setting a Private Registry with Credentials when Deploying a Cluster",id:"setting-a-private-registry-with-credentials-when-deploying-a-cluster",level:5},{value:"New Rancher Installations",id:"new-rancher-installations",level:4},{value:"Authenticated Registry (Manual registries.yaml)",id:"authenticated-registry-manual-registriesyaml",level:3}];function h(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",header:"header",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"rancher-manager-configuration",children:"Rancher Manager Configuration"})}),"\n",(0,n.jsx)(r.p,{children:"This page will walk you through how to configure Rancher Manager to use images from the CSR instead of the upstream Docker Hub images. This will apply to both its own components and downstream Rancher Kubernetes clusters (RKE2/K3s)."}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"NOTE"}),": Due to current limitations of cloud providers, this project will not work for managing Cloud Provider clusters (AKS, EKS, GKE). If you're currently using Rancher to manage those workloads, do not use this project. We intend to improve this experience in the future."]}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"compatibility-matrix",children:"Compatibility Matrix"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Infra"}),(0,n.jsx)(r.th,{children:"Provisioner"}),(0,n.jsx)(r.th,{children:"Registry Auth Strategy"}),(0,n.jsx)(r.th,{children:"Test Status"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Any"}),(0,n.jsx)(r.td,{children:"Rancher (Cloud provisioner)"}),(0,n.jsx)(r.td,{children:"Global Registry (Rancher)"}),(0,n.jsx)(r.td,{children:"Validated"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Any"}),(0,n.jsx)(r.td,{children:"Rancher (Custom provisioner)"}),(0,n.jsx)(r.td,{children:"Authenticated Registry (Manual registries.yaml)"}),(0,n.jsx)(r.td,{children:"Validated"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Any"}),(0,n.jsx)(r.td,{children:"Self Installation"}),(0,n.jsx)(r.td,{children:"Global Registry (Rancher)"}),(0,n.jsx)(r.td,{children:"Validated"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Any"}),(0,n.jsx)(r.td,{children:"Imported Cluster"}),(0,n.jsx)(r.td,{children:"Unknown"}),(0,n.jsx)(r.td,{})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"AWS-EKS"}),(0,n.jsx)(r.td,{children:"Rancher"}),(0,n.jsx)(r.td,{children:"ECR (public or private)"}),(0,n.jsx)(r.td,{})]})]})]}),"\n",(0,n.jsx)(r.h3,{id:"preliminary-setup",children:"Preliminary Setup"}),"\n",(0,n.jsx)(r.p,{children:"As Rancher has a dependency on Cert Manager, you'll need to update/install Cert Manager with the images provided by the CSR."}),"\n",(0,n.jsxs)(r.p,{children:["If you're following Rancher's ",(0,n.jsx)(r.a,{href:"https://rancher.com/docs/rancher/v2.6/en/installation/install-rancher-on-k8s/#4-install-cert-manager",children:"Connected"})," installation instructions, you'll need to follow the next steps to use the Carbide Secured Registry (CSR) images for cert-manager."]}),"\n",(0,n.jsxs)(r.p,{children:["If using the ",(0,n.jsx)(r.a,{href:"https://rancher.com/docs/rancher/v2.6/en/installation/other-installation-methods/air-gap/install-rancher/#1-add-the-cert-manager-repo",children:"Airgapped"})," installation instructions, make sure you've pulled the images to your local/airgapped registry."]}),"\n",(0,n.jsx)(r.h4,{id:"configuring-cert-manager",children:"Configuring Cert Manager"}),"\n",(0,n.jsxs)(r.p,{children:["Follow Rancher's ",(0,n.jsx)(r.a,{href:"https://rancher.com/docs/rancher/v2.6/en/installation/install-rancher-on-k8s/#4-install-cert-manager",children:"Connected"})," installation instructions, but using the following steps instead of the ",(0,n.jsx)(r.code,{children:"helm install"})," command from the docs."]}),"\n",(0,n.jsxs)(r.p,{children:["After adding the Cert Manager repo and installing the CRDs, use the following to create a temporary ",(0,n.jsx)(r.code,{children:"values.yaml"})," for your chart, subsituting your registry domain:"]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:"cat </tmp/values.yaml\nimage:\n registry: \n repository: jetstack/cert-manager-controller\n\nwebhook:\n image:\n registry: \n repository: jetstack/cert-manager-webhook\n\ncainjector:\n image:\n registry: \n repository: jetstack/cert-manager-cainjector\n\nstartupapicheck:\n image:\n registry: \n repository: jetstack/cert-manager-startupapicheck\n\nacmesolver:\n image:\n registry: \n repository: jetstack/cert-manager-acmesolver\nEOT\n"})}),"\n",(0,n.jsxs)(r.p,{children:["Then use the following ",(0,n.jsx)(r.code,{children:"helm install"})," command to use the images:"]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:"helm install cert-manager jetstack/cert-manager \\\n --namespace cert-manager \\\n --create-namespace \\\n --version v1.14.4 \\\n -f /tmp/values.yaml\n"})}),"\n",(0,n.jsx)(r.h2,{id:"registry-auth-strategies",children:"Registry Auth Strategies"}),"\n",(0,n.jsx)(r.h3,{id:"global-registry-rancher",children:"Global Registry (Rancher)"}),"\n",(0,n.jsx)(r.h4,{id:"existing-rancher-installations",children:"Existing Rancher Installations"}),"\n",(0,n.jsx)(r.h5,{id:"setting-a-private-registry-with-no-credentials-as-the-default-registry",children:"Setting a Private Registry with No Credentials as the Default Registry"}),"\n",(0,n.jsxs)(r.ol,{children:["\n",(0,n.jsx)(r.li,{children:"Log into Rancher and configure the default administrator password."}),"\n",(0,n.jsxs)(r.li,{children:["Click ",(0,n.jsx)(r.strong,{children:"\u2630 > Global Settings"}),"."]}),"\n",(0,n.jsxs)(r.li,{children:["Go to the setting called ",(0,n.jsx)(r.code,{children:"system-default-registry"})," and choose ",(0,n.jsx)(r.strong,{children:"\u22ee > Edit Setting"}),"."]}),"\n",(0,n.jsxs)(r.li,{children:["Change the value to your registry (e.g. ",(0,n.jsx)(r.code,{children:"registry.yourdomain.com:port"}),"). Do not prefix the registry with ",(0,n.jsx)(r.code,{children:"http://"})," or ",(0,n.jsx)(r.code,{children:"https://"}),"."]}),"\n"]}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"Result:"})," Rancher will use your private registry to pull system images."]}),"\n",(0,n.jsx)(r.h5,{id:"setting-a-private-registry-with-credentials-when-deploying-a-cluster",children:"Setting a Private Registry with Credentials when Deploying a Cluster"}),"\n",(0,n.jsx)(r.p,{children:"You can follow these steps to configure a private registry when you create a cluster:"}),"\n",(0,n.jsxs)(r.ol,{children:["\n",(0,n.jsxs)(r.li,{children:["Click ",(0,n.jsx)(r.strong,{children:"\u2630 > Cluster Management"}),"."]}),"\n",(0,n.jsxs)(r.li,{children:["On the ",(0,n.jsx)(r.strong,{children:"Clusters"})," page, click ",(0,n.jsx)(r.strong,{children:"Create"}),"."]}),"\n",(0,n.jsx)(r.li,{children:"Choose a cluster type."}),"\n",(0,n.jsxs)(r.li,{children:["In the ",(0,n.jsx)(r.strong,{children:"Cluster Configuration"})," go to the ",(0,n.jsx)(r.strong,{children:"Registries"})," tab and click ",(0,n.jsx)(r.strong,{children:"Pull images for Rancher from a private registry"}),"."]}),"\n",(0,n.jsx)(r.li,{children:"Enter the registry hostname and credentials."}),"\n",(0,n.jsxs)(r.li,{children:["Click ",(0,n.jsx)(r.strong,{children:"Create"}),"."]}),"\n"]}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"Result:"})," The new cluster will be able to pull images from the private registry."]}),"\n",(0,n.jsx)(r.h4,{id:"new-rancher-installations",children:"New Rancher Installations"}),"\n",(0,n.jsxs)(r.p,{children:["Follow Rancher's ",(0,n.jsx)(r.a,{href:"https://rancher.com/docs/rancher/v2.5/en/installation/install-rancher-on-k8s",children:"Installation Guide"}),", making sure to use the carbide chart obtained in the previous ",(0,n.jsx)(r.a,{href:"/carbide-docs/docs/registry-docs/carbide-charts",children:"helm chart"})," section."]}),"\n",(0,n.jsx)(r.p,{children:"When installing Rancher, to utilize the private registry, you'll need to set the following values in your helm values:"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-bash",children:"helm install rancher carbide-charts/rancher \\\n --namespace cattle-system \\\n --set hostname=rancher.my.org \\\n --set replicas=3 \\\n --set rancherImage= /rancher/rancher\n --set systemDefaultRegistry= \n"})}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"NOTE:"})," This requires configuring RKE2/K3s ",(0,n.jsx)(r.code,{children:"registries.yaml"})," to work. See the ",(0,n.jsx)(r.a,{href:"/carbide-docs/docs/registry-docs/configuration/kubernetes",children:"RKE2/K3s configuration"})," section for more details."]}),"\n"]}),"\n",(0,n.jsx)(r.h3,{id:"authenticated-registry-manual-registriesyaml",children:"Authenticated Registry (Manual registries.yaml)"}),"\n",(0,n.jsxs)(r.p,{children:["See the ",(0,n.jsx)(r.a,{href:"/carbide-docs/docs/registry-docs/configuration/kubernetes",children:"RKE2/K3s configuration"})," section for more details."]})]})}function d(e={}){const{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},8453:(e,r,t)=>{t.d(r,{R:()=>a,x:()=>l});var n=t(6540);const i={},s=n.createContext(i);function a(e){const r=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),n.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e675c224.ea19ce15.js b/assets/js/e675c224.ea19ce15.js deleted file mode 100644 index 6480472..0000000 --- a/assets/js/e675c224.ea19ce15.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[875],{9688:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>o,contentTitle:()=>a,default:()=>d,frontMatter:()=>s,metadata:()=>l,toc:()=>c});var n=t(4848),i=t(8453);const s={},a="Rancher Manager Configuration",l={id:"registry-docs/configuration/rancher",title:"Rancher Manager Configuration",description:"This page will walk you through how to configure Rancher Manager to use images from the CSR instead of the upstream Docker Hub images. This will apply to both its own components and downstream Rancher Kubernetes clusters (RKE2/K3s).",source:"@site/docs/registry-docs/configuration/rancher.md",sourceDirName:"registry-docs/configuration",slug:"/registry-docs/configuration/rancher",permalink:"/carbide-docs/docs/registry-docs/configuration/rancher",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/configuration/rancher.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"RKE2/K3s Configuration",permalink:"/carbide-docs/docs/registry-docs/configuration/kubernetes"},next:{title:"Enforcement",permalink:"/carbide-docs/docs/registry-docs/enforcement"}},o={},c=[{value:"Compatibility Matrix",id:"compatibility-matrix",level:2},{value:"Preliminary Setup",id:"preliminary-setup",level:3},{value:"Configuring Cert Manager",id:"configuring-cert-manager",level:4},{value:"Registry Auth Strategies",id:"registry-auth-strategies",level:2},{value:"Global Registry (Rancher)",id:"global-registry-rancher",level:3},{value:"Existing Rancher Installations",id:"existing-rancher-installations",level:4},{value:"Setting a Private Registry with No Credentials as the Default Registry",id:"setting-a-private-registry-with-no-credentials-as-the-default-registry",level:5},{value:"Setting a Private Registry with Credentials when Deploying a Cluster",id:"setting-a-private-registry-with-credentials-when-deploying-a-cluster",level:5},{value:"New Rancher Installations",id:"new-rancher-installations",level:4},{value:"Authenticated Registry (Manual registries.yaml)",id:"authenticated-registry-manual-registriesyaml",level:3}];function h(e){const r={a:"a",blockquote:"blockquote",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.h1,{id:"rancher-manager-configuration",children:"Rancher Manager Configuration"}),"\n",(0,n.jsx)(r.p,{children:"This page will walk you through how to configure Rancher Manager to use images from the CSR instead of the upstream Docker Hub images. This will apply to both its own components and downstream Rancher Kubernetes clusters (RKE2/K3s)."}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"NOTE"}),": Due to current limitations of cloud providers, this project will not work for managing Cloud Provider clusters (AKS, EKS, GKE). If you're currently using Rancher to manage those workloads, do not use this project. We intend to improve this experience in the future."]}),"\n"]}),"\n",(0,n.jsx)(r.h2,{id:"compatibility-matrix",children:"Compatibility Matrix"}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Infra"}),(0,n.jsx)(r.th,{children:"Provisioner"}),(0,n.jsx)(r.th,{children:"Registry Auth Strategy"}),(0,n.jsx)(r.th,{children:"Test Status"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Any"}),(0,n.jsx)(r.td,{children:"Rancher (Cloud provisioner)"}),(0,n.jsx)(r.td,{children:"Global Registry (Rancher)"}),(0,n.jsx)(r.td,{children:"Validated"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Any"}),(0,n.jsx)(r.td,{children:"Rancher (Custom provisioner)"}),(0,n.jsx)(r.td,{children:"Authenticated Registry (Manual registries.yaml)"}),(0,n.jsx)(r.td,{children:"Validated"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Any"}),(0,n.jsx)(r.td,{children:"Self Installation"}),(0,n.jsx)(r.td,{children:"Global Registry (Rancher)"}),(0,n.jsx)(r.td,{children:"Validated"})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Any"}),(0,n.jsx)(r.td,{children:"Imported Cluster"}),(0,n.jsx)(r.td,{children:"Unknown"}),(0,n.jsx)(r.td,{})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"AWS-EKS"}),(0,n.jsx)(r.td,{children:"Rancher"}),(0,n.jsx)(r.td,{children:"ECR (public or private)"}),(0,n.jsx)(r.td,{})]})]})]}),"\n",(0,n.jsx)(r.h3,{id:"preliminary-setup",children:"Preliminary Setup"}),"\n",(0,n.jsx)(r.p,{children:"As Rancher has a dependency on Cert Manager, you'll need to update/install Cert Manager with the images provided by the CSR."}),"\n",(0,n.jsxs)(r.p,{children:["If you're following Rancher's ",(0,n.jsx)(r.a,{href:"https://rancher.com/docs/rancher/v2.6/en/installation/install-rancher-on-k8s/#4-install-cert-manager",children:"Connected"})," installation instructions, you'll need to follow the next steps to use the Carbide Secured Registry (CSR) images for cert-manager."]}),"\n",(0,n.jsxs)(r.p,{children:["If using the ",(0,n.jsx)(r.a,{href:"https://rancher.com/docs/rancher/v2.6/en/installation/other-installation-methods/air-gap/install-rancher/#1-add-the-cert-manager-repo",children:"Airgapped"})," installation instructions, make sure you've pulled the images to your local/airgapped registry."]}),"\n",(0,n.jsx)(r.h4,{id:"configuring-cert-manager",children:"Configuring Cert Manager"}),"\n",(0,n.jsxs)(r.p,{children:["Follow Rancher's ",(0,n.jsx)(r.a,{href:"https://rancher.com/docs/rancher/v2.6/en/installation/install-rancher-on-k8s/#4-install-cert-manager",children:"Connected"})," installation instructions, but using the following steps instead of the ",(0,n.jsx)(r.code,{children:"helm install"})," command from the docs."]}),"\n",(0,n.jsxs)(r.p,{children:["After adding the Cert Manager repo and installing the CRDs, use the following to create a temporary ",(0,n.jsx)(r.code,{children:"values.yaml"})," for your chart, subsituting your registry domain:"]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:"cat < /tmp/values.yaml\nimage:\n registry: \n repository: jetstack/cert-manager-controller\n\nwebhook:\n image:\n registry: \n repository: jetstack/cert-manager-webhook\n\ncainjector:\n image:\n registry: \n repository: jetstack/cert-manager-cainjector\n\nstartupapicheck:\n image:\n registry: \n repository: jetstack/cert-manager-startupapicheck\n\nacmesolver:\n image:\n registry: \n repository: jetstack/cert-manager-acmesolver\nEOT\n"})}),"\n",(0,n.jsxs)(r.p,{children:["Then use the following ",(0,n.jsx)(r.code,{children:"helm install"})," command to use the images:"]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{children:"helm install cert-manager jetstack/cert-manager \\\n --namespace cert-manager \\\n --create-namespace \\\n --version v1.14.4 \\\n -f /tmp/values.yaml\n"})}),"\n",(0,n.jsx)(r.h2,{id:"registry-auth-strategies",children:"Registry Auth Strategies"}),"\n",(0,n.jsx)(r.h3,{id:"global-registry-rancher",children:"Global Registry (Rancher)"}),"\n",(0,n.jsx)(r.h4,{id:"existing-rancher-installations",children:"Existing Rancher Installations"}),"\n",(0,n.jsx)(r.h5,{id:"setting-a-private-registry-with-no-credentials-as-the-default-registry",children:"Setting a Private Registry with No Credentials as the Default Registry"}),"\n",(0,n.jsxs)(r.ol,{children:["\n",(0,n.jsx)(r.li,{children:"Log into Rancher and configure the default administrator password."}),"\n",(0,n.jsxs)(r.li,{children:["Click ",(0,n.jsx)(r.strong,{children:"\u2630 > Global Settings"}),"."]}),"\n",(0,n.jsxs)(r.li,{children:["Go to the setting called ",(0,n.jsx)(r.code,{children:"system-default-registry"})," and choose ",(0,n.jsx)(r.strong,{children:"\u22ee > Edit Setting"}),"."]}),"\n",(0,n.jsxs)(r.li,{children:["Change the value to your registry (e.g. ",(0,n.jsx)(r.code,{children:"registry.yourdomain.com:port"}),"). Do not prefix the registry with ",(0,n.jsx)(r.code,{children:"http://"})," or ",(0,n.jsx)(r.code,{children:"https://"}),"."]}),"\n"]}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"Result:"})," Rancher will use your private registry to pull system images."]}),"\n",(0,n.jsx)(r.h5,{id:"setting-a-private-registry-with-credentials-when-deploying-a-cluster",children:"Setting a Private Registry with Credentials when Deploying a Cluster"}),"\n",(0,n.jsx)(r.p,{children:"You can follow these steps to configure a private registry when you create a cluster:"}),"\n",(0,n.jsxs)(r.ol,{children:["\n",(0,n.jsxs)(r.li,{children:["Click ",(0,n.jsx)(r.strong,{children:"\u2630 > Cluster Management"}),"."]}),"\n",(0,n.jsxs)(r.li,{children:["On the ",(0,n.jsx)(r.strong,{children:"Clusters"})," page, click ",(0,n.jsx)(r.strong,{children:"Create"}),"."]}),"\n",(0,n.jsx)(r.li,{children:"Choose a cluster type."}),"\n",(0,n.jsxs)(r.li,{children:["In the ",(0,n.jsx)(r.strong,{children:"Cluster Configuration"})," go to the ",(0,n.jsx)(r.strong,{children:"Registries"})," tab and click ",(0,n.jsx)(r.strong,{children:"Pull images for Rancher from a private registry"}),"."]}),"\n",(0,n.jsx)(r.li,{children:"Enter the registry hostname and credentials."}),"\n",(0,n.jsxs)(r.li,{children:["Click ",(0,n.jsx)(r.strong,{children:"Create"}),"."]}),"\n"]}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"Result:"})," The new cluster will be able to pull images from the private registry."]}),"\n",(0,n.jsx)(r.h4,{id:"new-rancher-installations",children:"New Rancher Installations"}),"\n",(0,n.jsxs)(r.p,{children:["Follow Rancher's ",(0,n.jsx)(r.a,{href:"https://rancher.com/docs/rancher/v2.5/en/installation/install-rancher-on-k8s",children:"Installation Guide"}),", making sure to use the carbide chart obtained in the previous ",(0,n.jsx)(r.a,{href:"/carbide-docs/docs/registry-docs/carbide-charts",children:"helm chart"})," section."]}),"\n",(0,n.jsx)(r.p,{children:"When installing Rancher, to utilize the private registry, you'll need to set the following values in your helm values:"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-bash",children:"helm install rancher carbide-charts/rancher \\\n --namespace cattle-system \\\n --set hostname=rancher.my.org \\\n --set replicas=3 \\\n --set rancherImage= /rancher/rancher\n --set systemDefaultRegistry= \n"})}),"\n",(0,n.jsxs)(r.blockquote,{children:["\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.strong,{children:"NOTE:"})," This requires configuring RKE2/K3s ",(0,n.jsx)(r.code,{children:"registries.yaml"})," to work. See the ",(0,n.jsx)(r.a,{href:"/carbide-docs/docs/registry-docs/configuration/kubernetes",children:"RKE2/K3s configuration"})," section for more details."]}),"\n"]}),"\n",(0,n.jsx)(r.h3,{id:"authenticated-registry-manual-registriesyaml",children:"Authenticated Registry (Manual registries.yaml)"}),"\n",(0,n.jsxs)(r.p,{children:["See the ",(0,n.jsx)(r.a,{href:"/carbide-docs/docs/registry-docs/configuration/kubernetes",children:"RKE2/K3s configuration"})," section for more details."]})]})}function d(e={}){const{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(h,{...e})}):h(e)}},8453:(e,r,t)=>{t.d(r,{R:()=>a,x:()=>l});var n=t(6540);const i={},s=n.createContext(i);function a(e){const r=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function l(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),n.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ec1c321e.de94604d.js b/assets/js/ec1c321e.de94604d.js deleted file mode 100644 index 8d48287..0000000 --- a/assets/js/ec1c321e.de94604d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[490],{629:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>t,metadata:()=>o,toc:()=>d});var n=s(4848),i=s(8453);const t={},c="RKE2/K3s Configuration",o={id:"registry-docs/configuration/kubernetes",title:"RKE2/K3s Configuration",description:"This page will walk you through how to configure Rancher Kubernetes distributions (K3s, RKE2) to utilize the secured images instead of the upstream Docker hub images.",source:"@site/docs/registry-docs/configuration/kubernetes.md",sourceDirName:"registry-docs/configuration",slug:"/registry-docs/configuration/kubernetes",permalink:"/carbide-docs/docs/registry-docs/configuration/kubernetes",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/configuration/kubernetes.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Carbide Helm Charts",permalink:"/carbide-docs/docs/registry-docs/carbide-charts"},next:{title:"Rancher Manager Configuration",permalink:"/carbide-docs/docs/registry-docs/configuration/rancher"}},a={},d=[{value:"Usage with k3s
",id:"usage-with-k3s",level:3},{value:"Usage withrke2
",id:"usage-with-rke2",level:3},{value:"registries.yaml
Strategy Approaches",id:"registriesyaml-strategy-approaches",level:4},{value:"Examplecloud-init
(RKE2
)",id:"example-cloud-init-rke2",level:4}];function l(e){const r={a:"a",code:"code",h1:"h1",h3:"h3",h4:"h4",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.h1,{id:"rke2k3s-configuration",children:"RKE2/K3s Configuration"}),"\n",(0,n.jsx)(r.p,{children:"This page will walk you through how to configure Rancher Kubernetes distributions (K3s, RKE2) to utilize the secured images instead of the upstream Docker hub images."}),"\n",(0,n.jsxs)(r.h3,{id:"usage-with-k3s",children:["Usage with ",(0,n.jsx)(r.code,{children:"k3s"})]}),"\n",(0,n.jsxs)(r.p,{children:["To modify the system images that ",(0,n.jsx)(r.code,{children:"k3s"})," uses upon bootstrapping, configure k3s' mirror settings as described ",(0,n.jsx)(r.a,{href:"https://rancher.com/docs/k3s/latest/en/installation/private-registry/#mirrors",children:"here"}),"."]}),"\n",(0,n.jsx)(r.p,{children:"The full configuration using your authenticated registry is below:"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-yaml",children:'# /etc/rancher/k3s/registries.yaml\nmirrors:\n docker.io:\n endpoint:\n - "https://"\n\nconfigs:\n " ":\n auth:\n username: \n password: \n'})}),"\n",(0,n.jsxs)(r.p,{children:["You will also need to utilize the ",(0,n.jsx)(r.code,{children:"system-default-registry"})," flag when installing K3s to ensure it uses the registry. For instance:"]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-bash",children:"curl -sfL https://get.k3s.io | sh -s - --system-default-registry= \n"})}),"\n",(0,n.jsxs)(r.h3,{id:"usage-with-rke2",children:["Usage with ",(0,n.jsx)(r.code,{children:"rke2"})]}),"\n",(0,n.jsxs)(r.p,{children:["Similar to ",(0,n.jsx)(r.code,{children:"k3s"}),", the Carbide Secured Registry (CSR) images are pulled upon bootstrapping by configuring ",(0,n.jsx)(r.code,{children:"rke2"}),"'s mirroring configuration as described ",(0,n.jsx)(r.a,{href:"https://rke2.io",children:"here"}),"."]}),"\n",(0,n.jsx)(r.p,{children:"The full configuration using the shared alpha account is below:"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-yaml",children:'# /etc/rancher/rke2/registries.yaml\nmirrors:\n docker.io:\n endpoint:\n - "https:// "\n\nconfigs:\n " ":\n auth:\n username: \n password: \n'})}),"\n",(0,n.jsxs)(r.p,{children:["You will also need to utilize the ",(0,n.jsx)(r.code,{children:"system-default-registry"})," flag when installing RKE2 to ensure it uses the registry. For instance, if using the configuration file:"]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-bash",children:"# /etc/rancher/rke2/config.yaml\nnode-name: controlplane1\nwrite-kubeconfig-mode: 0640\nsystem-default-registry: \n...\n"})}),"\n",(0,n.jsxs)(r.h4,{id:"registriesyaml-strategy-approaches",children:[(0,n.jsx)(r.code,{children:"registries.yaml"})," Strategy Approaches"]}),"\n",(0,n.jsxs)(r.table,{children:[(0,n.jsx)(r.thead,{children:(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.th,{children:"Scenario"}),(0,n.jsx)(r.th,{children:"Best practice"})]})}),(0,n.jsxs)(r.tbody,{children:[(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Use of a 'golden machine image'"}),(0,n.jsxs)(r.td,{children:["Pre-configure ",(0,n.jsx)(r.code,{children:"registries.yaml"})," on golden machine image before host provisioning"]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Rancher provisioned cluster"}),(0,n.jsxs)(r.td,{children:["Embed a ",(0,n.jsx)(r.code,{children:"cloud-init"})," file into cluster provisioning (Example below)"]})]}),(0,n.jsxs)(r.tr,{children:[(0,n.jsx)(r.td,{children:"Ansible/Saltstack/Manual"}),(0,n.jsxs)(r.td,{children:["Pre-configure ",(0,n.jsx)(r.code,{children:"registries.yaml"})," on host before cluster provisioning"]})]})]})]}),"\n",(0,n.jsxs)(r.h4,{id:"example-cloud-init-rke2",children:["Example ",(0,n.jsx)(r.code,{children:"cloud-init"})," (",(0,n.jsx)(r.code,{children:"RKE2"}),")"]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-yaml",children:'# cloud-init\n\nruncmd:\n - mkdir /etc/rancher/rke2\nwrite_files:\n - path: /etc/rancher/rke2/registries.yaml\n content: |\n mirrors:\n docker.io:\n endpoint:\n - "https:// "\n\n configs:\n " ":\n auth:\n username: \n password: \n permissions: \'0644\'\n'})})]})}function h(e={}){const{wrapper:r}={...(0,i.R)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},8453:(e,r,s)=>{s.d(r,{R:()=>c,x:()=>o});var n=s(6540);const i={},t=n.createContext(i);function c(e){const r=n.useContext(t);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:c(e.components),n.createElement(t.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ec1c321e.efacf539.js b/assets/js/ec1c321e.efacf539.js new file mode 100644 index 0000000..7ccf5c9 --- /dev/null +++ b/assets/js/ec1c321e.efacf539.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkcarbide_docs=self.webpackChunkcarbide_docs||[]).push([[490],{7188:(e,r,s)=>{s.r(r),s.d(r,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>t,metadata:()=>o,toc:()=>d});var n=s(4848),i=s(8453);const t={},c="RKE2/K3s Configuration",o={id:"registry-docs/configuration/kubernetes",title:"RKE2/K3s Configuration",description:"This page will walk you through how to configure Rancher Kubernetes distributions (K3s, RKE2) to utilize the secured images instead of the upstream Docker hub images.",source:"@site/docs/registry-docs/configuration/kubernetes.md",sourceDirName:"registry-docs/configuration",slug:"/registry-docs/configuration/kubernetes",permalink:"/carbide-docs/docs/registry-docs/configuration/kubernetes",draft:!1,unlisted:!1,editUrl:"https://github.com/rancherfederal/carbide-docs/edit/main/docs/registry-docs/configuration/kubernetes.md",tags:[],version:"current",frontMatter:{},sidebar:"carbideSidebar",previous:{title:"Helm Charts",permalink:"/carbide-docs/docs/registry-docs/carbide-charts"},next:{title:"Rancher Manager Configuration",permalink:"/carbide-docs/docs/registry-docs/configuration/rancher"}},a={},d=[{value:"Usage with k3s
",id:"usage-with-k3s",level:3},{value:"Usage withrke2
",id:"usage-with-rke2",level:3},{value:"registries.yaml
Strategy Approaches",id:"registriesyaml-strategy-approaches",level:4},{value:"Examplecloud-init
(RKE2
)",id:"example-cloud-init-rke2",level:4}];function l(e){const r={a:"a",code:"code",h1:"h1",h3:"h3",h4:"h4",header:"header",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.R)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.header,{children:(0,n.jsx)(r.h1,{id:"rke2k3s-configuration",children:"RKE2/K3s Configuration"})}),"\n",(0,n.jsx)(r.p,{children:"This page will walk you through how to configure Rancher Kubernetes distributions (K3s, RKE2) to utilize the secured images instead of the upstream Docker hub images."}),"\n",(0,n.jsxs)(r.h3,{id:"usage-with-k3s",children:["Usage with ",(0,n.jsx)(r.code,{children:"k3s"})]}),"\n",(0,n.jsxs)(r.p,{children:["To modify the system images that ",(0,n.jsx)(r.code,{children:"k3s"})," uses upon bootstrapping, configure k3s' mirror settings as described ",(0,n.jsx)(r.a,{href:"https://rancher.com/docs/k3s/latest/en/installation/private-registry/#mirrors",children:"here"}),"."]}),"\n",(0,n.jsx)(r.p,{children:"The full configuration using your authenticated registry is below:"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-yaml",children:'# /etc/rancher/k3s/registries.yaml\nmirrors:\n docker.io:\n endpoint:\n - "https://"\n\nconfigs:\n " ":\n auth:\n username: \n password: \n'})}),"\n",(0,n.jsxs)(r.p,{children:["You will also need to utilize the ",(0,n.jsx)(r.code,{children:"system-default-registry"})," flag when installing K3s to ensure it uses the registry. For instance:"]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-bash",children:"curl -sfL https://get.k3s.io | sh -s - --system-default-registry= \n"})}),"\n",(0,n.jsxs)(r.h3,{id:"usage-with-rke2",children:["Usage with ",(0,n.jsx)(r.code,{children:"rke2"})]}),"\n",(0,n.jsxs)(r.p,{children:["Similar to ",(0,n.jsx)(r.code,{children:"k3s"}),", the Carbide Secured Registry (CSR) images are pulled upon bootstrapping by configuring ",(0,n.jsx)(r.code,{children:"rke2"}),"'s mirroring configuration as described ",(0,n.jsx)(r.a,{href:"https://rke2.io",children:"here"}),"."]}),"\n",(0,n.jsx)(r.p,{children:"The full configuration using the shared alpha account is below:"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-yaml",children:'# /etc/rancher/rke2/registries.yaml\nmirrors:\n docker.io:\n endpoint:\n - "https://