<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.dersllc.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ders</id>
	<title>DER&#039;s LLC - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.dersllc.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ders"/>
	<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php/Special:Contributions/Ders"/>
	<updated>2026-05-06T13:34:31Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud&amp;diff=716</id>
		<title>SpectroCloud</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud&amp;diff=716"/>
		<updated>2025-06-17T15:07:55Z</updated>

		<summary type="html">&lt;p&gt;Ders: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[SpectroCloud/VertexInstall | Vertex Installation Instructions]] &amp;lt;BR&amp;gt;&lt;br /&gt;
[[SpectroCloud/VertexISOInstall | Vertex ISO Installation Instructions]] &amp;lt;BR&amp;gt;&lt;br /&gt;
[[SpectroCloud/VertexHelmInstall | Vertex Helm Installation Instructions]] &amp;lt;BR&amp;gt;&lt;br /&gt;
[[SpectroCloud/VertexUpgrade | Vertex Upgrade Instructions]] &amp;lt;BR&amp;gt;&lt;br /&gt;
[[SpectroCloud/VertexLabConfig | Vertex Lab Configuration]] &amp;lt;BR&amp;gt;&lt;br /&gt;
[[SpectroCloud/MAAS | MAAS Information]] &amp;lt;BR&amp;gt;&lt;br /&gt;
[[SpectroCloud/RaspberryPiEdgePrep | RaspberryPi Edge Prep]] &amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[SpectroCloud/PaletteBackup | Palette Backup Script]] &amp;lt;BR&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=VMware/Jumpbox&amp;diff=715</id>
		<title>VMware/Jumpbox</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=VMware/Jumpbox&amp;diff=715"/>
		<updated>2025-05-01T16:36:15Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Jumpbox Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Jumpbox Setup=&lt;br /&gt;
&lt;br /&gt;
https://ders-gitlab.dersllc.com/ders/ders-home-lab/-/blob/main/jumpbox/README.md&lt;br /&gt;
&lt;br /&gt;
==OS==&lt;br /&gt;
 Ubuntu 24.04 UEFI&lt;br /&gt;
&lt;br /&gt;
 IP: edit the /etc/netplan/50-cloud-init.yaml&lt;br /&gt;
 REBOOT&lt;br /&gt;
&lt;br /&gt;
==Software==&lt;br /&gt;
 #######################&lt;br /&gt;
 ## INSTALL TANZU CLI ##&lt;br /&gt;
 #######################&lt;br /&gt;
 sudo mkdir -p /etc/apt/keyrings/&lt;br /&gt;
 sudo apt-get update -y&lt;br /&gt;
 sudo apt-get install -y ca-certificates curl gpg&lt;br /&gt;
 curl -fsSL https://packages.vmware.com/tools/keys/VMWARE-PACKAGING-GPG-RSA-KEY.pub | sudo gpg --dearmor -o /etc/apt/keyrings/tanzu-archive-keyring.gpg&lt;br /&gt;
 echo &amp;quot;deb [arch=amd64 signed-by=/etc/apt/keyrings/tanzu-archive-keyring.gpg] https://storage.googleapis.com/tanzu-cli-os-packages/apt tanzu-cli-jessie main&amp;quot; | sudo tee /etc/apt/sources.list.d/tanzu.list&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y tanzu-cli&lt;br /&gt;
&lt;br /&gt;
 ###################&lt;br /&gt;
 ## INSTALL SNAPD ##&lt;br /&gt;
 ###################&lt;br /&gt;
 apt-get -y install snapd unzip nfs-common ca-certificates&lt;br /&gt;
&lt;br /&gt;
 ###########################&lt;br /&gt;
 ## INSTALL Snap Software ##&lt;br /&gt;
 ###########################&lt;br /&gt;
 snap install yq &lt;br /&gt;
 snap install k9s&lt;br /&gt;
 ln -s /snap/k9s/current/bin/k9s /usr/local/bin/k9s&lt;br /&gt;
&lt;br /&gt;
 #################################&lt;br /&gt;
 ## INSTALL KUBECTL-VSPHERE CLI ##&lt;br /&gt;
 #################################&lt;br /&gt;
 wget --no-check-certificate https://tkgs.dersllc.com/wcp/plugin/linux-amd64/vsphere-plugin.zip&lt;br /&gt;
 unzip vsphere-plugin.zip&lt;br /&gt;
 mv bin/* /usr/local/bin/&lt;br /&gt;
 chmod +x /usr/local/bin/*&lt;br /&gt;
 rm -rf ./bin vsphere-plugin.zip&lt;br /&gt;
&lt;br /&gt;
 ############################&lt;br /&gt;
 ## LOGIN TO TKGS CLUSTERS ##&lt;br /&gt;
 ############################&lt;br /&gt;
 kubectl-vsphere login --insecure-skip-tls-verify -u admin --server tkgs.dersllc.com --tanzu-kubernetes-cluster-namespace tmc --tanzu-kubernetes-cluster-name hub&lt;br /&gt;
 kubectl-vsphere login --insecure-skip-tls-verify -u admin --server tkgs.dersllc.com --tanzu-kubernetes-cluster-namespace tmc --tanzu-kubernetes-cluster-name tmc-cluster&lt;br /&gt;
 kubectl-vsphere login --insecure-skip-tls-verify -u admin --server tkgs.dersllc.com --tanzu-kubernetes-cluster-namespace ders --tanzu-kubernetes-cluster-name ders-cluster&lt;br /&gt;
 kubectl-vsphere login --insecure-skip-tls-verify -u admin --server tkgs.dersllc.com --tanzu-kubernetes-cluster-namespace ders --tanzu-kubernetes-cluster-name tap&lt;br /&gt;
&lt;br /&gt;
 #####################&lt;br /&gt;
 ## SETUP TANZU CLI ##&lt;br /&gt;
 #####################&lt;br /&gt;
 tanzu init&lt;br /&gt;
 tanzu plugin group get vmware-tkg/default:v2.5.1&lt;br /&gt;
 tanzu plugin install --group vmware-tkg/default:v2.5.1&lt;br /&gt;
 tanzu context create tkgs.dersllc.com --kubeconfig ~/.kube/config --kubecontext tkgs.dersllc.com&lt;br /&gt;
 tanzu cluster list -A&lt;br /&gt;
 tanzu plugin install --group vmware-tmc/default&lt;br /&gt;
 tanzu plugin install --group vmware-tap/default&lt;br /&gt;
&lt;br /&gt;
 ######################&lt;br /&gt;
 ## SETUP NFS MOUNTS ##&lt;br /&gt;
 ######################&lt;br /&gt;
 mkdir -p /nfs/QNAP/Plex /nfs/appStore /nfs/Download /nfs/Web /nfs/Apps /nfs/DERs_Drive&lt;br /&gt;
 echo &amp;quot;#DERS NFS MOUNTS&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 echo &amp;quot;172.16.85.15:/Plex              /nfs/QNAP/Plex          nfs vers=4.0    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 echo &amp;quot;172.16.85.15:/Apps              /nfs/Apps               nfs vers=4.0    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 echo &amp;quot;172.16.85.15:/DERs_Drive        /nfs/DERs_Drive         nfs vers=4.0    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 echo &amp;quot;172.16.85.15:/Web               /nfs/Web                nfs vers=4.0    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 echo &amp;quot;172.16.85.15:/Download          /nfs/Download           nfs vers=4.0    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
 #########################&lt;br /&gt;
 ## TRUST DERS CA CERTS ##&lt;br /&gt;
 #########################&lt;br /&gt;
 sudo curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 sudo curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 sudo update-ca-certificates&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/Packs&amp;diff=714</id>
		<title>SpectroCloud/Packs</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/Packs&amp;diff=714"/>
		<updated>2025-04-25T13:34:37Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Build and Push Pack */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Packs=&lt;br /&gt;
&lt;br /&gt;
=== PreRequisites ===&lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 oras login harbor.dersllc.com --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Clone Pack Version and Commit to GIT ===&lt;br /&gt;
 export PACK_NAME=&#039;mediacms&#039;&lt;br /&gt;
 export OLD_PACK_VERSION=&#039;4.3.0-8&#039;&lt;br /&gt;
 export NEW_PACK_VERSION=&#039;4.6.0&#039;&lt;br /&gt;
 git clone https://ders-gitlab.dersllc.com/ders/spectro-sa.git&lt;br /&gt;
 cd spectro-sa/packs/&lt;br /&gt;
 cp -r $PACK_NAME-$OLD_PACK_VERSION $PACK_NAME-$NEW_PACK_VERSION&lt;br /&gt;
 sed -i &#039;s/&#039;$OLD_PACK_VERSION&#039;/&#039;$NEW_PACK_VERSION&#039;/&#039; $PACK_NAME-$NEW_PACK_VERSION/pack.json&lt;br /&gt;
 git add *&lt;br /&gt;
 git commit -m &amp;quot;Added version $PACK_NAME-$NEW_PACK_VERSION&amp;quot;&lt;br /&gt;
 git push&lt;br /&gt;
 &lt;br /&gt;
 cd ../..&lt;br /&gt;
 rm -rf spectro-sa/&lt;br /&gt;
&lt;br /&gt;
=== Build and Push Pack ===&lt;br /&gt;
 export PACK_NAME=&#039;mediacms&#039;&lt;br /&gt;
 export PACK_VERSION=&#039;4.6.0&#039;&lt;br /&gt;
 git clone https://ders-gitlab.dersllc.com/ders/spectro-sa.git&lt;br /&gt;
 cd spectro-sa/packs/&lt;br /&gt;
 tar -zcvf $PACK_NAME-$PACK_VERSION.tar.gz $PACK_NAME-$PACK_VERSION/&lt;br /&gt;
 oras push harbor.dersllc.com/ders-packs/spectro-packs/archive/$PACK_NAME:$PACK_VERSION $PACK_NAME-$PACK_VERSION.tar.gz --insecure --annotation org.opencontainers.image.created=&amp;quot;2023-07-24T11:57:56Z&amp;quot;&lt;br /&gt;
 cd ../..&lt;br /&gt;
 rm -rf spectro-sa/&lt;br /&gt;
&lt;br /&gt;
== Sync the Repo ==&lt;br /&gt;
 https://vertex.dersllc.com/system/administration/registries/pack&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
 https://github.com/spectrocloud/pack-central/tree/main/packs&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/Packs&amp;diff=713</id>
		<title>SpectroCloud/Packs</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/Packs&amp;diff=713"/>
		<updated>2025-04-25T13:34:29Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Clone Pack Version and Commit to GIT */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Packs=&lt;br /&gt;
&lt;br /&gt;
=== PreRequisites ===&lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 oras login harbor.dersllc.com --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Clone Pack Version and Commit to GIT ===&lt;br /&gt;
 export PACK_NAME=&#039;mediacms&#039;&lt;br /&gt;
 export OLD_PACK_VERSION=&#039;4.3.0-8&#039;&lt;br /&gt;
 export NEW_PACK_VERSION=&#039;4.6.0&#039;&lt;br /&gt;
 git clone https://ders-gitlab.dersllc.com/ders/spectro-sa.git&lt;br /&gt;
 cd spectro-sa/packs/&lt;br /&gt;
 cp -r $PACK_NAME-$OLD_PACK_VERSION $PACK_NAME-$NEW_PACK_VERSION&lt;br /&gt;
 sed -i &#039;s/&#039;$OLD_PACK_VERSION&#039;/&#039;$NEW_PACK_VERSION&#039;/&#039; $PACK_NAME-$NEW_PACK_VERSION/pack.json&lt;br /&gt;
 git add *&lt;br /&gt;
 git commit -m &amp;quot;Added version $PACK_NAME-$NEW_PACK_VERSION&amp;quot;&lt;br /&gt;
 git push&lt;br /&gt;
 &lt;br /&gt;
 cd ../..&lt;br /&gt;
 rm -rf spectro-sa/&lt;br /&gt;
&lt;br /&gt;
=== Build and Push Pack ===&lt;br /&gt;
 export PACK_NAME=&#039;mediacms&#039;&lt;br /&gt;
 export PACK_VERSION=&#039;4.3.0-8&#039;&lt;br /&gt;
 git clone https://ders-gitlab.dersllc.com/ders/spectro-sa.git&lt;br /&gt;
 cd spectro-sa/packs/&lt;br /&gt;
 tar -zcvf $PACK_NAME-$PACK_VERSION.tar.gz $PACK_NAME-$PACK_VERSION/&lt;br /&gt;
 oras push harbor.dersllc.com/ders-packs/spectro-packs/archive/$PACK_NAME:$PACK_VERSION $PACK_NAME-$PACK_VERSION.tar.gz --insecure --annotation org.opencontainers.image.created=&amp;quot;2023-07-24T11:57:56Z&amp;quot;&lt;br /&gt;
 cd ../..&lt;br /&gt;
 rm -rf spectro-sa/&lt;br /&gt;
&lt;br /&gt;
== Sync the Repo ==&lt;br /&gt;
 https://vertex.dersllc.com/system/administration/registries/pack&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
 https://github.com/spectrocloud/pack-central/tree/main/packs&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/Packs&amp;diff=712</id>
		<title>SpectroCloud/Packs</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/Packs&amp;diff=712"/>
		<updated>2025-04-23T13:39:11Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Build and Push Pack */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Packs=&lt;br /&gt;
&lt;br /&gt;
=== PreRequisites ===&lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 oras login harbor.dersllc.com --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Clone Pack Version and Commit to GIT ===&lt;br /&gt;
 export PACK_NAME=&#039;mediacms&#039;&lt;br /&gt;
 export OLD_PACK_VERSION=&#039;4.3.0-7&#039;&lt;br /&gt;
 export NEW_PACK_VERSION=&#039;4.3.0-8&#039;&lt;br /&gt;
 git clone https://ders-gitlab.dersllc.com/ders/spectro-sa.git&lt;br /&gt;
 cd spectro-sa/packs/&lt;br /&gt;
 cp -r $PACK_NAME-$OLD_PACK_VERSION $PACK_NAME-$NEW_PACK_VERSION&lt;br /&gt;
 sed -i &#039;s/&#039;$OLD_PACK_VERSION&#039;/&#039;$NEW_PACK_VERSION&#039;/&#039; $PACK_NAME-$NEW_PACK_VERSION/pack.json&lt;br /&gt;
 git add *&lt;br /&gt;
 git commit -m &amp;quot;Added version $PACK_NAME-$NEW_PACK_VERSION&amp;quot;&lt;br /&gt;
 git push&lt;br /&gt;
 &lt;br /&gt;
 cd ../..&lt;br /&gt;
 rm -rf spectro-sa/&lt;br /&gt;
&lt;br /&gt;
=== Build and Push Pack ===&lt;br /&gt;
 export PACK_NAME=&#039;mediacms&#039;&lt;br /&gt;
 export PACK_VERSION=&#039;4.3.0-8&#039;&lt;br /&gt;
 git clone https://ders-gitlab.dersllc.com/ders/spectro-sa.git&lt;br /&gt;
 cd spectro-sa/packs/&lt;br /&gt;
 tar -zcvf $PACK_NAME-$PACK_VERSION.tar.gz $PACK_NAME-$PACK_VERSION/&lt;br /&gt;
 oras push harbor.dersllc.com/ders-packs/spectro-packs/archive/$PACK_NAME:$PACK_VERSION $PACK_NAME-$PACK_VERSION.tar.gz --insecure --annotation org.opencontainers.image.created=&amp;quot;2023-07-24T11:57:56Z&amp;quot;&lt;br /&gt;
 cd ../..&lt;br /&gt;
 rm -rf spectro-sa/&lt;br /&gt;
&lt;br /&gt;
== Sync the Repo ==&lt;br /&gt;
 https://vertex.dersllc.com/system/administration/registries/pack&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
 https://github.com/spectrocloud/pack-central/tree/main/packs&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/Packs&amp;diff=711</id>
		<title>SpectroCloud/Packs</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/Packs&amp;diff=711"/>
		<updated>2025-04-22T13:33:51Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Build and Push Pack */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Packs=&lt;br /&gt;
&lt;br /&gt;
=== PreRequisites ===&lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 oras login harbor.dersllc.com --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Clone Pack Version and Commit to GIT ===&lt;br /&gt;
 export PACK_NAME=&#039;mediacms&#039;&lt;br /&gt;
 export OLD_PACK_VERSION=&#039;4.3.0-7&#039;&lt;br /&gt;
 export NEW_PACK_VERSION=&#039;4.3.0-8&#039;&lt;br /&gt;
 git clone https://ders-gitlab.dersllc.com/ders/spectro-sa.git&lt;br /&gt;
 cd spectro-sa/packs/&lt;br /&gt;
 cp -r $PACK_NAME-$OLD_PACK_VERSION $PACK_NAME-$NEW_PACK_VERSION&lt;br /&gt;
 sed -i &#039;s/&#039;$OLD_PACK_VERSION&#039;/&#039;$NEW_PACK_VERSION&#039;/&#039; $PACK_NAME-$NEW_PACK_VERSION/pack.json&lt;br /&gt;
 git add *&lt;br /&gt;
 git commit -m &amp;quot;Added version $PACK_NAME-$NEW_PACK_VERSION&amp;quot;&lt;br /&gt;
 git push&lt;br /&gt;
 &lt;br /&gt;
 cd ../..&lt;br /&gt;
 rm -rf spectro-sa/&lt;br /&gt;
&lt;br /&gt;
=== Build and Push Pack ===&lt;br /&gt;
 export PACK_NAME=&#039;mediacms&#039;&lt;br /&gt;
 export PACK_VERSION=&#039;4.3.0-8&#039;&lt;br /&gt;
 git clone https://ders-gitlab.dersllc.com/ders/spectro-sa.git&lt;br /&gt;
 cd spectro-sa/packs/&lt;br /&gt;
 tar -zcvf $PACK_NAME-$PACK_VERSION.tar.gz $PACK_NAME-$PACK_VERSION/&lt;br /&gt;
 oras push harbor.dersllc.com/ders-packs/archive/$PACK_NAME:$PACK_VERSION $PACK_NAME-$PACK_VERSION.tar.gz --insecure --annotation org.opencontainers.image.created=&amp;quot;2023-07-24T11:57:56Z&amp;quot;&lt;br /&gt;
 cd ../..&lt;br /&gt;
 rm -rf spectro-sa/&lt;br /&gt;
&lt;br /&gt;
== Sync the Repo ==&lt;br /&gt;
 https://vertex.dersllc.com/system/administration/registries/pack&lt;br /&gt;
&lt;br /&gt;
== Resources ==&lt;br /&gt;
 https://github.com/spectrocloud/pack-central/tree/main/packs&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=710</id>
		<title>SpectroCloud/AirGapEdgeISO</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=710"/>
		<updated>2025-04-18T12:55:07Z</updated>

		<summary type="html">&lt;p&gt;Ders: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Air-Gapped Edge ISO =&lt;br /&gt;
https://ders-gitlab.dersllc.com/ders/spectro-sa/-/wikis/Airgapped-Edge-All-In-One-ISO&lt;br /&gt;
== Prerequisites==&lt;br /&gt;
=== DER&#039;s Lab Specific ===&lt;br /&gt;
 #######################################&lt;br /&gt;
 # Build the ISO on the JUMPBOX Server #&lt;br /&gt;
 #######################################&lt;br /&gt;
 ssh ders@172.16.84.34&lt;br /&gt;
 sudo su - &lt;br /&gt;
&lt;br /&gt;
 ##############################&lt;br /&gt;
 # Mount the VMware Datastore #&lt;br /&gt;
 ##############################&lt;br /&gt;
 echo &amp;quot;172.16.84.7:/data/hdd/0-ISOs    /nfs/0-ISOs             nfs defaults    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
 mkdir -p /nfs/0-ISOs&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
=== ISO Build Requirements ===&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Create Harbor Repo for the provider images #&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Name: airgap-edge&lt;br /&gt;
 # Type: public&lt;br /&gt;
&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # Update the .args file and BYOI Layer with the Following Info: #&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # BYOI VALUES:&lt;br /&gt;
 options:&lt;br /&gt;
   system.uri: &amp;lt;nowiki&amp;gt;&amp;quot;{{ .spectro.pack.edge-native-byoi.options.system.registry }}/{{ .spectro.pack.edge-native-byoi.options.system.repo }}:{{ .spectro.pack.edge-native-byoi.options.system.k8sDistribution }}-{{.spectro.system.kubernetes.version }}-{{ .spectro.pack.edge-native-byoi.options.system.peVersion }}-{{ .spectro.pack.edge-native-byoi.options.system.customTag }}&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   system.registry: harbor.dersllc.com/airgap-edge&lt;br /&gt;
   system.repo: ubuntu&lt;br /&gt;
   system.k8sDistribution: kubeadm&lt;br /&gt;
   system.osName: ubuntu&lt;br /&gt;
   system.peVersion: v4.6.3&lt;br /&gt;
   system.customTag: ders-edge&lt;br /&gt;
   system.osVersion: 22.04&lt;br /&gt;
 #&lt;br /&gt;
 # .ARG FILE:&lt;br /&gt;
 # CUSTOM_TAG=ders-edge&lt;br /&gt;
 # IMAGE_REGISTRY=harbor.dersllc.com/airgap-edge&lt;br /&gt;
 # OS_DISTRIBUTION=ubuntu&lt;br /&gt;
 # IMAGE_REPO=$OS_DISTRIBUTION&lt;br /&gt;
 # OS_VERSION=22.04&lt;br /&gt;
 # K8S_DISTRIBUTION=kubeadm&lt;br /&gt;
 # ISO_NAME=ders-edge-installer&lt;br /&gt;
 # ARCH=amd64&lt;br /&gt;
 # UPDATE_KERNEL=false&lt;br /&gt;
 # CLUSTERCONFIG=test-edge-iso-profile-cluster-definition.tgz&lt;br /&gt;
 # CIS_HARDENING=true&lt;br /&gt;
 # BASE_IMAGE=quay.io/kairos/ubuntu:24.04-core-amd64-generic-v3.0.14&lt;br /&gt;
&lt;br /&gt;
 # CHANGE THE FOLLOWING IN THE K8S LAYER&lt;br /&gt;
 # REMOVE: AlwaysPullImages&lt;br /&gt;
 # MAKE SURE YOU HAVE THE HARBOR-EDGE-NATIVE-CONFIG LAYER ADDED TO THE PROFILE&lt;br /&gt;
&lt;br /&gt;
== Build the All-In-One ISO File ==&lt;br /&gt;
 ######################&lt;br /&gt;
 # REQUIRED VARIABLES #&lt;br /&gt;
 ######################&lt;br /&gt;
 export OS=ubuntu-fips;                                                          #rhel, rhel-fips, ubuntu, ubuntu-fips&lt;br /&gt;
 export PALETTE_ENDPOINT=&amp;quot;paas.dersllc.com&amp;quot;;&lt;br /&gt;
 export API_KEY=&#039;Y2ZiYWZkNWRmN2E0YjAzYTFjYjYyOTBhMjk3YjZlMDg=&#039;;&lt;br /&gt;
 export CLUSTER_PROFILE_NAME=&amp;quot;test-edge-iso-$OS&amp;quot;&lt;br /&gt;
 export CLUSTER_PROFILE_VERSION=1.0.2&lt;br /&gt;
 export PROJECT_NAME=&amp;quot;all-in-one-iso&amp;quot;;&lt;br /&gt;
 export EDGE_CLI_VERSION=&amp;quot;v4.6.9&amp;quot;;                                             #https://docs.spectrocloud.com/component/#palette-edge-cli-versions&lt;br /&gt;
 &lt;br /&gt;
 #################################&lt;br /&gt;
 # Download the Palette-Edge CLI #&lt;br /&gt;
 #################################&lt;br /&gt;
 wget https://software.spectrocloud.com/stylus/$EDGE_CLI_VERSION/cli/linux/palette-edge&lt;br /&gt;
 chmod +x palette-edge&lt;br /&gt;
 mv palette-edge /usr/local/bin&lt;br /&gt;
 cd ~; rm -rf CanvOS&lt;br /&gt;
 &lt;br /&gt;
 ###################################&lt;br /&gt;
 # Use GIT to pull the CanvOS Repo #&lt;br /&gt;
 ###################################&lt;br /&gt;
 git clone https://github.com/spectrocloud/CanvOS.git&lt;br /&gt;
 cd CanvOS&lt;br /&gt;
 #export EDGE_CLI_VERSION=`git tag | sort --version-sort | tail -1`&lt;br /&gt;
 git checkout $EDGE_CLI_VERSION &lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the .arg and user-data file from gitlab #&lt;br /&gt;
 ################################################&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/.arg-$OS.yaml &amp;gt; .arg&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/user-data-$OS.yaml &amp;gt; user-data&lt;br /&gt;
 #sudo ./earthly.sh +validate-user-data &lt;br /&gt;
 &lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 # Get the Project and Cluster Profile IDs and K8S Version from the VERTEX API #&lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 export PROJECT_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/projects&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${PROJECT_NAME}&#039;&amp;quot;)&#039; | jq -r .metadata.uid`&lt;br /&gt;
 export CLUSTER_PROFILE_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY -H &#039;Projectuid: &#039;${PROJECT_UID} -H &amp;quot;Content-Type: application/json&amp;quot; | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;)&#039; | jq &#039;.spec | select(.version==&amp;quot;&#039;${CLUSTER_PROFILE_VERSION}&#039;&amp;quot;)&#039; | jq -r .published.uid`&lt;br /&gt;
 export K8S_VERSION=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY -H &#039;Projectuid: &#039;${PROJECT_UID} -H &amp;quot;Content-Type: application/json&amp;quot; | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;)&#039; | jq &#039;.spec | select(.version==&amp;quot;&#039;${CLUSTER_PROFILE_VERSION}&#039;&amp;quot;)&#039; | jq -r .published.packs[1].version`&lt;br /&gt;
 &lt;br /&gt;
 #echo PROJECT_UID:$PROJECT_UID; echo CLUSTER_PROFILE_ID:$CLUSTER_PROFILE_UID; echo K8S_VERSION:$K8S_VERSION;&lt;br /&gt;
 &lt;br /&gt;
 #####################################&lt;br /&gt;
 # Pull Variables from the .arg File #&lt;br /&gt;
 #####################################&lt;br /&gt;
 export CUSTOM_TAG=`cat .arg | grep CUSTOM_TAG | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export IMAGE_REGISTRY=`cat .arg | grep IMAGE_REGISTRY | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_DISTRIBUTION=`cat .arg | grep OS_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_VERSION=`cat .arg | grep OS_VERSION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export K8S_DISTRIBUTION=`cat .arg | grep K8S_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export ISO_NAME=`cat .arg | grep ISO_NAME | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 #echo $CUSTOM_TAG; echo $IMAGE_REGISTRY; echo $OS_DISTRIBUTION; echo $OS_VERSION; echo $K8S_DISTRIBUTION; echo $ISO_NAME&lt;br /&gt;
 &lt;br /&gt;
 echo &#039;{&amp;quot;&#039;$K8S_DISTRIBUTION&#039;&amp;quot;:[&amp;quot;&#039;$K8S_VERSION&#039;&amp;quot;]}&#039; | jq &amp;gt; k8s_version.json; # Set only the version you need in the k8s_version.json. This needs to match the version in your profile.&lt;br /&gt;
 #cat k8s_version.json&lt;br /&gt;
 &lt;br /&gt;
 #########################################&lt;br /&gt;
 # Customize the Local-Ui (Not-Required) #&lt;br /&gt;
 #########################################&lt;br /&gt;
 mkdir -p local-ui/ui&lt;br /&gt;
 mkdir -p local-ui/app&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/customizations.json &amp;gt; local-ui/ui/customizations.json&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/index.html &amp;gt; local-ui/app/index.html&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/154x65.png &amp;gt; local-ui/ui/154x65.png&lt;br /&gt;
 tar cvf local-ui.tar local-ui&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Build the Provider Images #&lt;br /&gt;
 #############################&lt;br /&gt;
 # Pull the earthly image and retag so it does not re-pull everytime!&lt;br /&gt;
 docker pull us-docker.pkg.dev/palette-images/third-party/edge/earthly/earthly:v0.8.15&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/third-party/edge/earthly/earthly:v0.8.15 us-docker.pkg.dev/palette-images/third-party/edge/earthly/earthly:keep&lt;br /&gt;
 #sudo ./earthly.sh +build-provider-images &lt;br /&gt;
 sudo ./earthly.sh +build-provider-images-fips &lt;br /&gt;
&lt;br /&gt;
 #############################################&lt;br /&gt;
 # Push the Provider image to the Image Repo #&lt;br /&gt;
 #############################################&lt;br /&gt;
 docker push $IMAGE_REGISTRY/$OS_DISTRIBUTION:$K8S_DISTRIBUTION-$K8S_VERSION-$EDGE_CLI_VERSION-$CUSTOM_TAG &lt;br /&gt;
 &lt;br /&gt;
 ###########################################################&lt;br /&gt;
 # Export the Vertex Profile Definition and Content Bundle #&lt;br /&gt;
 ########################################################### &lt;br /&gt;
 palette-edge build --api-key $API_KEY \&lt;br /&gt;
 --project-id $PROJECT_UID \&lt;br /&gt;
 --cluster-profile-ids $CLUSTER_PROFILE_UID \&lt;br /&gt;
 --palette-endpoint $PALETTE_ENDPOINT \&lt;br /&gt;
 --outfile $CLUSTER_PROFILE_NAME-content-bundle \&lt;br /&gt;
 --include-palette-content \&lt;br /&gt;
 --cluster-definition-name $CLUSTER_PROFILE_NAME-cluster-definition \&lt;br /&gt;
 --cluster-definition-profile-ids $CLUSTER_PROFILE_UID &lt;br /&gt;
&lt;br /&gt;
 ############################&lt;br /&gt;
 # Build the All-In-One ISO #&lt;br /&gt;
 ############################&lt;br /&gt;
 sudo ./earthly.sh +iso&lt;br /&gt;
 &lt;br /&gt;
 #######################################&lt;br /&gt;
 # Move the ISO to my VMware Datastore #&lt;br /&gt;
 #######################################&lt;br /&gt;
 touch ~/CanvOS/build/$ISO_NAME.iso&lt;br /&gt;
 mv ~/CanvOS/build/$ISO_NAME.iso /nfs/0-ISOs/&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Building Provider Images ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-provider-images/&lt;br /&gt;
=== Build Content Bundle ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-content-bundle/&lt;br /&gt;
=== Create Installer ISO ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso/&lt;br /&gt;
=== Local-UI Custom Branding ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/theming/&lt;br /&gt;
=== Local-UI Custom Links ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/custom-link/&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=709</id>
		<title>SpectroCloud/AirGapEdgeISO</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=709"/>
		<updated>2025-04-17T17:37:49Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Build the All-In-One ISO File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Air-Gapped Edge ISO =&lt;br /&gt;
== Prerequisites==&lt;br /&gt;
=== DER&#039;s Lab Specific ===&lt;br /&gt;
 #######################################&lt;br /&gt;
 # Build the ISO on the JUMPBOX Server #&lt;br /&gt;
 #######################################&lt;br /&gt;
 ssh ders@172.16.84.34&lt;br /&gt;
 sudo su - &lt;br /&gt;
&lt;br /&gt;
 ##############################&lt;br /&gt;
 # Mount the VMware Datastore #&lt;br /&gt;
 ##############################&lt;br /&gt;
 echo &amp;quot;172.16.84.7:/data/hdd/0-ISOs    /nfs/0-ISOs             nfs defaults    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
 mkdir -p /nfs/0-ISOs&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
=== ISO Build Requirements ===&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Create Harbor Repo for the provider images #&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Name: airgap-edge&lt;br /&gt;
 # Type: public&lt;br /&gt;
&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # Update the .args file and BYOI Layer with the Following Info: #&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # BYOI VALUES:&lt;br /&gt;
 options:&lt;br /&gt;
   system.uri: &amp;lt;nowiki&amp;gt;&amp;quot;{{ .spectro.pack.edge-native-byoi.options.system.registry }}/{{ .spectro.pack.edge-native-byoi.options.system.repo }}:{{ .spectro.pack.edge-native-byoi.options.system.k8sDistribution }}-{{.spectro.system.kubernetes.version }}-{{ .spectro.pack.edge-native-byoi.options.system.peVersion }}-{{ .spectro.pack.edge-native-byoi.options.system.customTag }}&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   system.registry: harbor.dersllc.com/airgap-edge&lt;br /&gt;
   system.repo: ubuntu&lt;br /&gt;
   system.k8sDistribution: kubeadm&lt;br /&gt;
   system.osName: ubuntu&lt;br /&gt;
   system.peVersion: v4.6.3&lt;br /&gt;
   system.customTag: ders-edge&lt;br /&gt;
   system.osVersion: 22.04&lt;br /&gt;
 #&lt;br /&gt;
 # .ARG FILE:&lt;br /&gt;
 # CUSTOM_TAG=ders-edge&lt;br /&gt;
 # IMAGE_REGISTRY=harbor.dersllc.com/airgap-edge&lt;br /&gt;
 # OS_DISTRIBUTION=ubuntu&lt;br /&gt;
 # IMAGE_REPO=$OS_DISTRIBUTION&lt;br /&gt;
 # OS_VERSION=22.04&lt;br /&gt;
 # K8S_DISTRIBUTION=kubeadm&lt;br /&gt;
 # ISO_NAME=ders-edge-installer&lt;br /&gt;
 # ARCH=amd64&lt;br /&gt;
 # UPDATE_KERNEL=false&lt;br /&gt;
 # CLUSTERCONFIG=test-edge-iso-profile-cluster-definition.tgz&lt;br /&gt;
 # CIS_HARDENING=true&lt;br /&gt;
 # BASE_IMAGE=quay.io/kairos/ubuntu:24.04-core-amd64-generic-v3.0.14&lt;br /&gt;
&lt;br /&gt;
 # CHANGE THE FOLLOWING IN THE K8S LAYER&lt;br /&gt;
 # REMOVE: AlwaysPullImages&lt;br /&gt;
 # MAKE SURE YOU HAVE THE HARBOR-EDGE-NATIVE-CONFIG LAYER ADDED TO THE PROFILE&lt;br /&gt;
&lt;br /&gt;
== Build the All-In-One ISO File ==&lt;br /&gt;
 ######################&lt;br /&gt;
 # REQUIRED VARIABLES #&lt;br /&gt;
 ######################&lt;br /&gt;
 export OS=ubuntu-fips;                                                          #rhel, rhel-fips, ubuntu, ubuntu-fips&lt;br /&gt;
 export PALETTE_ENDPOINT=&amp;quot;paas.dersllc.com&amp;quot;;&lt;br /&gt;
 export API_KEY=&#039;Y2ZiYWZkNWRmN2E0YjAzYTFjYjYyOTBhMjk3YjZlMDg=&#039;;&lt;br /&gt;
 export CLUSTER_PROFILE_NAME=&amp;quot;test-edge-iso-$OS&amp;quot;&lt;br /&gt;
 export CLUSTER_PROFILE_VERSION=1.0.2&lt;br /&gt;
 export PROJECT_NAME=&amp;quot;all-in-one-iso&amp;quot;;&lt;br /&gt;
 export EDGE_CLI_VERSION=&amp;quot;v4.6.9&amp;quot;;                                             #https://docs.spectrocloud.com/component/#palette-edge-cli-versions&lt;br /&gt;
 &lt;br /&gt;
 #################################&lt;br /&gt;
 # Download the Palette-Edge CLI #&lt;br /&gt;
 #################################&lt;br /&gt;
 wget https://software.spectrocloud.com/stylus/$EDGE_CLI_VERSION/cli/linux/palette-edge&lt;br /&gt;
 chmod +x palette-edge&lt;br /&gt;
 mv palette-edge /usr/local/bin&lt;br /&gt;
 cd ~; rm -rf CanvOS&lt;br /&gt;
 &lt;br /&gt;
 ###################################&lt;br /&gt;
 # Use GIT to pull the CanvOS Repo #&lt;br /&gt;
 ###################################&lt;br /&gt;
 git clone https://github.com/spectrocloud/CanvOS.git&lt;br /&gt;
 cd CanvOS&lt;br /&gt;
 #export EDGE_CLI_VERSION=`git tag | sort --version-sort | tail -1`&lt;br /&gt;
 git checkout $EDGE_CLI_VERSION &lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the .arg and user-data file from gitlab #&lt;br /&gt;
 ################################################&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/.arg-$OS.yaml &amp;gt; .arg&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/user-data-$OS.yaml &amp;gt; user-data&lt;br /&gt;
 #sudo ./earthly.sh +validate-user-data &lt;br /&gt;
 &lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 # Get the Project and Cluster Profile IDs and K8S Version from the VERTEX API #&lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 export PROJECT_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/projects&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${PROJECT_NAME}&#039;&amp;quot;)&#039; | jq -r .metadata.uid`&lt;br /&gt;
 export CLUSTER_PROFILE_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY -H &#039;Projectuid: &#039;${PROJECT_UID} -H &amp;quot;Content-Type: application/json&amp;quot; | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;)&#039; | jq &#039;.spec | select(.version==&amp;quot;&#039;${CLUSTER_PROFILE_VERSION}&#039;&amp;quot;)&#039; | jq -r .published.uid`&lt;br /&gt;
 export K8S_VERSION=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY -H &#039;Projectuid: &#039;${PROJECT_UID} -H &amp;quot;Content-Type: application/json&amp;quot; | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;)&#039; | jq &#039;.spec | select(.version==&amp;quot;&#039;${CLUSTER_PROFILE_VERSION}&#039;&amp;quot;)&#039; | jq -r .published.packs[1].version`&lt;br /&gt;
 &lt;br /&gt;
 #echo PROJECT_UID:$PROJECT_UID; echo CLUSTER_PROFILE_ID:$CLUSTER_PROFILE_UID; echo K8S_VERSION:$K8S_VERSION;&lt;br /&gt;
 &lt;br /&gt;
 #####################################&lt;br /&gt;
 # Pull Variables from the .arg File #&lt;br /&gt;
 #####################################&lt;br /&gt;
 export CUSTOM_TAG=`cat .arg | grep CUSTOM_TAG | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export IMAGE_REGISTRY=`cat .arg | grep IMAGE_REGISTRY | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_DISTRIBUTION=`cat .arg | grep OS_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_VERSION=`cat .arg | grep OS_VERSION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export K8S_DISTRIBUTION=`cat .arg | grep K8S_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export ISO_NAME=`cat .arg | grep ISO_NAME | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 #echo $CUSTOM_TAG; echo $IMAGE_REGISTRY; echo $OS_DISTRIBUTION; echo $OS_VERSION; echo $K8S_DISTRIBUTION; echo $ISO_NAME&lt;br /&gt;
 &lt;br /&gt;
 echo &#039;{&amp;quot;&#039;$K8S_DISTRIBUTION&#039;&amp;quot;:[&amp;quot;&#039;$K8S_VERSION&#039;&amp;quot;]}&#039; | jq &amp;gt; k8s_version.json; # Set only the version you need in the k8s_version.json. This needs to match the version in your profile.&lt;br /&gt;
 #cat k8s_version.json&lt;br /&gt;
 &lt;br /&gt;
 #########################################&lt;br /&gt;
 # Customize the Local-Ui (Not-Required) #&lt;br /&gt;
 #########################################&lt;br /&gt;
 mkdir -p local-ui/ui&lt;br /&gt;
 mkdir -p local-ui/app&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/customizations.json &amp;gt; local-ui/ui/customizations.json&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/index.html &amp;gt; local-ui/app/index.html&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/154x65.png &amp;gt; local-ui/ui/154x65.png&lt;br /&gt;
 tar cvf local-ui.tar local-ui&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Build the Provider Images #&lt;br /&gt;
 #############################&lt;br /&gt;
 # Pull the earthly image and retag so it does not re-pull everytime!&lt;br /&gt;
 docker pull us-docker.pkg.dev/palette-images/third-party/edge/earthly/earthly:v0.8.15&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/third-party/edge/earthly/earthly:v0.8.15 us-docker.pkg.dev/palette-images/third-party/edge/earthly/earthly:keep&lt;br /&gt;
 #sudo ./earthly.sh +build-provider-images &lt;br /&gt;
 sudo ./earthly.sh +build-provider-images-fips &lt;br /&gt;
&lt;br /&gt;
 #############################################&lt;br /&gt;
 # Push the Provider image to the Image Repo #&lt;br /&gt;
 #############################################&lt;br /&gt;
 docker push $IMAGE_REGISTRY/$OS_DISTRIBUTION:$K8S_DISTRIBUTION-$K8S_VERSION-$EDGE_CLI_VERSION-$CUSTOM_TAG &lt;br /&gt;
 &lt;br /&gt;
 ###########################################################&lt;br /&gt;
 # Export the Vertex Profile Definition and Content Bundle #&lt;br /&gt;
 ########################################################### &lt;br /&gt;
 palette-edge build --api-key $API_KEY \&lt;br /&gt;
 --project-id $PROJECT_UID \&lt;br /&gt;
 --cluster-profile-ids $CLUSTER_PROFILE_UID \&lt;br /&gt;
 --palette-endpoint $PALETTE_ENDPOINT \&lt;br /&gt;
 --outfile $CLUSTER_PROFILE_NAME-content-bundle \&lt;br /&gt;
 --include-palette-content \&lt;br /&gt;
 --cluster-definition-name $CLUSTER_PROFILE_NAME-cluster-definition \&lt;br /&gt;
 --cluster-definition-profile-ids $CLUSTER_PROFILE_UID &lt;br /&gt;
&lt;br /&gt;
 ############################&lt;br /&gt;
 # Build the All-In-One ISO #&lt;br /&gt;
 ############################&lt;br /&gt;
 sudo ./earthly.sh +iso&lt;br /&gt;
 &lt;br /&gt;
 #######################################&lt;br /&gt;
 # Move the ISO to my VMware Datastore #&lt;br /&gt;
 #######################################&lt;br /&gt;
 touch ~/CanvOS/build/$ISO_NAME.iso&lt;br /&gt;
 mv ~/CanvOS/build/$ISO_NAME.iso /nfs/0-ISOs/&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Building Provider Images ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-provider-images/&lt;br /&gt;
=== Build Content Bundle ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-content-bundle/&lt;br /&gt;
=== Create Installer ISO ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso/&lt;br /&gt;
=== Local-UI Custom Branding ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/theming/&lt;br /&gt;
=== Local-UI Custom Links ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/custom-link/&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=708</id>
		<title>SpectroCloud/AirGapEdgeISO</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=708"/>
		<updated>2025-04-17T17:33:24Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Build the All-In-One ISO File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Air-Gapped Edge ISO =&lt;br /&gt;
== Prerequisites==&lt;br /&gt;
=== DER&#039;s Lab Specific ===&lt;br /&gt;
 #######################################&lt;br /&gt;
 # Build the ISO on the JUMPBOX Server #&lt;br /&gt;
 #######################################&lt;br /&gt;
 ssh ders@172.16.84.34&lt;br /&gt;
 sudo su - &lt;br /&gt;
&lt;br /&gt;
 ##############################&lt;br /&gt;
 # Mount the VMware Datastore #&lt;br /&gt;
 ##############################&lt;br /&gt;
 echo &amp;quot;172.16.84.7:/data/hdd/0-ISOs    /nfs/0-ISOs             nfs defaults    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
 mkdir -p /nfs/0-ISOs&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
=== ISO Build Requirements ===&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Create Harbor Repo for the provider images #&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Name: airgap-edge&lt;br /&gt;
 # Type: public&lt;br /&gt;
&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # Update the .args file and BYOI Layer with the Following Info: #&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # BYOI VALUES:&lt;br /&gt;
 options:&lt;br /&gt;
   system.uri: &amp;lt;nowiki&amp;gt;&amp;quot;{{ .spectro.pack.edge-native-byoi.options.system.registry }}/{{ .spectro.pack.edge-native-byoi.options.system.repo }}:{{ .spectro.pack.edge-native-byoi.options.system.k8sDistribution }}-{{.spectro.system.kubernetes.version }}-{{ .spectro.pack.edge-native-byoi.options.system.peVersion }}-{{ .spectro.pack.edge-native-byoi.options.system.customTag }}&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   system.registry: harbor.dersllc.com/airgap-edge&lt;br /&gt;
   system.repo: ubuntu&lt;br /&gt;
   system.k8sDistribution: kubeadm&lt;br /&gt;
   system.osName: ubuntu&lt;br /&gt;
   system.peVersion: v4.6.3&lt;br /&gt;
   system.customTag: ders-edge&lt;br /&gt;
   system.osVersion: 22.04&lt;br /&gt;
 #&lt;br /&gt;
 # .ARG FILE:&lt;br /&gt;
 # CUSTOM_TAG=ders-edge&lt;br /&gt;
 # IMAGE_REGISTRY=harbor.dersllc.com/airgap-edge&lt;br /&gt;
 # OS_DISTRIBUTION=ubuntu&lt;br /&gt;
 # IMAGE_REPO=$OS_DISTRIBUTION&lt;br /&gt;
 # OS_VERSION=22.04&lt;br /&gt;
 # K8S_DISTRIBUTION=kubeadm&lt;br /&gt;
 # ISO_NAME=ders-edge-installer&lt;br /&gt;
 # ARCH=amd64&lt;br /&gt;
 # UPDATE_KERNEL=false&lt;br /&gt;
 # CLUSTERCONFIG=test-edge-iso-profile-cluster-definition.tgz&lt;br /&gt;
 # CIS_HARDENING=true&lt;br /&gt;
 # BASE_IMAGE=quay.io/kairos/ubuntu:24.04-core-amd64-generic-v3.0.14&lt;br /&gt;
&lt;br /&gt;
 # CHANGE THE FOLLOWING IN THE K8S LAYER&lt;br /&gt;
 # REMOVE: AlwaysPullImages&lt;br /&gt;
 # MAKE SURE YOU HAVE THE HARBOR-EDGE-NATIVE-CONFIG LAYER ADDED TO THE PROFILE&lt;br /&gt;
&lt;br /&gt;
== Build the All-In-One ISO File ==&lt;br /&gt;
 ######################&lt;br /&gt;
 # REQUIRED VARIABLES #&lt;br /&gt;
 ######################&lt;br /&gt;
 export OS=ubuntu-fips;                                                          #rhel, rhel-fips, ubuntu, ubuntu-fips&lt;br /&gt;
 export PALETTE_ENDPOINT=&amp;quot;paas.dersllc.com&amp;quot;;&lt;br /&gt;
 export API_KEY=&#039;Y2ZiYWZkNWRmN2E0YjAzYTFjYjYyOTBhMjk3YjZlMDg=&#039;;&lt;br /&gt;
 export CLUSTER_PROFILE_NAME=&amp;quot;test-edge-iso-$OS&amp;quot;&lt;br /&gt;
 export CLUSTER_PROFILE_VERSION=1.0.2&lt;br /&gt;
 export PROJECT_NAME=&amp;quot;all-in-one-iso&amp;quot;;&lt;br /&gt;
 export EDGE_CLI_VERSION=&amp;quot;v4.6.9&amp;quot;;                                             #https://docs.spectrocloud.com/component/#palette-edge-cli-versions&lt;br /&gt;
 &lt;br /&gt;
 #################################&lt;br /&gt;
 # Download the Palette-Edge CLI #&lt;br /&gt;
 #################################&lt;br /&gt;
 wget https://software.spectrocloud.com/stylus/$EDGE_CLI_VERSION/cli/linux/palette-edge&lt;br /&gt;
 chmod +x palette-edge&lt;br /&gt;
 mv palette-edge /usr/local/bin&lt;br /&gt;
 cd ~; rm -rf CanvOS&lt;br /&gt;
 &lt;br /&gt;
 ###################################&lt;br /&gt;
 # Use GIT to pull the CanvOS Repo #&lt;br /&gt;
 ###################################&lt;br /&gt;
 git clone https://github.com/spectrocloud/CanvOS.git&lt;br /&gt;
 cd CanvOS&lt;br /&gt;
 #export EDGE_CLI_VERSION=`git tag | sort --version-sort | tail -1`&lt;br /&gt;
 git checkout $EDGE_CLI_VERSION &lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the .arg and user-data file from gitlab #&lt;br /&gt;
 ################################################&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/.arg-$OS.yaml &amp;gt; .arg&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/user-data-$OS.yaml &amp;gt; user-data&lt;br /&gt;
 #sudo ./earthly.sh +validate-user-data &lt;br /&gt;
 &lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 # Get the Project and Cluster Profile IDs and K8S Version from the VERTEX API #&lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 export PROJECT_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/projects&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${PROJECT_NAME}&#039;&amp;quot;)&#039; | jq -r .metadata.uid`&lt;br /&gt;
 export CLUSTER_PROFILE_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY -H &#039;Projectuid: &#039;${PROJECT_UID} -H &amp;quot;Content-Type: application/json&amp;quot; | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;)&#039; | jq &#039;.spec | select(.version==&amp;quot;&#039;${CLUSTER_PROFILE_VERSION}&#039;&amp;quot;)&#039; | jq -r .published.uid`&lt;br /&gt;
 export K8S_VERSION=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY -H &#039;Projectuid: &#039;${PROJECT_UID} -H &amp;quot;Content-Type: application/json&amp;quot; | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;)&#039; | jq &#039;.spec | select(.version==&amp;quot;&#039;${CLUSTER_PROFILE_VERSION}&#039;&amp;quot;)&#039; | jq -r .published.packs[1].version`&lt;br /&gt;
 &lt;br /&gt;
 #echo PROJECT_UID:$PROJECT_UID; echo CLUSTER_PROFILE_ID:$CLUSTER_PROFILE_UID; echo K8S_VERSION:$K8S_VERSION;&lt;br /&gt;
 &lt;br /&gt;
 #####################################&lt;br /&gt;
 # Pull Variables from the .arg File #&lt;br /&gt;
 #####################################&lt;br /&gt;
 export CUSTOM_TAG=`cat .arg | grep CUSTOM_TAG | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export IMAGE_REGISTRY=`cat .arg | grep IMAGE_REGISTRY | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_DISTRIBUTION=`cat .arg | grep OS_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_VERSION=`cat .arg | grep OS_VERSION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export K8S_DISTRIBUTION=`cat .arg | grep K8S_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export ISO_NAME=`cat .arg | grep ISO_NAME | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 #echo $CUSTOM_TAG; echo $IMAGE_REGISTRY; echo $OS_DISTRIBUTION; echo $OS_VERSION; echo $K8S_DISTRIBUTION; echo $ISO_NAME&lt;br /&gt;
 &lt;br /&gt;
 echo &#039;{&amp;quot;&#039;$K8S_DISTRIBUTION&#039;&amp;quot;:[&amp;quot;&#039;$K8S_VERSION&#039;&amp;quot;]}&#039; | jq &amp;gt; k8s_version.json; # Set only the version you need in the k8s_version.json. This needs to match the version in your profile.&lt;br /&gt;
 #cat k8s_version.json&lt;br /&gt;
 &lt;br /&gt;
 #########################################&lt;br /&gt;
 # Customize the Local-Ui (Not-Required) #&lt;br /&gt;
 #########################################&lt;br /&gt;
 mkdir -p local-ui/ui&lt;br /&gt;
 mkdir -p local-ui/app&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/customizations.json &amp;gt; local-ui/ui/customizations.json&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/index.html &amp;gt; local-ui/app/index.html&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/154x65.png &amp;gt; local-ui/ui/154x65.png&lt;br /&gt;
 tar cvf local-ui.tar local-ui&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Build the Provider Images #&lt;br /&gt;
 #############################&lt;br /&gt;
 #sudo ./earthly.sh +build-provider-images &lt;br /&gt;
 sudo ./earthly.sh +build-provider-images-fips &lt;br /&gt;
&lt;br /&gt;
 #############################################&lt;br /&gt;
 # Push the Provider image to the Image Repo #&lt;br /&gt;
 #############################################&lt;br /&gt;
 docker push $IMAGE_REGISTRY/$OS_DISTRIBUTION:$K8S_DISTRIBUTION-$K8S_VERSION-$EDGE_CLI_VERSION-$CUSTOM_TAG &lt;br /&gt;
 &lt;br /&gt;
 ###########################################################&lt;br /&gt;
 # Export the Vertex Profile Definition and Content Bundle #&lt;br /&gt;
 ########################################################### &lt;br /&gt;
 palette-edge build --api-key $API_KEY \&lt;br /&gt;
 --project-id $PROJECT_UID \&lt;br /&gt;
 --cluster-profile-ids $CLUSTER_PROFILE_UID \&lt;br /&gt;
 --palette-endpoint $PALETTE_ENDPOINT \&lt;br /&gt;
 --outfile $CLUSTER_PROFILE_NAME-content-bundle \&lt;br /&gt;
 --include-palette-content \&lt;br /&gt;
 --cluster-definition-name $CLUSTER_PROFILE_NAME-cluster-definition \&lt;br /&gt;
 --cluster-definition-profile-ids $CLUSTER_PROFILE_UID &lt;br /&gt;
&lt;br /&gt;
 ############################&lt;br /&gt;
 # Build the All-In-One ISO #&lt;br /&gt;
 ############################&lt;br /&gt;
 sudo ./earthly.sh +iso&lt;br /&gt;
 &lt;br /&gt;
 #######################################&lt;br /&gt;
 # Move the ISO to my VMware Datastore #&lt;br /&gt;
 #######################################&lt;br /&gt;
 touch ~/CanvOS/build/$ISO_NAME.iso&lt;br /&gt;
 mv ~/CanvOS/build/$ISO_NAME.iso /nfs/0-ISOs/&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Building Provider Images ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-provider-images/&lt;br /&gt;
=== Build Content Bundle ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-content-bundle/&lt;br /&gt;
=== Create Installer ISO ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso/&lt;br /&gt;
=== Local-UI Custom Branding ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/theming/&lt;br /&gt;
=== Local-UI Custom Links ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/custom-link/&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=707</id>
		<title>SpectroCloud/AirGapEdgeISO</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=707"/>
		<updated>2025-04-17T17:33:09Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Build the All-In-One ISO File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Air-Gapped Edge ISO =&lt;br /&gt;
== Prerequisites==&lt;br /&gt;
=== DER&#039;s Lab Specific ===&lt;br /&gt;
 #######################################&lt;br /&gt;
 # Build the ISO on the JUMPBOX Server #&lt;br /&gt;
 #######################################&lt;br /&gt;
 ssh ders@172.16.84.34&lt;br /&gt;
 sudo su - &lt;br /&gt;
&lt;br /&gt;
 ##############################&lt;br /&gt;
 # Mount the VMware Datastore #&lt;br /&gt;
 ##############################&lt;br /&gt;
 echo &amp;quot;172.16.84.7:/data/hdd/0-ISOs    /nfs/0-ISOs             nfs defaults    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
 mkdir -p /nfs/0-ISOs&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
=== ISO Build Requirements ===&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Create Harbor Repo for the provider images #&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Name: airgap-edge&lt;br /&gt;
 # Type: public&lt;br /&gt;
&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # Update the .args file and BYOI Layer with the Following Info: #&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # BYOI VALUES:&lt;br /&gt;
 options:&lt;br /&gt;
   system.uri: &amp;lt;nowiki&amp;gt;&amp;quot;{{ .spectro.pack.edge-native-byoi.options.system.registry }}/{{ .spectro.pack.edge-native-byoi.options.system.repo }}:{{ .spectro.pack.edge-native-byoi.options.system.k8sDistribution }}-{{.spectro.system.kubernetes.version }}-{{ .spectro.pack.edge-native-byoi.options.system.peVersion }}-{{ .spectro.pack.edge-native-byoi.options.system.customTag }}&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   system.registry: harbor.dersllc.com/airgap-edge&lt;br /&gt;
   system.repo: ubuntu&lt;br /&gt;
   system.k8sDistribution: kubeadm&lt;br /&gt;
   system.osName: ubuntu&lt;br /&gt;
   system.peVersion: v4.6.3&lt;br /&gt;
   system.customTag: ders-edge&lt;br /&gt;
   system.osVersion: 22.04&lt;br /&gt;
 #&lt;br /&gt;
 # .ARG FILE:&lt;br /&gt;
 # CUSTOM_TAG=ders-edge&lt;br /&gt;
 # IMAGE_REGISTRY=harbor.dersllc.com/airgap-edge&lt;br /&gt;
 # OS_DISTRIBUTION=ubuntu&lt;br /&gt;
 # IMAGE_REPO=$OS_DISTRIBUTION&lt;br /&gt;
 # OS_VERSION=22.04&lt;br /&gt;
 # K8S_DISTRIBUTION=kubeadm&lt;br /&gt;
 # ISO_NAME=ders-edge-installer&lt;br /&gt;
 # ARCH=amd64&lt;br /&gt;
 # UPDATE_KERNEL=false&lt;br /&gt;
 # CLUSTERCONFIG=test-edge-iso-profile-cluster-definition.tgz&lt;br /&gt;
 # CIS_HARDENING=true&lt;br /&gt;
 # BASE_IMAGE=quay.io/kairos/ubuntu:24.04-core-amd64-generic-v3.0.14&lt;br /&gt;
&lt;br /&gt;
 # CHANGE THE FOLLOWING IN THE K8S LAYER&lt;br /&gt;
 # REMOVE: AlwaysPullImages&lt;br /&gt;
 # MAKE SURE YOU HAVE THE HARBOR-EDGE-NATIVE-CONFIG LAYER ADDED TO THE PROFILE&lt;br /&gt;
&lt;br /&gt;
== Build the All-In-One ISO File ==&lt;br /&gt;
 ######################&lt;br /&gt;
 # REQUIRED VARIABLES #&lt;br /&gt;
 ######################&lt;br /&gt;
 export OS=ubuntu-fips;                                                          #rhel, rhel-fips, ubuntu, ubuntu-fips&lt;br /&gt;
 export PALETTE_ENDPOINT=&amp;quot;paas.dersllc.com&amp;quot;;&lt;br /&gt;
 export API_KEY=&#039;Y2ZiYWZkNWRmN2E0YjAzYTFjYjYyOTBhMjk3YjZlMDg=&#039;;&lt;br /&gt;
 export CLUSTER_PROFILE_NAME=&amp;quot;test-edge-iso-$OS&amp;quot;&lt;br /&gt;
 export CLUSTER_PROFILE_VERSION=1.0.2&lt;br /&gt;
 export PROJECT_NAME=&amp;quot;all-in-one-iso&amp;quot;;&lt;br /&gt;
 export EDGE_CLI_VERSION=&amp;quot;v4.6.9&amp;quot;;                                             #https://docs.spectrocloud.com/component/#palette-edge-cli-versions&lt;br /&gt;
 &lt;br /&gt;
 #################################&lt;br /&gt;
 # Download the Palette-Edge CLI #&lt;br /&gt;
 #################################&lt;br /&gt;
 wget https://software.spectrocloud.com/stylus/$EDGE_CLI_VERSION/cli/linux/palette-edge&lt;br /&gt;
 chmod +x palette-edge&lt;br /&gt;
 mv palette-edge /usr/local/bin&lt;br /&gt;
 cd ~; rm -rf CanvOS&lt;br /&gt;
 &lt;br /&gt;
 ###################################&lt;br /&gt;
 # Use GIT to pull the CanvOS Repo #&lt;br /&gt;
 ###################################&lt;br /&gt;
 git clone https://github.com/spectrocloud/CanvOS.git&lt;br /&gt;
 cd CanvOS&lt;br /&gt;
 #export EDGE_CLI_VERSION=`git tag | sort --version-sort | tail -1`&lt;br /&gt;
 git checkout $EDGE_CLI_VERSION &lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the .arg and user-data file from gitlab #&lt;br /&gt;
 ################################################&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/.arg-$OS.yaml &amp;gt; .arg&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/user-data-$OS.yaml &amp;gt; user-data&lt;br /&gt;
 #sudo ./earthly.sh +validate-user-data &lt;br /&gt;
 &lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 # Get the Project and Cluster Profile IDs and K8S Version from the VERTEX API #&lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 export PROJECT_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/projects&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${PROJECT_NAME}&#039;&amp;quot;)&#039; | jq -r .metadata.uid`&lt;br /&gt;
 export CLUSTER_PROFILE_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY -H &#039;Projectuid: &#039;${PROJECT_UID} -H &amp;quot;Content-Type: application/json&amp;quot; | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;)&#039; | jq &#039;.spec | select(.version==&amp;quot;&#039;${CLUSTER_PROFILE_VERSION}&#039;&amp;quot;)&#039; | jq -r .published.uid`&lt;br /&gt;
 export K8S_VERSION=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY -H &#039;Projectuid: &#039;${PROJECT_UID} -H &amp;quot;Content-Type: application/j&lt;br /&gt;
son&amp;quot; | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;)&#039; | jq &#039;.spec | select(.version==&amp;quot;&#039;${CLUSTER_PROFILE_VERSION}&#039;&amp;quot;)&#039; | jq -r .published.packs[1].version`&lt;br /&gt;
 &lt;br /&gt;
 #echo PROJECT_UID:$PROJECT_UID; echo CLUSTER_PROFILE_ID:$CLUSTER_PROFILE_UID; echo K8S_VERSION:$K8S_VERSION;&lt;br /&gt;
 &lt;br /&gt;
 #####################################&lt;br /&gt;
 # Pull Variables from the .arg File #&lt;br /&gt;
 #####################################&lt;br /&gt;
 export CUSTOM_TAG=`cat .arg | grep CUSTOM_TAG | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export IMAGE_REGISTRY=`cat .arg | grep IMAGE_REGISTRY | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_DISTRIBUTION=`cat .arg | grep OS_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_VERSION=`cat .arg | grep OS_VERSION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export K8S_DISTRIBUTION=`cat .arg | grep K8S_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export ISO_NAME=`cat .arg | grep ISO_NAME | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 #echo $CUSTOM_TAG; echo $IMAGE_REGISTRY; echo $OS_DISTRIBUTION; echo $OS_VERSION; echo $K8S_DISTRIBUTION; echo $ISO_NAME&lt;br /&gt;
 &lt;br /&gt;
 echo &#039;{&amp;quot;&#039;$K8S_DISTRIBUTION&#039;&amp;quot;:[&amp;quot;&#039;$K8S_VERSION&#039;&amp;quot;]}&#039; | jq &amp;gt; k8s_version.json; # Set only the version you need in the k8s_version.json. This needs to match the version in your profile.&lt;br /&gt;
 #cat k8s_version.json&lt;br /&gt;
 &lt;br /&gt;
 #########################################&lt;br /&gt;
 # Customize the Local-Ui (Not-Required) #&lt;br /&gt;
 #########################################&lt;br /&gt;
 mkdir -p local-ui/ui&lt;br /&gt;
 mkdir -p local-ui/app&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/customizations.json &amp;gt; local-ui/ui/customizations.json&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/index.html &amp;gt; local-ui/app/index.html&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/154x65.png &amp;gt; local-ui/ui/154x65.png&lt;br /&gt;
 tar cvf local-ui.tar local-ui&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Build the Provider Images #&lt;br /&gt;
 #############################&lt;br /&gt;
 #sudo ./earthly.sh +build-provider-images &lt;br /&gt;
 sudo ./earthly.sh +build-provider-images-fips &lt;br /&gt;
&lt;br /&gt;
 #############################################&lt;br /&gt;
 # Push the Provider image to the Image Repo #&lt;br /&gt;
 #############################################&lt;br /&gt;
 docker push $IMAGE_REGISTRY/$OS_DISTRIBUTION:$K8S_DISTRIBUTION-$K8S_VERSION-$EDGE_CLI_VERSION-$CUSTOM_TAG &lt;br /&gt;
 &lt;br /&gt;
 ###########################################################&lt;br /&gt;
 # Export the Vertex Profile Definition and Content Bundle #&lt;br /&gt;
 ########################################################### &lt;br /&gt;
 palette-edge build --api-key $API_KEY \&lt;br /&gt;
 --project-id $PROJECT_UID \&lt;br /&gt;
 --cluster-profile-ids $CLUSTER_PROFILE_UID \&lt;br /&gt;
 --palette-endpoint $PALETTE_ENDPOINT \&lt;br /&gt;
 --outfile $CLUSTER_PROFILE_NAME-content-bundle \&lt;br /&gt;
 --include-palette-content \&lt;br /&gt;
 --cluster-definition-name $CLUSTER_PROFILE_NAME-cluster-definition \&lt;br /&gt;
 --cluster-definition-profile-ids $CLUSTER_PROFILE_UID &lt;br /&gt;
&lt;br /&gt;
 ############################&lt;br /&gt;
 # Build the All-In-One ISO #&lt;br /&gt;
 ############################&lt;br /&gt;
 sudo ./earthly.sh +iso&lt;br /&gt;
 &lt;br /&gt;
 #######################################&lt;br /&gt;
 # Move the ISO to my VMware Datastore #&lt;br /&gt;
 #######################################&lt;br /&gt;
 touch ~/CanvOS/build/$ISO_NAME.iso&lt;br /&gt;
 mv ~/CanvOS/build/$ISO_NAME.iso /nfs/0-ISOs/&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Building Provider Images ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-provider-images/&lt;br /&gt;
=== Build Content Bundle ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-content-bundle/&lt;br /&gt;
=== Create Installer ISO ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso/&lt;br /&gt;
=== Local-UI Custom Branding ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/theming/&lt;br /&gt;
=== Local-UI Custom Links ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/custom-link/&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=706</id>
		<title>SpectroCloud/AirGapEdgeISO</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=706"/>
		<updated>2025-04-17T17:15:25Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Build the All-In-One ISO File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Air-Gapped Edge ISO =&lt;br /&gt;
== Prerequisites==&lt;br /&gt;
=== DER&#039;s Lab Specific ===&lt;br /&gt;
 #######################################&lt;br /&gt;
 # Build the ISO on the JUMPBOX Server #&lt;br /&gt;
 #######################################&lt;br /&gt;
 ssh ders@172.16.84.34&lt;br /&gt;
 sudo su - &lt;br /&gt;
&lt;br /&gt;
 ##############################&lt;br /&gt;
 # Mount the VMware Datastore #&lt;br /&gt;
 ##############################&lt;br /&gt;
 echo &amp;quot;172.16.84.7:/data/hdd/0-ISOs    /nfs/0-ISOs             nfs defaults    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
 mkdir -p /nfs/0-ISOs&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
=== ISO Build Requirements ===&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Create Harbor Repo for the provider images #&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Name: airgap-edge&lt;br /&gt;
 # Type: public&lt;br /&gt;
&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # Update the .args file and BYOI Layer with the Following Info: #&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # BYOI VALUES:&lt;br /&gt;
 options:&lt;br /&gt;
   system.uri: &amp;lt;nowiki&amp;gt;&amp;quot;{{ .spectro.pack.edge-native-byoi.options.system.registry }}/{{ .spectro.pack.edge-native-byoi.options.system.repo }}:{{ .spectro.pack.edge-native-byoi.options.system.k8sDistribution }}-{{.spectro.system.kubernetes.version }}-{{ .spectro.pack.edge-native-byoi.options.system.peVersion }}-{{ .spectro.pack.edge-native-byoi.options.system.customTag }}&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   system.registry: harbor.dersllc.com/airgap-edge&lt;br /&gt;
   system.repo: ubuntu&lt;br /&gt;
   system.k8sDistribution: kubeadm&lt;br /&gt;
   system.osName: ubuntu&lt;br /&gt;
   system.peVersion: v4.6.3&lt;br /&gt;
   system.customTag: ders-edge&lt;br /&gt;
   system.osVersion: 22.04&lt;br /&gt;
 #&lt;br /&gt;
 # .ARG FILE:&lt;br /&gt;
 # CUSTOM_TAG=ders-edge&lt;br /&gt;
 # IMAGE_REGISTRY=harbor.dersllc.com/airgap-edge&lt;br /&gt;
 # OS_DISTRIBUTION=ubuntu&lt;br /&gt;
 # IMAGE_REPO=$OS_DISTRIBUTION&lt;br /&gt;
 # OS_VERSION=22.04&lt;br /&gt;
 # K8S_DISTRIBUTION=kubeadm&lt;br /&gt;
 # ISO_NAME=ders-edge-installer&lt;br /&gt;
 # ARCH=amd64&lt;br /&gt;
 # UPDATE_KERNEL=false&lt;br /&gt;
 # CLUSTERCONFIG=test-edge-iso-profile-cluster-definition.tgz&lt;br /&gt;
 # CIS_HARDENING=true&lt;br /&gt;
 # BASE_IMAGE=quay.io/kairos/ubuntu:24.04-core-amd64-generic-v3.0.14&lt;br /&gt;
&lt;br /&gt;
 # CHANGE THE FOLLOWING IN THE K8S LAYER&lt;br /&gt;
 # REMOVE: AlwaysPullImages&lt;br /&gt;
 # MAKE SURE YOU HAVE THE HARBOR-EDGE-NATIVE-CONFIG LAYER ADDED TO THE PROFILE&lt;br /&gt;
&lt;br /&gt;
== Build the All-In-One ISO File ==&lt;br /&gt;
 ######################&lt;br /&gt;
 # REQUIRED VARIABLES #&lt;br /&gt;
 ######################&lt;br /&gt;
 export OS=ubuntu-fips;                                                          #rhel, rhel-fips, ubuntu, ubuntu-fips&lt;br /&gt;
 export PALETTE_ENDPOINT=&amp;quot;paas.dersllc.com&amp;quot;;&lt;br /&gt;
 export API_KEY=&#039;Y2ZiYWZkNWRmN2E0YjAzYTFjYjYyOTBhMjk3YjZlMDg=&#039;;&lt;br /&gt;
 export CLUSTER_PROFILE_NAME=&amp;quot;test-edge-iso-$OS&amp;quot;&lt;br /&gt;
 export CLUSTER_PROFILE_VERSION=1.0.2&lt;br /&gt;
 export PROJECT_NAME=&amp;quot;all-in-one-iso&amp;quot;;&lt;br /&gt;
 export EDGE_CLI_VERSION=&amp;quot;v4.6.9&amp;quot;;                                             #https://docs.spectrocloud.com/component/#palette-edge-cli-versions&lt;br /&gt;
 &lt;br /&gt;
 #################################&lt;br /&gt;
 # Download the Palette-Edge CLI #&lt;br /&gt;
 #################################&lt;br /&gt;
 wget https://software.spectrocloud.com/stylus/$EDGE_CLI_VERSION/cli/linux/palette-edge&lt;br /&gt;
 chmod +x palette-edge&lt;br /&gt;
 mv palette-edge /usr/local/bin&lt;br /&gt;
 cd ~; rm -rf CanvOS&lt;br /&gt;
 &lt;br /&gt;
 ###################################&lt;br /&gt;
 # Use GIT to pull the CanvOS Repo #&lt;br /&gt;
 ###################################&lt;br /&gt;
 git clone https://github.com/spectrocloud/CanvOS.git&lt;br /&gt;
 cd CanvOS&lt;br /&gt;
 #export EDGE_CLI_VERSION=`git tag | sort --version-sort | tail -1`&lt;br /&gt;
 git checkout $EDGE_CLI_VERSION &lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the .arg and user-data file from gitlab #&lt;br /&gt;
 ################################################&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/.arg-$OS.yaml &amp;gt; .arg&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/user-data-$OS.yaml &amp;gt; user-data&lt;br /&gt;
 #sudo ./earthly.sh +validate-user-data &lt;br /&gt;
 &lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 # Get the Project and Cluster Profile IDs and K8S Version from the VERTEX API #&lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 export PROJECT_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/projects&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${PROJECT_NAME}&#039;&amp;quot;)&#039; | jq -r .metadata.uid`&lt;br /&gt;
 export CLUSTER_PROFILE_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/dashboard/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY -H &#039;Projectuid: &#039;${PROJECT_UID} -H &amp;quot;Content-Type: application/json&amp;quot; -d &#039;{&amp;quot;filter&amp;quot;:{&amp;quot;environment&amp;quot;:[],&amp;quot;profileName&amp;quot;:{&amp;quot;contains&amp;quot;:&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;},&amp;quot;profileType&amp;quot;:[&amp;quot;cluster&amp;quot;,&amp;quot;infra&amp;quot;,&amp;quot;add-on&amp;quot;]},&amp;quot;sort&amp;quot;:[{&amp;quot;field&amp;quot;:&amp;quot;lastModifiedTimestamp&amp;quot;,&amp;quot;order&amp;quot;:&amp;quot;desc&amp;quot;}]}&#039; | jq &#039;.items[]&#039; | jq -r &#039;.metadata.uid&#039;`&lt;br /&gt;
 export K8S_VERSION=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/dashboard/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY -H &#039;Projectuid: &#039;${PROJECT_UID} -H &amp;quot;Content-Type: application/json&amp;quot; -d &#039;{&amp;quot;filter&amp;quot;:{&amp;quot;environment&amp;quot;:[],&amp;quot;profileName&amp;quot;:{&amp;quot;contains&amp;quot;:&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;},&amp;quot;profileType&amp;quot;:[&amp;quot;cluster&amp;quot;,&amp;quot;infra&amp;quot;,&amp;quot;add-on&amp;quot;]},&amp;quot;sort&amp;quot;:[{&amp;quot;field&amp;quot;:&amp;quot;lastModifiedTimestamp&amp;quot;,&amp;quot;order&amp;quot;:&amp;quot;desc&amp;quot;}]}&#039; | jq &#039;.items[]&#039; | jq -r .specSummary.published.packs[1].tag`&lt;br /&gt;
 &lt;br /&gt;
 #echo PROJECT_UID:$PROJECT_UID; echo CLUSTER_PROFILE_ID:$CLUSTER_PROFILE_UID; echo K8S_VERSION:$K8S_VERSION;&lt;br /&gt;
 &lt;br /&gt;
 #####################################&lt;br /&gt;
 # Pull Variables from the .arg File #&lt;br /&gt;
 #####################################&lt;br /&gt;
 export CUSTOM_TAG=`cat .arg | grep CUSTOM_TAG | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export IMAGE_REGISTRY=`cat .arg | grep IMAGE_REGISTRY | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_DISTRIBUTION=`cat .arg | grep OS_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_VERSION=`cat .arg | grep OS_VERSION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export K8S_DISTRIBUTION=`cat .arg | grep K8S_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export ISO_NAME=`cat .arg | grep ISO_NAME | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 #echo $CUSTOM_TAG; echo $IMAGE_REGISTRY; echo $OS_DISTRIBUTION; echo $OS_VERSION; echo $K8S_DISTRIBUTION; echo $ISO_NAME&lt;br /&gt;
 &lt;br /&gt;
 echo &#039;{&amp;quot;&#039;$K8S_DISTRIBUTION&#039;&amp;quot;:[&amp;quot;&#039;$K8S_VERSION&#039;&amp;quot;]}&#039; | jq &amp;gt; k8s_version.json; # Set only the version you need in the k8s_version.json. This needs to match the version in your profile.&lt;br /&gt;
 #cat k8s_version.json&lt;br /&gt;
 &lt;br /&gt;
 #########################################&lt;br /&gt;
 # Customize the Local-Ui (Not-Required) #&lt;br /&gt;
 #########################################&lt;br /&gt;
 mkdir -p local-ui/ui&lt;br /&gt;
 mkdir -p local-ui/app&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/customizations.json &amp;gt; local-ui/ui/customizations.json&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/index.html &amp;gt; local-ui/app/index.html&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/154x65.png &amp;gt; local-ui/ui/154x65.png&lt;br /&gt;
 tar cvf local-ui.tar local-ui&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Build the Provider Images #&lt;br /&gt;
 #############################&lt;br /&gt;
 #sudo ./earthly.sh +build-provider-images &lt;br /&gt;
 sudo ./earthly.sh +build-provider-images-fips &lt;br /&gt;
&lt;br /&gt;
 #############################################&lt;br /&gt;
 # Push the Provider image to the Image Repo #&lt;br /&gt;
 #############################################&lt;br /&gt;
 docker push $IMAGE_REGISTRY/$OS_DISTRIBUTION:$K8S_DISTRIBUTION-$K8S_VERSION-$EDGE_CLI_VERSION-$CUSTOM_TAG &lt;br /&gt;
 &lt;br /&gt;
 ###########################################################&lt;br /&gt;
 # Export the Vertex Profile Definition and Content Bundle #&lt;br /&gt;
 ########################################################### &lt;br /&gt;
 palette-edge build --api-key $API_KEY \&lt;br /&gt;
 --project-id $PROJECT_UID \&lt;br /&gt;
 --cluster-profile-ids $CLUSTER_PROFILE_UID \&lt;br /&gt;
 --palette-endpoint $PALETTE_ENDPOINT \&lt;br /&gt;
 --outfile $CLUSTER_PROFILE_NAME-content-bundle \&lt;br /&gt;
 --include-palette-content \&lt;br /&gt;
 --cluster-definition-name $CLUSTER_PROFILE_NAME-cluster-definition \&lt;br /&gt;
 --cluster-definition-profile-ids $CLUSTER_PROFILE_UID &lt;br /&gt;
&lt;br /&gt;
 ############################&lt;br /&gt;
 # Build the All-In-One ISO #&lt;br /&gt;
 ############################&lt;br /&gt;
 sudo ./earthly.sh +iso&lt;br /&gt;
 &lt;br /&gt;
 #######################################&lt;br /&gt;
 # Move the ISO to my VMware Datastore #&lt;br /&gt;
 #######################################&lt;br /&gt;
 touch ~/CanvOS/build/$ISO_NAME.iso&lt;br /&gt;
 mv ~/CanvOS/build/$ISO_NAME.iso /nfs/0-ISOs/&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Building Provider Images ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-provider-images/&lt;br /&gt;
=== Build Content Bundle ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-content-bundle/&lt;br /&gt;
=== Create Installer ISO ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso/&lt;br /&gt;
=== Local-UI Custom Branding ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/theming/&lt;br /&gt;
=== Local-UI Custom Links ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/custom-link/&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=705</id>
		<title>SpectroCloud/AirGapEdgeISO</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=705"/>
		<updated>2025-04-17T17:13:48Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Build the All-In-One ISO File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Air-Gapped Edge ISO =&lt;br /&gt;
== Prerequisites==&lt;br /&gt;
=== DER&#039;s Lab Specific ===&lt;br /&gt;
 #######################################&lt;br /&gt;
 # Build the ISO on the JUMPBOX Server #&lt;br /&gt;
 #######################################&lt;br /&gt;
 ssh ders@172.16.84.34&lt;br /&gt;
 sudo su - &lt;br /&gt;
&lt;br /&gt;
 ##############################&lt;br /&gt;
 # Mount the VMware Datastore #&lt;br /&gt;
 ##############################&lt;br /&gt;
 echo &amp;quot;172.16.84.7:/data/hdd/0-ISOs    /nfs/0-ISOs             nfs defaults    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
 mkdir -p /nfs/0-ISOs&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
=== ISO Build Requirements ===&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Create Harbor Repo for the provider images #&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Name: airgap-edge&lt;br /&gt;
 # Type: public&lt;br /&gt;
&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # Update the .args file and BYOI Layer with the Following Info: #&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # BYOI VALUES:&lt;br /&gt;
 options:&lt;br /&gt;
   system.uri: &amp;lt;nowiki&amp;gt;&amp;quot;{{ .spectro.pack.edge-native-byoi.options.system.registry }}/{{ .spectro.pack.edge-native-byoi.options.system.repo }}:{{ .spectro.pack.edge-native-byoi.options.system.k8sDistribution }}-{{.spectro.system.kubernetes.version }}-{{ .spectro.pack.edge-native-byoi.options.system.peVersion }}-{{ .spectro.pack.edge-native-byoi.options.system.customTag }}&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   system.registry: harbor.dersllc.com/airgap-edge&lt;br /&gt;
   system.repo: ubuntu&lt;br /&gt;
   system.k8sDistribution: kubeadm&lt;br /&gt;
   system.osName: ubuntu&lt;br /&gt;
   system.peVersion: v4.6.3&lt;br /&gt;
   system.customTag: ders-edge&lt;br /&gt;
   system.osVersion: 22.04&lt;br /&gt;
 #&lt;br /&gt;
 # .ARG FILE:&lt;br /&gt;
 # CUSTOM_TAG=ders-edge&lt;br /&gt;
 # IMAGE_REGISTRY=harbor.dersllc.com/airgap-edge&lt;br /&gt;
 # OS_DISTRIBUTION=ubuntu&lt;br /&gt;
 # IMAGE_REPO=$OS_DISTRIBUTION&lt;br /&gt;
 # OS_VERSION=22.04&lt;br /&gt;
 # K8S_DISTRIBUTION=kubeadm&lt;br /&gt;
 # ISO_NAME=ders-edge-installer&lt;br /&gt;
 # ARCH=amd64&lt;br /&gt;
 # UPDATE_KERNEL=false&lt;br /&gt;
 # CLUSTERCONFIG=test-edge-iso-profile-cluster-definition.tgz&lt;br /&gt;
 # CIS_HARDENING=true&lt;br /&gt;
 # BASE_IMAGE=quay.io/kairos/ubuntu:24.04-core-amd64-generic-v3.0.14&lt;br /&gt;
&lt;br /&gt;
 # CHANGE THE FOLLOWING IN THE K8S LAYER&lt;br /&gt;
 # REMOVE: AlwaysPullImages&lt;br /&gt;
 # MAKE SURE YOU HAVE THE HARBOR-EDGE-NATIVE-CONFIG LAYER ADDED TO THE PROFILE&lt;br /&gt;
&lt;br /&gt;
== Build the All-In-One ISO File ==&lt;br /&gt;
 ######################&lt;br /&gt;
 # REQUIRED VARIABLES #&lt;br /&gt;
 ######################&lt;br /&gt;
 export OS=ubuntu-fips;                                                          #rhel, rhel-fips, ubuntu, ubuntu-fips&lt;br /&gt;
 export PALETTE_ENDPOINT=&amp;quot;paas.dersllc.com&amp;quot;;&lt;br /&gt;
 export API_KEY=&#039;Y2ZiYWZkNWRmN2E0YjAzYTFjYjYyOTBhMjk3YjZlMDg=&#039;;&lt;br /&gt;
 export CLUSTER_PROFILE_NAME=&amp;quot;test-edge-iso-$OS&amp;quot;&lt;br /&gt;
 export CLUSTER_PROFILE_VERSION=1.0.2&lt;br /&gt;
 export PROJECT_NAME=&amp;quot;all-in-one-iso&amp;quot;;&lt;br /&gt;
 export EDGE_CLI_VERSION=&amp;quot;v4.6.9&amp;quot;;                                             #https://docs.spectrocloud.com/component/#palette-edge-cli-versions&lt;br /&gt;
 &lt;br /&gt;
 #################################&lt;br /&gt;
 # Download the Palette-Edge CLI #&lt;br /&gt;
 #################################&lt;br /&gt;
 wget https://software.spectrocloud.com/stylus/$EDGE_CLI_VERSION/cli/linux/palette-edge&lt;br /&gt;
 chmod +x palette-edge&lt;br /&gt;
 mv palette-edge /usr/local/bin&lt;br /&gt;
 cd ~; rm -rf CanvOS&lt;br /&gt;
 &lt;br /&gt;
 ###################################&lt;br /&gt;
 # Use GIT to pull the CanvOS Repo #&lt;br /&gt;
 ###################################&lt;br /&gt;
 git clone https://github.com/spectrocloud/CanvOS.git&lt;br /&gt;
 cd CanvOS&lt;br /&gt;
 #export EDGE_CLI_VERSION=`git tag | sort --version-sort | tail -1`&lt;br /&gt;
 git checkout $EDGE_CLI_VERSION &lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the .arg and user-data file from gitlab #&lt;br /&gt;
 ################################################&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/.arg-$OS.yaml &amp;gt; .arg&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/user-data-$OS.yaml &amp;gt; user-data&lt;br /&gt;
 #sudo ./earthly.sh +validate-user-data &lt;br /&gt;
 &lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 # Get the Project and Cluster Profile IDs and K8S Version from the VERTEX API #&lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 export PROJECT_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/projects&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${PROJECT_NAME}&#039;&amp;quot;)&#039; | jq -r .metadata.uid`&lt;br /&gt;
 export CLUSTER_PROFILE_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/dashboard/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY -H &#039;Projectuid: &#039;${PROJECT_UID} -H &amp;quot;Content-Type: application/json&amp;quot; -d &#039;{&amp;quot;filter&amp;quot;:{&amp;quot;environment&amp;quot;:[],&amp;quot;profileName&amp;quot;:{&amp;quot;contains&amp;quot;:&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;},&amp;quot;profileType&amp;quot;:[&amp;quot;cluster&amp;quot;,&amp;quot;infra&amp;quot;,&amp;quot;add-on&amp;quot;]},&amp;quot;sort&amp;quot;:[{&amp;quot;field&amp;quot;:&amp;quot;lastModifiedTimestamp&amp;quot;,&amp;quot;order&amp;quot;:&amp;quot;desc&amp;quot;}]}&#039; | jq &#039;.items[]&#039; | jq -r &#039;.metadata.uid&#039;`&lt;br /&gt;
 export K8S_VERSION=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/dashboard/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY -H &#039;Projectuid: &#039;${PROJECT_UID} -H &amp;quot;Content-Type: application/json&amp;quot; -d &#039;{&amp;quot;filter&amp;quot;:{&amp;quot;environment&amp;quot;:[],&amp;quot;profileName&amp;quot;:{&amp;quot;contains&amp;quot;:&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;},&amp;quot;profileType&amp;quot;:[&amp;quot;cluster&amp;quot;,&amp;quot;infra&amp;quot;,&amp;quot;add-on&amp;quot;]},&amp;quot;sort&amp;quot;:[{&amp;quot;field&amp;quot;:&amp;quot;lastModifiedTimestamp&amp;quot;,&amp;quot;order&amp;quot;:&amp;quot;desc&amp;quot;}]}&#039; | jq &#039;.items[]&#039; | jq -r .specSummary.published.packs[1].tag`&lt;br /&gt;
 &lt;br /&gt;
 #echo PROJECT_UID:        $PROJECT_UID; echo CLUSTER_PROFILE_ID:$CLUSTER_PROFILE_UID; echo K8S_VERSION:       $K8S_VERSION;&lt;br /&gt;
 &lt;br /&gt;
 #####################################&lt;br /&gt;
 # Pull Variables from the .arg File #&lt;br /&gt;
 #####################################&lt;br /&gt;
 export CUSTOM_TAG=`cat .arg | grep CUSTOM_TAG | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export IMAGE_REGISTRY=`cat .arg | grep IMAGE_REGISTRY | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_DISTRIBUTION=`cat .arg | grep OS_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_VERSION=`cat .arg | grep OS_VERSION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export K8S_DISTRIBUTION=`cat .arg | grep K8S_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export ISO_NAME=`cat .arg | grep ISO_NAME | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 #echo $CUSTOM_TAG; echo $IMAGE_REGISTRY; echo $OS_DISTRIBUTION; echo $OS_VERSION; echo $K8S_DISTRIBUTION; echo $ISO_NAME&lt;br /&gt;
 &lt;br /&gt;
 echo &#039;{&amp;quot;&#039;$K8S_DISTRIBUTION&#039;&amp;quot;:[&amp;quot;&#039;$K8S_VERSION&#039;&amp;quot;]}&#039; | jq &amp;gt; k8s_version.json; # Set only the version you need in the k8s_version.json. This needs to match the version in your profile.&lt;br /&gt;
 #cat k8s_version.json&lt;br /&gt;
 &lt;br /&gt;
 #########################################&lt;br /&gt;
 # Customize the Local-Ui (Not-Required) #&lt;br /&gt;
 #########################################&lt;br /&gt;
 mkdir -p local-ui/ui&lt;br /&gt;
 mkdir -p local-ui/app&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/customizations.json &amp;gt; local-ui/ui/customizations.json&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/index.html &amp;gt; local-ui/app/index.html&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/154x65.png &amp;gt; local-ui/ui/154x65.png&lt;br /&gt;
 tar cvf local-ui.tar local-ui&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Build the Provider Images #&lt;br /&gt;
 #############################&lt;br /&gt;
 #sudo ./earthly.sh +build-provider-images &lt;br /&gt;
 sudo ./earthly.sh +build-provider-images-fips &lt;br /&gt;
&lt;br /&gt;
 #############################################&lt;br /&gt;
 # Push the Provider image to the Image Repo #&lt;br /&gt;
 #############################################&lt;br /&gt;
 docker push $IMAGE_REGISTRY/$OS_DISTRIBUTION:$K8S_DISTRIBUTION-$K8S_VERSION-$EDGE_CLI_VERSION-$CUSTOM_TAG &lt;br /&gt;
 &lt;br /&gt;
 ###########################################################&lt;br /&gt;
 # Export the Vertex Profile Definition and Content Bundle #&lt;br /&gt;
 ########################################################### &lt;br /&gt;
 palette-edge build --api-key $API_KEY \&lt;br /&gt;
 --project-id $PROJECT_UID \&lt;br /&gt;
 --cluster-profile-ids $CLUSTER_PROFILE_UID \&lt;br /&gt;
 --palette-endpoint $PALETTE_ENDPOINT \&lt;br /&gt;
 --outfile $CLUSTER_PROFILE_NAME-content-bundle \&lt;br /&gt;
 --include-palette-content \&lt;br /&gt;
 --cluster-definition-name $CLUSTER_PROFILE_NAME-cluster-definition \&lt;br /&gt;
 --cluster-definition-profile-ids $CLUSTER_PROFILE_UID &lt;br /&gt;
&lt;br /&gt;
 ############################&lt;br /&gt;
 # Build the All-In-One ISO #&lt;br /&gt;
 ############################&lt;br /&gt;
 sudo ./earthly.sh +iso&lt;br /&gt;
 &lt;br /&gt;
 #######################################&lt;br /&gt;
 # Move the ISO to my VMware Datastore #&lt;br /&gt;
 #######################################&lt;br /&gt;
 touch ~/CanvOS/build/$ISO_NAME.iso&lt;br /&gt;
 mv ~/CanvOS/build/$ISO_NAME.iso /nfs/0-ISOs/&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Building Provider Images ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-provider-images/&lt;br /&gt;
=== Build Content Bundle ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-content-bundle/&lt;br /&gt;
=== Create Installer ISO ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso/&lt;br /&gt;
=== Local-UI Custom Branding ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/theming/&lt;br /&gt;
=== Local-UI Custom Links ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/custom-link/&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=704</id>
		<title>SpectroCloud/AirGapEdgeISO</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=704"/>
		<updated>2025-04-17T17:12:36Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Build the All-In-One ISO File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Air-Gapped Edge ISO =&lt;br /&gt;
== Prerequisites==&lt;br /&gt;
=== DER&#039;s Lab Specific ===&lt;br /&gt;
 #######################################&lt;br /&gt;
 # Build the ISO on the JUMPBOX Server #&lt;br /&gt;
 #######################################&lt;br /&gt;
 ssh ders@172.16.84.34&lt;br /&gt;
 sudo su - &lt;br /&gt;
&lt;br /&gt;
 ##############################&lt;br /&gt;
 # Mount the VMware Datastore #&lt;br /&gt;
 ##############################&lt;br /&gt;
 echo &amp;quot;172.16.84.7:/data/hdd/0-ISOs    /nfs/0-ISOs             nfs defaults    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
 mkdir -p /nfs/0-ISOs&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
=== ISO Build Requirements ===&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Create Harbor Repo for the provider images #&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Name: airgap-edge&lt;br /&gt;
 # Type: public&lt;br /&gt;
&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # Update the .args file and BYOI Layer with the Following Info: #&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # BYOI VALUES:&lt;br /&gt;
 options:&lt;br /&gt;
   system.uri: &amp;lt;nowiki&amp;gt;&amp;quot;{{ .spectro.pack.edge-native-byoi.options.system.registry }}/{{ .spectro.pack.edge-native-byoi.options.system.repo }}:{{ .spectro.pack.edge-native-byoi.options.system.k8sDistribution }}-{{.spectro.system.kubernetes.version }}-{{ .spectro.pack.edge-native-byoi.options.system.peVersion }}-{{ .spectro.pack.edge-native-byoi.options.system.customTag }}&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   system.registry: harbor.dersllc.com/airgap-edge&lt;br /&gt;
   system.repo: ubuntu&lt;br /&gt;
   system.k8sDistribution: kubeadm&lt;br /&gt;
   system.osName: ubuntu&lt;br /&gt;
   system.peVersion: v4.6.3&lt;br /&gt;
   system.customTag: ders-edge&lt;br /&gt;
   system.osVersion: 22.04&lt;br /&gt;
 #&lt;br /&gt;
 # .ARG FILE:&lt;br /&gt;
 # CUSTOM_TAG=ders-edge&lt;br /&gt;
 # IMAGE_REGISTRY=harbor.dersllc.com/airgap-edge&lt;br /&gt;
 # OS_DISTRIBUTION=ubuntu&lt;br /&gt;
 # IMAGE_REPO=$OS_DISTRIBUTION&lt;br /&gt;
 # OS_VERSION=22.04&lt;br /&gt;
 # K8S_DISTRIBUTION=kubeadm&lt;br /&gt;
 # ISO_NAME=ders-edge-installer&lt;br /&gt;
 # ARCH=amd64&lt;br /&gt;
 # UPDATE_KERNEL=false&lt;br /&gt;
 # CLUSTERCONFIG=test-edge-iso-profile-cluster-definition.tgz&lt;br /&gt;
 # CIS_HARDENING=true&lt;br /&gt;
 # BASE_IMAGE=quay.io/kairos/ubuntu:24.04-core-amd64-generic-v3.0.14&lt;br /&gt;
&lt;br /&gt;
 # CHANGE THE FOLLOWING IN THE K8S LAYER&lt;br /&gt;
 # REMOVE: AlwaysPullImages&lt;br /&gt;
 # MAKE SURE YOU HAVE THE HARBOR-EDGE-NATIVE-CONFIG LAYER ADDED TO THE PROFILE&lt;br /&gt;
&lt;br /&gt;
== Build the All-In-One ISO File ==&lt;br /&gt;
 ######################&lt;br /&gt;
 # REQUIRED VARIABLES #&lt;br /&gt;
 ######################&lt;br /&gt;
 export OS=ubuntu-fips;                                                          #rhel, rhel-fips, ubuntu, ubuntu-fips&lt;br /&gt;
 export PALETTE_ENDPOINT=&amp;quot;paas.dersllc.com&amp;quot;;&lt;br /&gt;
 export API_KEY=&#039;Y2ZiYWZkNWRmN2E0YjAzYTFjYjYyOTBhMjk3YjZlMDg=&#039;;&lt;br /&gt;
 export CLUSTER_PROFILE_NAME=&amp;quot;test-edge-iso-$OS&amp;quot;&lt;br /&gt;
 export CLUSTER_PROFILE_VERSION=1.0.2&lt;br /&gt;
 export PROJECT_NAME=&amp;quot;all-in-one-iso&amp;quot;;&lt;br /&gt;
 export EDGE_CLI_VERSION=&amp;quot;v4.6.9&amp;quot;;                                             #https://docs.spectrocloud.com/component/#palette-edge-cli-versions&lt;br /&gt;
 &lt;br /&gt;
 #################################&lt;br /&gt;
 # Download the Palette-Edge CLI #&lt;br /&gt;
 #################################&lt;br /&gt;
 wget https://software.spectrocloud.com/stylus/$EDGE_CLI_VERSION/cli/linux/palette-edge&lt;br /&gt;
 chmod +x palette-edge&lt;br /&gt;
 mv palette-edge /usr/local/bin&lt;br /&gt;
 cd ~; rm -rf CanvOS&lt;br /&gt;
 &lt;br /&gt;
 ###################################&lt;br /&gt;
 # Use GIT to pull the CanvOS Repo #&lt;br /&gt;
 ###################################&lt;br /&gt;
 git clone https://github.com/spectrocloud/CanvOS.git&lt;br /&gt;
 cd CanvOS&lt;br /&gt;
 #export EDGE_CLI_VERSION=`git tag | sort --version-sort | tail -1`&lt;br /&gt;
 git checkout $EDGE_CLI_VERSION &lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the .arg and user-data file from gitlab #&lt;br /&gt;
 ################################################&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/.arg-$OS.yaml &amp;gt; .arg&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/user-data-$OS.yaml &amp;gt; user-data&lt;br /&gt;
 #sudo ./earthly.sh +validate-user-data &lt;br /&gt;
 &lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 # Get the Project and Cluster Profile IDs and K8S Version from the VERTEX API #&lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 export PROJECT_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/projects&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${PROJECT_NAME}&#039;&amp;quot;)&#039; | jq -r .metadata.uid`&lt;br /&gt;
 export CLUSTER_PROFILE_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/dashboard/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY -H &#039;Projectuid: &#039;${PROJECT_UID} -H &amp;quot;Content-Type: application/json&amp;quot; -d &#039;{&amp;quot;filter&amp;quot;:{&amp;quot;environment&amp;quot;:[],&amp;quot;profileName&amp;quot;:{&amp;quot;contains&amp;quot;:&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;},&amp;quot;profileType&amp;quot;:[&amp;quot;cluster&amp;quot;,&amp;quot;infra&amp;quot;,&amp;quot;add-on&amp;quot;]},&amp;quot;sort&amp;quot;:[{&amp;quot;field&amp;quot;:&amp;quot;lastModifiedTimestamp&amp;quot;,&amp;quot;order&amp;quot;:&amp;quot;desc&amp;quot;}]}&#039; | jq &#039;.items[]&#039; | jq -r &#039;.metadata.uid&#039;`&lt;br /&gt;
 export K8S_VERSION=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/dashboard/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY -H &#039;Projectuid: &#039;${PROJECT_UID} -H &amp;quot;Content-Type: application/json&amp;quot; -d &#039;{&amp;quot;filter&amp;quot;:{&amp;quot;environment&amp;quot;:[],&amp;quot;profileName&amp;quot;:{&amp;quot;contains&amp;quot;:&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;},&amp;quot;profileType&amp;quot;:[&amp;quot;cluster&amp;quot;,&amp;quot;infra&amp;quot;,&amp;quot;add-on&amp;quot;]},&amp;quot;sort&amp;quot;:[{&amp;quot;field&amp;quot;:&amp;quot;lastModifiedTimestamp&amp;quot;,&amp;quot;order&amp;quot;:&amp;quot;desc&amp;quot;}]}&#039; | jq &#039;.items[]&#039; | jq -r .specSummary.published.packs[1].tag`&lt;br /&gt;
 &lt;br /&gt;
 #echo PROJECT_UID:$PROJECT_UID; echo CLUSTER_PROFILE_ID:$CLUSTER_PROFILE_UID; echo K*S_VERSION:$K8S_VERSION;&lt;br /&gt;
 &lt;br /&gt;
 #####################################&lt;br /&gt;
 # Pull Variables from the .arg File #&lt;br /&gt;
 #####################################&lt;br /&gt;
 export CUSTOM_TAG=`cat .arg | grep CUSTOM_TAG | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export IMAGE_REGISTRY=`cat .arg | grep IMAGE_REGISTRY | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_DISTRIBUTION=`cat .arg | grep OS_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_VERSION=`cat .arg | grep OS_VERSION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export K8S_DISTRIBUTION=`cat .arg | grep K8S_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export ISO_NAME=`cat .arg | grep ISO_NAME | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 #echo $CUSTOM_TAG; echo $IMAGE_REGISTRY; echo $OS_DISTRIBUTION; echo $OS_VERSION; echo $K8S_DISTRIBUTION; echo $ISO_NAME&lt;br /&gt;
 &lt;br /&gt;
 echo &#039;{&amp;quot;&#039;$K8S_DISTRIBUTION&#039;&amp;quot;:[&amp;quot;&#039;$K8S_VERSION&#039;&amp;quot;]}&#039; | jq &amp;gt; k8s_version.json; # Set only the version you need in the k8s_version.json. This needs to match the version in your profile.&lt;br /&gt;
 #cat k8s_version.json&lt;br /&gt;
 &lt;br /&gt;
 #########################################&lt;br /&gt;
 # Customize the Local-Ui (Not-Required) #&lt;br /&gt;
 #########################################&lt;br /&gt;
 mkdir -p local-ui/ui&lt;br /&gt;
 mkdir -p local-ui/app&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/customizations.json &amp;gt; local-ui/ui/customizations.json&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/index.html &amp;gt; local-ui/app/index.html&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/154x65.png &amp;gt; local-ui/ui/154x65.png&lt;br /&gt;
 tar cvf local-ui.tar local-ui&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Build the Provider Images #&lt;br /&gt;
 #############################&lt;br /&gt;
 #sudo ./earthly.sh +build-provider-images &lt;br /&gt;
 sudo ./earthly.sh +build-provider-images-fips &lt;br /&gt;
&lt;br /&gt;
 #############################################&lt;br /&gt;
 # Push the Provider image to the Image Repo #&lt;br /&gt;
 #############################################&lt;br /&gt;
 docker push $IMAGE_REGISTRY/$OS_DISTRIBUTION:$K8S_DISTRIBUTION-$K8S_VERSION-$EDGE_CLI_VERSION-$CUSTOM_TAG &lt;br /&gt;
 &lt;br /&gt;
 ###########################################################&lt;br /&gt;
 # Export the Vertex Profile Definition and Content Bundle #&lt;br /&gt;
 ########################################################### &lt;br /&gt;
 palette-edge build --api-key $API_KEY \&lt;br /&gt;
 --project-id $PROJECT_UID \&lt;br /&gt;
 --cluster-profile-ids $CLUSTER_PROFILE_UID \&lt;br /&gt;
 --palette-endpoint $PALETTE_ENDPOINT \&lt;br /&gt;
 --outfile $CLUSTER_PROFILE_NAME-content-bundle \&lt;br /&gt;
 --include-palette-content \&lt;br /&gt;
 --cluster-definition-name $CLUSTER_PROFILE_NAME-cluster-definition \&lt;br /&gt;
 --cluster-definition-profile-ids $CLUSTER_PROFILE_UID &lt;br /&gt;
&lt;br /&gt;
 ############################&lt;br /&gt;
 # Build the All-In-One ISO #&lt;br /&gt;
 ############################&lt;br /&gt;
 sudo ./earthly.sh +iso&lt;br /&gt;
 &lt;br /&gt;
 #######################################&lt;br /&gt;
 # Move the ISO to my VMware Datastore #&lt;br /&gt;
 #######################################&lt;br /&gt;
 touch ~/CanvOS/build/$ISO_NAME.iso&lt;br /&gt;
 mv ~/CanvOS/build/$ISO_NAME.iso /nfs/0-ISOs/&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Building Provider Images ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-provider-images/&lt;br /&gt;
=== Build Content Bundle ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-content-bundle/&lt;br /&gt;
=== Create Installer ISO ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso/&lt;br /&gt;
=== Local-UI Custom Branding ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/theming/&lt;br /&gt;
=== Local-UI Custom Links ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/custom-link/&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=703</id>
		<title>SpectroCloud/AirGapEdgeISO</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=703"/>
		<updated>2025-04-17T17:12:04Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Build the All-In-One ISO File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Air-Gapped Edge ISO =&lt;br /&gt;
== Prerequisites==&lt;br /&gt;
=== DER&#039;s Lab Specific ===&lt;br /&gt;
 #######################################&lt;br /&gt;
 # Build the ISO on the JUMPBOX Server #&lt;br /&gt;
 #######################################&lt;br /&gt;
 ssh ders@172.16.84.34&lt;br /&gt;
 sudo su - &lt;br /&gt;
&lt;br /&gt;
 ##############################&lt;br /&gt;
 # Mount the VMware Datastore #&lt;br /&gt;
 ##############################&lt;br /&gt;
 echo &amp;quot;172.16.84.7:/data/hdd/0-ISOs    /nfs/0-ISOs             nfs defaults    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
 mkdir -p /nfs/0-ISOs&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
=== ISO Build Requirements ===&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Create Harbor Repo for the provider images #&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Name: airgap-edge&lt;br /&gt;
 # Type: public&lt;br /&gt;
&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # Update the .args file and BYOI Layer with the Following Info: #&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # BYOI VALUES:&lt;br /&gt;
 options:&lt;br /&gt;
   system.uri: &amp;lt;nowiki&amp;gt;&amp;quot;{{ .spectro.pack.edge-native-byoi.options.system.registry }}/{{ .spectro.pack.edge-native-byoi.options.system.repo }}:{{ .spectro.pack.edge-native-byoi.options.system.k8sDistribution }}-{{.spectro.system.kubernetes.version }}-{{ .spectro.pack.edge-native-byoi.options.system.peVersion }}-{{ .spectro.pack.edge-native-byoi.options.system.customTag }}&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   system.registry: harbor.dersllc.com/airgap-edge&lt;br /&gt;
   system.repo: ubuntu&lt;br /&gt;
   system.k8sDistribution: kubeadm&lt;br /&gt;
   system.osName: ubuntu&lt;br /&gt;
   system.peVersion: v4.6.3&lt;br /&gt;
   system.customTag: ders-edge&lt;br /&gt;
   system.osVersion: 22.04&lt;br /&gt;
 #&lt;br /&gt;
 # .ARG FILE:&lt;br /&gt;
 # CUSTOM_TAG=ders-edge&lt;br /&gt;
 # IMAGE_REGISTRY=harbor.dersllc.com/airgap-edge&lt;br /&gt;
 # OS_DISTRIBUTION=ubuntu&lt;br /&gt;
 # IMAGE_REPO=$OS_DISTRIBUTION&lt;br /&gt;
 # OS_VERSION=22.04&lt;br /&gt;
 # K8S_DISTRIBUTION=kubeadm&lt;br /&gt;
 # ISO_NAME=ders-edge-installer&lt;br /&gt;
 # ARCH=amd64&lt;br /&gt;
 # UPDATE_KERNEL=false&lt;br /&gt;
 # CLUSTERCONFIG=test-edge-iso-profile-cluster-definition.tgz&lt;br /&gt;
 # CIS_HARDENING=true&lt;br /&gt;
 # BASE_IMAGE=quay.io/kairos/ubuntu:24.04-core-amd64-generic-v3.0.14&lt;br /&gt;
&lt;br /&gt;
 # CHANGE THE FOLLOWING IN THE K8S LAYER&lt;br /&gt;
 # REMOVE: AlwaysPullImages&lt;br /&gt;
 # MAKE SURE YOU HAVE THE HARBOR-EDGE-NATIVE-CONFIG LAYER ADDED TO THE PROFILE&lt;br /&gt;
&lt;br /&gt;
== Build the All-In-One ISO File ==&lt;br /&gt;
 ######################&lt;br /&gt;
 # REQUIRED VARIABLES #&lt;br /&gt;
 ######################&lt;br /&gt;
 export OS=ubuntu-fips;                                                          #rhel, rhel-fips, ubuntu, ubuntu-fips&lt;br /&gt;
 export PALETTE_ENDPOINT=&amp;quot;paas.dersllc.com&amp;quot;;&lt;br /&gt;
 export API_KEY=&#039;Y2ZiYWZkNWRmN2E0YjAzYTFjYjYyOTBhMjk3YjZlMDg=&#039;;&lt;br /&gt;
 export CLUSTER_PROFILE_NAME=&amp;quot;test-edge-iso-$OS&amp;quot;&lt;br /&gt;
 export CLUSTER_PROFILE_VERSION=1.0.2&lt;br /&gt;
 export PROJECT_NAME=&amp;quot;all-in-one-iso&amp;quot;;&lt;br /&gt;
 export EDGE_CLI_VERSION=&amp;quot;v4.6.9&amp;quot;;                                             #https://docs.spectrocloud.com/component/#palette-edge-cli-versions&lt;br /&gt;
 &lt;br /&gt;
 #################################&lt;br /&gt;
 # Download the Palette-Edge CLI #&lt;br /&gt;
 #################################&lt;br /&gt;
 wget https://software.spectrocloud.com/stylus/$EDGE_CLI_VERSION/cli/linux/palette-edge&lt;br /&gt;
 chmod +x palette-edge&lt;br /&gt;
 mv palette-edge /usr/local/bin&lt;br /&gt;
 cd ~; rm -rf CanvOS&lt;br /&gt;
 &lt;br /&gt;
 ###################################&lt;br /&gt;
 # Use GIT to pull the CanvOS Repo #&lt;br /&gt;
 ###################################&lt;br /&gt;
 git clone https://github.com/spectrocloud/CanvOS.git&lt;br /&gt;
 cd CanvOS&lt;br /&gt;
 #export EDGE_CLI_VERSION=`git tag | sort --version-sort | tail -1`&lt;br /&gt;
 git checkout $EDGE_CLI_VERSION &lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the .arg and user-data file from gitlab #&lt;br /&gt;
 ################################################&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/.arg-$OS.yaml &amp;gt; .arg&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/user-data-$OS.yaml &amp;gt; user-data&lt;br /&gt;
 #sudo ./earthly.sh +validate-user-data &lt;br /&gt;
 &lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 # Get the Project and Cluster Profile IDs and K8S Version from the VERTEX API #&lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 export PROJECT_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/projects&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${PROJECT_NAME}&#039;&amp;quot;)&#039; | jq -r .metadata.uid`&lt;br /&gt;
 export CLUSTER_PROFILE_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/dashboard/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY -H &#039;Projectuid: &#039;${PROJECT_UID} -H &amp;quot;Content-Type: app&lt;br /&gt;
lication/json&amp;quot; -d &#039;{&amp;quot;filter&amp;quot;:{&amp;quot;environment&amp;quot;:[],&amp;quot;profileName&amp;quot;:{&amp;quot;contains&amp;quot;:&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;},&amp;quot;profileType&amp;quot;:[&amp;quot;cluster&amp;quot;,&amp;quot;infra&amp;quot;,&amp;quot;add-on&amp;quot;]},&amp;quot;sort&amp;quot;:[{&amp;quot;field&amp;quot;:&amp;quot;lastModifiedTimestamp&amp;quot;,&amp;quot;order&amp;quot;:&amp;quot;desc&amp;quot;}]}&#039; | jq &#039;.items[]&#039; | jq -r &#039;.metadata.uid&#039;`&lt;br /&gt;
 export K8S_VERSION=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/dashboard/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY -H &#039;Projectuid: &#039;${PROJECT_UID} -H &amp;quot;Content-Type: app&lt;br /&gt;
lication/json&amp;quot; -d &#039;{&amp;quot;filter&amp;quot;:{&amp;quot;environment&amp;quot;:[],&amp;quot;profileName&amp;quot;:{&amp;quot;contains&amp;quot;:&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;},&amp;quot;profileType&amp;quot;:[&amp;quot;cluster&amp;quot;,&amp;quot;infra&amp;quot;,&amp;quot;add-on&amp;quot;]},&amp;quot;sort&amp;quot;:[{&amp;quot;field&amp;quot;:&amp;quot;lastModifiedTimestamp&amp;quot;,&amp;quot;or&lt;br /&gt;
der&amp;quot;:&amp;quot;desc&amp;quot;}]}&#039; | jq &#039;.items[]&#039; | jq -r .specSummary.published.packs[1].tag`&lt;br /&gt;
 &lt;br /&gt;
 #echo PROJECT_UID:$PROJECT_UID; echo CLUSTER_PROFILE_ID:$CLUSTER_PROFILE_UID; echo K*S_VERSION:$K8S_VERSION;&lt;br /&gt;
 &lt;br /&gt;
 #####################################&lt;br /&gt;
 # Pull Variables from the .arg File #&lt;br /&gt;
 #####################################&lt;br /&gt;
 export CUSTOM_TAG=`cat .arg | grep CUSTOM_TAG | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export IMAGE_REGISTRY=`cat .arg | grep IMAGE_REGISTRY | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_DISTRIBUTION=`cat .arg | grep OS_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_VERSION=`cat .arg | grep OS_VERSION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export K8S_DISTRIBUTION=`cat .arg | grep K8S_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export ISO_NAME=`cat .arg | grep ISO_NAME | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 #echo $CUSTOM_TAG; echo $IMAGE_REGISTRY; echo $OS_DISTRIBUTION; echo $OS_VERSION; echo $K8S_DISTRIBUTION; echo $ISO_NAME&lt;br /&gt;
 &lt;br /&gt;
 echo &#039;{&amp;quot;&#039;$K8S_DISTRIBUTION&#039;&amp;quot;:[&amp;quot;&#039;$K8S_VERSION&#039;&amp;quot;]}&#039; | jq &amp;gt; k8s_version.json; # Set only the version you need in the k8s_version.json. This needs to match the version in your profile.&lt;br /&gt;
 #cat k8s_version.json&lt;br /&gt;
 &lt;br /&gt;
 #########################################&lt;br /&gt;
 # Customize the Local-Ui (Not-Required) #&lt;br /&gt;
 #########################################&lt;br /&gt;
 mkdir -p local-ui/ui&lt;br /&gt;
 mkdir -p local-ui/app&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/customizations.json &amp;gt; local-ui/ui/customizations.json&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/index.html &amp;gt; local-ui/app/index.html&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/154x65.png &amp;gt; local-ui/ui/154x65.png&lt;br /&gt;
 tar cvf local-ui.tar local-ui&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Build the Provider Images #&lt;br /&gt;
 #############################&lt;br /&gt;
 #sudo ./earthly.sh +build-provider-images &lt;br /&gt;
 sudo ./earthly.sh +build-provider-images-fips &lt;br /&gt;
&lt;br /&gt;
 #############################################&lt;br /&gt;
 # Push the Provider image to the Image Repo #&lt;br /&gt;
 #############################################&lt;br /&gt;
 docker push $IMAGE_REGISTRY/$OS_DISTRIBUTION:$K8S_DISTRIBUTION-$K8S_VERSION-$EDGE_CLI_VERSION-$CUSTOM_TAG &lt;br /&gt;
 &lt;br /&gt;
 ###########################################################&lt;br /&gt;
 # Export the Vertex Profile Definition and Content Bundle #&lt;br /&gt;
 ########################################################### &lt;br /&gt;
 palette-edge build --api-key $API_KEY \&lt;br /&gt;
 --project-id $PROJECT_UID \&lt;br /&gt;
 --cluster-profile-ids $CLUSTER_PROFILE_UID \&lt;br /&gt;
 --palette-endpoint $PALETTE_ENDPOINT \&lt;br /&gt;
 --outfile $CLUSTER_PROFILE_NAME-content-bundle \&lt;br /&gt;
 --include-palette-content \&lt;br /&gt;
 --cluster-definition-name $CLUSTER_PROFILE_NAME-cluster-definition \&lt;br /&gt;
 --cluster-definition-profile-ids $CLUSTER_PROFILE_UID &lt;br /&gt;
&lt;br /&gt;
 ############################&lt;br /&gt;
 # Build the All-In-One ISO #&lt;br /&gt;
 ############################&lt;br /&gt;
 sudo ./earthly.sh +iso&lt;br /&gt;
 &lt;br /&gt;
 #######################################&lt;br /&gt;
 # Move the ISO to my VMware Datastore #&lt;br /&gt;
 #######################################&lt;br /&gt;
 touch ~/CanvOS/build/$ISO_NAME.iso&lt;br /&gt;
 mv ~/CanvOS/build/$ISO_NAME.iso /nfs/0-ISOs/&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Building Provider Images ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-provider-images/&lt;br /&gt;
=== Build Content Bundle ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-content-bundle/&lt;br /&gt;
=== Create Installer ISO ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso/&lt;br /&gt;
=== Local-UI Custom Branding ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/theming/&lt;br /&gt;
=== Local-UI Custom Links ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/custom-link/&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=702</id>
		<title>SpectroCloud/AirGapEdgeISO</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=702"/>
		<updated>2025-04-17T17:01:01Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Build the All-In-One ISO File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Air-Gapped Edge ISO =&lt;br /&gt;
== Prerequisites==&lt;br /&gt;
=== DER&#039;s Lab Specific ===&lt;br /&gt;
 #######################################&lt;br /&gt;
 # Build the ISO on the JUMPBOX Server #&lt;br /&gt;
 #######################################&lt;br /&gt;
 ssh ders@172.16.84.34&lt;br /&gt;
 sudo su - &lt;br /&gt;
&lt;br /&gt;
 ##############################&lt;br /&gt;
 # Mount the VMware Datastore #&lt;br /&gt;
 ##############################&lt;br /&gt;
 echo &amp;quot;172.16.84.7:/data/hdd/0-ISOs    /nfs/0-ISOs             nfs defaults    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
 mkdir -p /nfs/0-ISOs&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
=== ISO Build Requirements ===&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Create Harbor Repo for the provider images #&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Name: airgap-edge&lt;br /&gt;
 # Type: public&lt;br /&gt;
&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # Update the .args file and BYOI Layer with the Following Info: #&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # BYOI VALUES:&lt;br /&gt;
 options:&lt;br /&gt;
   system.uri: &amp;lt;nowiki&amp;gt;&amp;quot;{{ .spectro.pack.edge-native-byoi.options.system.registry }}/{{ .spectro.pack.edge-native-byoi.options.system.repo }}:{{ .spectro.pack.edge-native-byoi.options.system.k8sDistribution }}-{{.spectro.system.kubernetes.version }}-{{ .spectro.pack.edge-native-byoi.options.system.peVersion }}-{{ .spectro.pack.edge-native-byoi.options.system.customTag }}&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   system.registry: harbor.dersllc.com/airgap-edge&lt;br /&gt;
   system.repo: ubuntu&lt;br /&gt;
   system.k8sDistribution: kubeadm&lt;br /&gt;
   system.osName: ubuntu&lt;br /&gt;
   system.peVersion: v4.6.3&lt;br /&gt;
   system.customTag: ders-edge&lt;br /&gt;
   system.osVersion: 22.04&lt;br /&gt;
 #&lt;br /&gt;
 # .ARG FILE:&lt;br /&gt;
 # CUSTOM_TAG=ders-edge&lt;br /&gt;
 # IMAGE_REGISTRY=harbor.dersllc.com/airgap-edge&lt;br /&gt;
 # OS_DISTRIBUTION=ubuntu&lt;br /&gt;
 # IMAGE_REPO=$OS_DISTRIBUTION&lt;br /&gt;
 # OS_VERSION=22.04&lt;br /&gt;
 # K8S_DISTRIBUTION=kubeadm&lt;br /&gt;
 # ISO_NAME=ders-edge-installer&lt;br /&gt;
 # ARCH=amd64&lt;br /&gt;
 # UPDATE_KERNEL=false&lt;br /&gt;
 # CLUSTERCONFIG=test-edge-iso-profile-cluster-definition.tgz&lt;br /&gt;
 # CIS_HARDENING=true&lt;br /&gt;
 # BASE_IMAGE=quay.io/kairos/ubuntu:24.04-core-amd64-generic-v3.0.14&lt;br /&gt;
&lt;br /&gt;
 # CHANGE THE FOLLOWING IN THE K8S LAYER&lt;br /&gt;
 # REMOVE: AlwaysPullImages&lt;br /&gt;
 # MAKE SURE YOU HAVE THE HARBOR-EDGE-NATIVE-CONFIG LAYER ADDED TO THE PROFILE&lt;br /&gt;
&lt;br /&gt;
== Build the All-In-One ISO File ==&lt;br /&gt;
 ######################&lt;br /&gt;
 # REQUIRED VARIABLES #&lt;br /&gt;
 ######################&lt;br /&gt;
 export OS=ubuntu-fips;                                                          #rhel, rhel-fips, ubuntu, ubuntu-fips&lt;br /&gt;
 export PALETTE_ENDPOINT=&amp;quot;paas.dersllc.com&amp;quot;;&lt;br /&gt;
 export API_KEY=&#039;Y2ZiYWZkNWRmN2E0YjAzYTFjYjYyOTBhMjk3YjZlMDg=&#039;;&lt;br /&gt;
 export CLUSTER_PROFILE_NAME=&amp;quot;test-edge-iso-$OS&amp;quot;&lt;br /&gt;
 export CLUSTER_PROFILE_VERSION=1.0.2&lt;br /&gt;
 export PROJECT_NAME=&amp;quot;all-in-one-iso&amp;quot;;&lt;br /&gt;
 export EDGE_CLI_VERSION=&amp;quot;v4.6.9&amp;quot;;                                             #https://docs.spectrocloud.com/component/#palette-edge-cli-versions&lt;br /&gt;
 &lt;br /&gt;
 #################################&lt;br /&gt;
 # Download the Palette-Edge CLI #&lt;br /&gt;
 #################################&lt;br /&gt;
 wget https://software.spectrocloud.com/stylus/$EDGE_CLI_VERSION/cli/linux/palette-edge&lt;br /&gt;
 chmod +x palette-edge&lt;br /&gt;
 mv palette-edge /usr/local/bin&lt;br /&gt;
 cd ~; rm -rf CanvOS&lt;br /&gt;
 &lt;br /&gt;
 ###################################&lt;br /&gt;
 # Use GIT to pull the CanvOS Repo #&lt;br /&gt;
 ###################################&lt;br /&gt;
 git clone https://github.com/spectrocloud/CanvOS.git&lt;br /&gt;
 cd CanvOS&lt;br /&gt;
 #export EDGE_CLI_VERSION=`git tag | sort --version-sort | tail -1`&lt;br /&gt;
 git checkout $EDGE_CLI_VERSION &lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the .arg and user-data file from gitlab #&lt;br /&gt;
 ################################################&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/.arg-$OS.yaml &amp;gt; .arg&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/user-data-$OS.yaml &amp;gt; user-data&lt;br /&gt;
 #sudo ./earthly.sh +validate-user-data &lt;br /&gt;
 &lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 # Get the Project and Cluster Profile IDs and K8S Version from the VERTEX API #&lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 export PROJECT_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/projects&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${PROJECT_NAME}&#039;&amp;quot;)&#039; | jq -r .metadata.uid`&lt;br /&gt;
 export CLUSTER_PROFILE_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/dashboard/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY -H &#039;Projectuid: &#039;${PROJECT_UID} -H &amp;quot;Content-Type: app&lt;br /&gt;
lication/json&amp;quot; -d &#039;{&amp;quot;filter&amp;quot;:{&amp;quot;environment&amp;quot;:[],&amp;quot;profileName&amp;quot;:{&amp;quot;contains&amp;quot;:&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;},&amp;quot;profileType&amp;quot;:[&amp;quot;cluster&amp;quot;,&amp;quot;infra&amp;quot;,&amp;quot;add-on&amp;quot;]},&amp;quot;sort&amp;quot;:[{&amp;quot;field&amp;quot;:&amp;quot;lastModifiedTimestamp&amp;quot;,&amp;quot;or&lt;br /&gt;
der&amp;quot;:&amp;quot;desc&amp;quot;}]}&#039; | jq &#039;.items[]&#039; | jq -r &#039;.metadata.uid&#039;`&lt;br /&gt;
 export K8S_VERSION=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/dashboard/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY -H &#039;Projectuid: &#039;${PROJECT_UID} -H &amp;quot;Content-Type: app&lt;br /&gt;
lication/json&amp;quot; -d &#039;{&amp;quot;filter&amp;quot;:{&amp;quot;environment&amp;quot;:[],&amp;quot;profileName&amp;quot;:{&amp;quot;contains&amp;quot;:&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;},&amp;quot;profileType&amp;quot;:[&amp;quot;cluster&amp;quot;,&amp;quot;infra&amp;quot;,&amp;quot;add-on&amp;quot;]},&amp;quot;sort&amp;quot;:[{&amp;quot;field&amp;quot;:&amp;quot;lastModifiedTimestamp&amp;quot;,&amp;quot;or&lt;br /&gt;
der&amp;quot;:&amp;quot;desc&amp;quot;}]}&#039; | jq &#039;.items[]&#039; | jq -r .specSummary.published.packs[1].tag`&lt;br /&gt;
&lt;br /&gt;
 #echo PROJECT_UID:$PROJECT_UID; echo CLUSTER_PROFILE_ID:$CLUSTER_PROFILE_UID; echo K*S_VERSION:$K8S_VERSION;&lt;br /&gt;
 &lt;br /&gt;
 #####################################&lt;br /&gt;
 # Pull Variables from the .arg File #&lt;br /&gt;
 #####################################&lt;br /&gt;
 export CUSTOM_TAG=`cat .arg | grep CUSTOM_TAG | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export IMAGE_REGISTRY=`cat .arg | grep IMAGE_REGISTRY | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_DISTRIBUTION=`cat .arg | grep OS_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_VERSION=`cat .arg | grep OS_VERSION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export K8S_DISTRIBUTION=`cat .arg | grep K8S_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export ISO_NAME=`cat .arg | grep ISO_NAME | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 #echo $CUSTOM_TAG; echo $IMAGE_REGISTRY; echo $OS_DISTRIBUTION; echo $OS_VERSION; echo $K8S_DISTRIBUTION; echo $ISO_NAME&lt;br /&gt;
 &lt;br /&gt;
 echo &#039;{&amp;quot;&#039;$K8S_DISTRIBUTION&#039;&amp;quot;:[&amp;quot;&#039;$K8S_VERSION&#039;&amp;quot;]}&#039; | jq &amp;gt; k8s_version.json; # Set only the version you need in the k8s_version.json. This needs to match the version in your profile.&lt;br /&gt;
 #cat k8s_version.json&lt;br /&gt;
 &lt;br /&gt;
 #########################################&lt;br /&gt;
 # Customize the Local-Ui (Not-Required) #&lt;br /&gt;
 #########################################&lt;br /&gt;
 mkdir -p local-ui/ui&lt;br /&gt;
 mkdir -p local-ui/app&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/customizations.json &amp;gt; local-ui/ui/customizations.json&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/index.html &amp;gt; local-ui/app/index.html&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/154x65.png &amp;gt; local-ui/ui/154x65.png&lt;br /&gt;
 tar cvf local-ui.tar local-ui&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Build the Provider Images #&lt;br /&gt;
 #############################&lt;br /&gt;
 #sudo ./earthly.sh +build-provider-images &lt;br /&gt;
 sudo ./earthly.sh +build-provider-images-fips &lt;br /&gt;
&lt;br /&gt;
 #############################################&lt;br /&gt;
 # Push the Provider image to the Image Repo #&lt;br /&gt;
 #############################################&lt;br /&gt;
 docker push $IMAGE_REGISTRY/$OS_DISTRIBUTION:$K8S_DISTRIBUTION-$K8S_VERSION-$EDGE_CLI_VERSION-$CUSTOM_TAG &lt;br /&gt;
 &lt;br /&gt;
 ###########################################################&lt;br /&gt;
 # Export the Vertex Profile Definition and Content Bundle #&lt;br /&gt;
 ########################################################### &lt;br /&gt;
 palette-edge build --api-key $API_KEY \&lt;br /&gt;
 --project-id $PROJECT_UID \&lt;br /&gt;
 --cluster-profile-ids $CLUSTER_PROFILE_UID \&lt;br /&gt;
 --palette-endpoint $PALETTE_ENDPOINT \&lt;br /&gt;
 --outfile $CLUSTER_PROFILE_NAME-content-bundle \&lt;br /&gt;
 --include-palette-content \&lt;br /&gt;
 --cluster-definition-name $CLUSTER_PROFILE_NAME-cluster-definition \&lt;br /&gt;
 --cluster-definition-profile-ids $CLUSTER_PROFILE_UID &lt;br /&gt;
&lt;br /&gt;
 ############################&lt;br /&gt;
 # Build the All-In-One ISO #&lt;br /&gt;
 ############################&lt;br /&gt;
 sudo ./earthly.sh +iso&lt;br /&gt;
 &lt;br /&gt;
 #######################################&lt;br /&gt;
 # Move the ISO to my VMware Datastore #&lt;br /&gt;
 #######################################&lt;br /&gt;
 touch ~/CanvOS/build/$ISO_NAME.iso&lt;br /&gt;
 mv ~/CanvOS/build/$ISO_NAME.iso /nfs/0-ISOs/&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Building Provider Images ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-provider-images/&lt;br /&gt;
=== Build Content Bundle ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-content-bundle/&lt;br /&gt;
=== Create Installer ISO ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso/&lt;br /&gt;
=== Local-UI Custom Branding ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/theming/&lt;br /&gt;
=== Local-UI Custom Links ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/custom-link/&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=701</id>
		<title>SpectroCloud/AirGapEdgeISO</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=701"/>
		<updated>2025-04-17T16:50:26Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Build the All-In-One ISO File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Air-Gapped Edge ISO =&lt;br /&gt;
== Prerequisites==&lt;br /&gt;
=== DER&#039;s Lab Specific ===&lt;br /&gt;
 #######################################&lt;br /&gt;
 # Build the ISO on the JUMPBOX Server #&lt;br /&gt;
 #######################################&lt;br /&gt;
 ssh ders@172.16.84.34&lt;br /&gt;
 sudo su - &lt;br /&gt;
&lt;br /&gt;
 ##############################&lt;br /&gt;
 # Mount the VMware Datastore #&lt;br /&gt;
 ##############################&lt;br /&gt;
 echo &amp;quot;172.16.84.7:/data/hdd/0-ISOs    /nfs/0-ISOs             nfs defaults    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
 mkdir -p /nfs/0-ISOs&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
=== ISO Build Requirements ===&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Create Harbor Repo for the provider images #&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Name: airgap-edge&lt;br /&gt;
 # Type: public&lt;br /&gt;
&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # Update the .args file and BYOI Layer with the Following Info: #&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # BYOI VALUES:&lt;br /&gt;
 options:&lt;br /&gt;
   system.uri: &amp;lt;nowiki&amp;gt;&amp;quot;{{ .spectro.pack.edge-native-byoi.options.system.registry }}/{{ .spectro.pack.edge-native-byoi.options.system.repo }}:{{ .spectro.pack.edge-native-byoi.options.system.k8sDistribution }}-{{.spectro.system.kubernetes.version }}-{{ .spectro.pack.edge-native-byoi.options.system.peVersion }}-{{ .spectro.pack.edge-native-byoi.options.system.customTag }}&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   system.registry: harbor.dersllc.com/airgap-edge&lt;br /&gt;
   system.repo: ubuntu&lt;br /&gt;
   system.k8sDistribution: kubeadm&lt;br /&gt;
   system.osName: ubuntu&lt;br /&gt;
   system.peVersion: v4.6.3&lt;br /&gt;
   system.customTag: ders-edge&lt;br /&gt;
   system.osVersion: 22.04&lt;br /&gt;
 #&lt;br /&gt;
 # .ARG FILE:&lt;br /&gt;
 # CUSTOM_TAG=ders-edge&lt;br /&gt;
 # IMAGE_REGISTRY=harbor.dersllc.com/airgap-edge&lt;br /&gt;
 # OS_DISTRIBUTION=ubuntu&lt;br /&gt;
 # IMAGE_REPO=$OS_DISTRIBUTION&lt;br /&gt;
 # OS_VERSION=22.04&lt;br /&gt;
 # K8S_DISTRIBUTION=kubeadm&lt;br /&gt;
 # ISO_NAME=ders-edge-installer&lt;br /&gt;
 # ARCH=amd64&lt;br /&gt;
 # UPDATE_KERNEL=false&lt;br /&gt;
 # CLUSTERCONFIG=test-edge-iso-profile-cluster-definition.tgz&lt;br /&gt;
 # CIS_HARDENING=true&lt;br /&gt;
 # BASE_IMAGE=quay.io/kairos/ubuntu:24.04-core-amd64-generic-v3.0.14&lt;br /&gt;
&lt;br /&gt;
 # CHANGE THE FOLLOWING IN THE K8S LAYER&lt;br /&gt;
 # REMOVE: AlwaysPullImages&lt;br /&gt;
 # MAKE SURE YOU HAVE THE HARBOR-EDGE-NATIVE-CONFIG LAYER ADDED TO THE PROFILE&lt;br /&gt;
&lt;br /&gt;
== Build the All-In-One ISO File ==&lt;br /&gt;
 ######################&lt;br /&gt;
 # REQUIRED VARIABLES #&lt;br /&gt;
 ######################&lt;br /&gt;
 export OS=ubuntu-fips;                                                          #rhel, rhel-fips, ubuntu, ubuntu-fips&lt;br /&gt;
 export PALETTE_ENDPOINT=&amp;quot;paas.dersllc.com&amp;quot;;&lt;br /&gt;
 export API_KEY=&#039;Y2ZiYWZkNWRmN2E0YjAzYTFjYjYyOTBhMjk3YjZlMDg=&#039;;&lt;br /&gt;
 export CLUSTER_PROFILE_NAME=&amp;quot;test-edge-iso-$OS&amp;quot;&lt;br /&gt;
 export CLUSTER_PROFILE_VERSION=1.0.2&lt;br /&gt;
 export PROJECT_NAME=&amp;quot;all-in-one-iso&amp;quot;;&lt;br /&gt;
 export EDGE_CLI_VERSION=&amp;quot;v4.6.9&amp;quot;;                                             #https://docs.spectrocloud.com/component/#palette-edge-cli-versions&lt;br /&gt;
 &lt;br /&gt;
 #################################&lt;br /&gt;
 # Download the Palette-Edge CLI #&lt;br /&gt;
 #################################&lt;br /&gt;
 wget https://software.spectrocloud.com/stylus/$EDGE_CLI_VERSION/cli/linux/palette-edge&lt;br /&gt;
 chmod +x palette-edge&lt;br /&gt;
 mv palette-edge /usr/local/bin&lt;br /&gt;
 cd ~; rm -rf CanvOS&lt;br /&gt;
 &lt;br /&gt;
 ###################################&lt;br /&gt;
 # Use GIT to pull the CanvOS Repo #&lt;br /&gt;
 ###################################&lt;br /&gt;
 git clone https://github.com/spectrocloud/CanvOS.git&lt;br /&gt;
 cd CanvOS&lt;br /&gt;
 #export EDGE_CLI_VERSION=`git tag | sort --version-sort | tail -1`&lt;br /&gt;
 git checkout $EDGE_CLI_VERSION &lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the .arg and user-data file from gitlab #&lt;br /&gt;
 ################################################&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/.arg-$OS.yaml &amp;gt; .arg&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/user-data-$OS.yaml &amp;gt; user-data&lt;br /&gt;
 #sudo ./earthly.sh +validate-user-data &lt;br /&gt;
 &lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 # Get the Project and Cluster Profile IDs and K8S Version from the VERTEX API #&lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 #OLD: export CLUSTER_PROFILE_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;)&#039; | jq -r .metadata.uid`&lt;br /&gt;
 #OLD export K8S_VERSION=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;)&#039; | jq -r .spec.published.packs[1].tag`&lt;br /&gt;
 export CLUSTER_PROFILE_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.spec.published.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;) | select(.spec.published.profileVersion==&amp;quot;&#039;${CLUSTER_PROFILE_VERSION}&#039;&amp;quot;)&#039; | jq -r .spec.published.uid`&lt;br /&gt;
 export PROJECT_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/projects&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${PROJECT_NAME}&#039;&amp;quot;)&#039; | jq -r .metadata.uid`&lt;br /&gt;
 export K8S_VERSION=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;) | select(.spec.published.profileVersion==&amp;quot;&#039;${CLUSTER_PROFILE_VERSION}&#039;&amp;quot;)&#039; | jq -r .spec.published.packs[1].tag`&lt;br /&gt;
 #echo $CLUSTER_PROFILE_UID; echo $PROJECT_UID; echo $K8S_VERSION;&lt;br /&gt;
 &lt;br /&gt;
 #####################################&lt;br /&gt;
 # Pull Variables from the .arg File #&lt;br /&gt;
 #####################################&lt;br /&gt;
 export CUSTOM_TAG=`cat .arg | grep CUSTOM_TAG | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export IMAGE_REGISTRY=`cat .arg | grep IMAGE_REGISTRY | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_DISTRIBUTION=`cat .arg | grep OS_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_VERSION=`cat .arg | grep OS_VERSION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export K8S_DISTRIBUTION=`cat .arg | grep K8S_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export ISO_NAME=`cat .arg | grep ISO_NAME | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 #echo $CUSTOM_TAG; echo $IMAGE_REGISTRY; echo $OS_DISTRIBUTION; echo $OS_VERSION; echo $K8S_DISTRIBUTION; echo $ISO_NAME&lt;br /&gt;
 &lt;br /&gt;
 echo &#039;{&amp;quot;&#039;$K8S_DISTRIBUTION&#039;&amp;quot;:[&amp;quot;&#039;$K8S_VERSION&#039;&amp;quot;]}&#039; | jq &amp;gt; k8s_version.json; # Set only the version you need in the k8s_version.json. This needs to match the version in your profile.&lt;br /&gt;
 #cat k8s_version.json&lt;br /&gt;
 &lt;br /&gt;
 #########################################&lt;br /&gt;
 # Customize the Local-Ui (Not-Required) #&lt;br /&gt;
 #########################################&lt;br /&gt;
 mkdir -p local-ui/ui&lt;br /&gt;
 mkdir -p local-ui/app&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/customizations.json &amp;gt; local-ui/ui/customizations.json&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/index.html &amp;gt; local-ui/app/index.html&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/154x65.png &amp;gt; local-ui/ui/154x65.png&lt;br /&gt;
 tar cvf local-ui.tar local-ui&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Build the Provider Images #&lt;br /&gt;
 #############################&lt;br /&gt;
 #sudo ./earthly.sh +build-provider-images &lt;br /&gt;
 sudo ./earthly.sh +build-provider-images-fips &lt;br /&gt;
&lt;br /&gt;
 #############################################&lt;br /&gt;
 # Push the Provider image to the Image Repo #&lt;br /&gt;
 #############################################&lt;br /&gt;
 docker push $IMAGE_REGISTRY/$OS_DISTRIBUTION:$K8S_DISTRIBUTION-$K8S_VERSION-$EDGE_CLI_VERSION-$CUSTOM_TAG &lt;br /&gt;
 &lt;br /&gt;
 ###########################################################&lt;br /&gt;
 # Export the Vertex Profile Definition and Content Bundle #&lt;br /&gt;
 ########################################################### &lt;br /&gt;
 palette-edge build --api-key $API_KEY \&lt;br /&gt;
 --project-id $PROJECT_UID \&lt;br /&gt;
 --cluster-profile-ids $CLUSTER_PROFILE_UID \&lt;br /&gt;
 --palette-endpoint $PALETTE_ENDPOINT \&lt;br /&gt;
 --outfile $CLUSTER_PROFILE_NAME-content-bundle \&lt;br /&gt;
 --include-palette-content \&lt;br /&gt;
 --cluster-definition-name $CLUSTER_PROFILE_NAME-cluster-definition \&lt;br /&gt;
 --cluster-definition-profile-ids $CLUSTER_PROFILE_UID &lt;br /&gt;
&lt;br /&gt;
 ############################&lt;br /&gt;
 # Build the All-In-One ISO #&lt;br /&gt;
 ############################&lt;br /&gt;
 sudo ./earthly.sh +iso&lt;br /&gt;
 &lt;br /&gt;
 #######################################&lt;br /&gt;
 # Move the ISO to my VMware Datastore #&lt;br /&gt;
 #######################################&lt;br /&gt;
 touch ~/CanvOS/build/$ISO_NAME.iso&lt;br /&gt;
 mv ~/CanvOS/build/$ISO_NAME.iso /nfs/0-ISOs/&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Building Provider Images ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-provider-images/&lt;br /&gt;
=== Build Content Bundle ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-content-bundle/&lt;br /&gt;
=== Create Installer ISO ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso/&lt;br /&gt;
=== Local-UI Custom Branding ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/theming/&lt;br /&gt;
=== Local-UI Custom Links ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/custom-link/&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=700</id>
		<title>SpectroCloud/AirGapEdgeISO</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=700"/>
		<updated>2025-04-17T16:49:10Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Build the All-In-One ISO File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Air-Gapped Edge ISO =&lt;br /&gt;
== Prerequisites==&lt;br /&gt;
=== DER&#039;s Lab Specific ===&lt;br /&gt;
 #######################################&lt;br /&gt;
 # Build the ISO on the JUMPBOX Server #&lt;br /&gt;
 #######################################&lt;br /&gt;
 ssh ders@172.16.84.34&lt;br /&gt;
 sudo su - &lt;br /&gt;
&lt;br /&gt;
 ##############################&lt;br /&gt;
 # Mount the VMware Datastore #&lt;br /&gt;
 ##############################&lt;br /&gt;
 echo &amp;quot;172.16.84.7:/data/hdd/0-ISOs    /nfs/0-ISOs             nfs defaults    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
 mkdir -p /nfs/0-ISOs&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
=== ISO Build Requirements ===&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Create Harbor Repo for the provider images #&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Name: airgap-edge&lt;br /&gt;
 # Type: public&lt;br /&gt;
&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # Update the .args file and BYOI Layer with the Following Info: #&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # BYOI VALUES:&lt;br /&gt;
 options:&lt;br /&gt;
   system.uri: &amp;lt;nowiki&amp;gt;&amp;quot;{{ .spectro.pack.edge-native-byoi.options.system.registry }}/{{ .spectro.pack.edge-native-byoi.options.system.repo }}:{{ .spectro.pack.edge-native-byoi.options.system.k8sDistribution }}-{{.spectro.system.kubernetes.version }}-{{ .spectro.pack.edge-native-byoi.options.system.peVersion }}-{{ .spectro.pack.edge-native-byoi.options.system.customTag }}&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   system.registry: harbor.dersllc.com/airgap-edge&lt;br /&gt;
   system.repo: ubuntu&lt;br /&gt;
   system.k8sDistribution: kubeadm&lt;br /&gt;
   system.osName: ubuntu&lt;br /&gt;
   system.peVersion: v4.6.3&lt;br /&gt;
   system.customTag: ders-edge&lt;br /&gt;
   system.osVersion: 22.04&lt;br /&gt;
 #&lt;br /&gt;
 # .ARG FILE:&lt;br /&gt;
 # CUSTOM_TAG=ders-edge&lt;br /&gt;
 # IMAGE_REGISTRY=harbor.dersllc.com/airgap-edge&lt;br /&gt;
 # OS_DISTRIBUTION=ubuntu&lt;br /&gt;
 # IMAGE_REPO=$OS_DISTRIBUTION&lt;br /&gt;
 # OS_VERSION=22.04&lt;br /&gt;
 # K8S_DISTRIBUTION=kubeadm&lt;br /&gt;
 # ISO_NAME=ders-edge-installer&lt;br /&gt;
 # ARCH=amd64&lt;br /&gt;
 # UPDATE_KERNEL=false&lt;br /&gt;
 # CLUSTERCONFIG=test-edge-iso-profile-cluster-definition.tgz&lt;br /&gt;
 # CIS_HARDENING=true&lt;br /&gt;
 # BASE_IMAGE=quay.io/kairos/ubuntu:24.04-core-amd64-generic-v3.0.14&lt;br /&gt;
&lt;br /&gt;
 # CHANGE THE FOLLOWING IN THE K8S LAYER&lt;br /&gt;
 # REMOVE: AlwaysPullImages&lt;br /&gt;
 # MAKE SURE YOU HAVE THE HARBOR-EDGE-NATIVE-CONFIG LAYER ADDED TO THE PROFILE&lt;br /&gt;
&lt;br /&gt;
== Build the All-In-One ISO File ==&lt;br /&gt;
 ######################&lt;br /&gt;
 # REQUIRED VARIABLES #&lt;br /&gt;
 ######################&lt;br /&gt;
 export OS=ubuntu-fips;                                                          #rhel, rhel-fips, ubuntu, ubuntu-fips&lt;br /&gt;
 export PALETTE_ENDPOINT=&amp;quot;paas.dersllc.com&amp;quot;;&lt;br /&gt;
 export API_KEY=&#039;Y2ZiYWZkNWRmN2E0YjAzYTFjYjYyOTBhMjk3YjZlMDg=&#039;;&lt;br /&gt;
 export CLUSTER_PROFILE_NAME=&amp;quot;test-edge-iso-$OS&amp;quot;&lt;br /&gt;
 export CLUSTER_PROFILE_VERSION=1.0.2&lt;br /&gt;
 export PROJECT_NAME=&amp;quot;all-in-one-iso&amp;quot;;&lt;br /&gt;
 export EDGE_CLI_VERSION=&amp;quot;v4.6.9&amp;quot;;                                             #https://docs.spectrocloud.com/component/#palette-edge-cli-versions&lt;br /&gt;
 &lt;br /&gt;
 #################################&lt;br /&gt;
 # Download the Palette-Edge CLI #&lt;br /&gt;
 #################################&lt;br /&gt;
 wget https://software.spectrocloud.com/stylus/$EDGE_CLI_VERSION/cli/linux/palette-edge&lt;br /&gt;
 chmod +x palette-edge&lt;br /&gt;
 mv palette-edge /usr/local/bin&lt;br /&gt;
 cd ~; rm -rf CanvOS&lt;br /&gt;
 &lt;br /&gt;
 ###################################&lt;br /&gt;
 # Use GIT to pull the CanvOS Repo #&lt;br /&gt;
 ###################################&lt;br /&gt;
 git clone https://github.com/spectrocloud/CanvOS.git&lt;br /&gt;
 cd CanvOS&lt;br /&gt;
 #export EDGE_CLI_VERSION=`git tag | sort --version-sort | tail -1`&lt;br /&gt;
 git checkout $EDGE_CLI_VERSION &lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the .arg and user-data file from gitlab #&lt;br /&gt;
 ################################################&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/.arg-$OS.yaml &amp;gt; .arg&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/user-data-$OS.yaml &amp;gt; user-data&lt;br /&gt;
 #sudo ./earthly.sh +validate-user-data &lt;br /&gt;
 &lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 # Get the Project and Cluster Profile IDs and K8S Version from the VERTEX API #&lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 #OLD: export CLUSTER_PROFILE_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;)&#039; | jq -r .metadata.uid`&lt;br /&gt;
 #OLD export K8S_VERSION=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;)&#039; | jq -r .spec.published.packs[1].tag`&lt;br /&gt;
 export CLUSTER_PROFILE_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.spec.published.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;) | select(.spec.published.profileVersion==&amp;quot;&#039;${CLUSTER_PROFILE_VERSION}&#039;&amp;quot;)&#039; | jq -r .spec.published.uid`&lt;br /&gt;
 export PROJECT_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/projects&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${PROFILE_NAME}&#039;&amp;quot;)&#039; | jq -r .metadata.uid`&lt;br /&gt;
 export K8S_VERSION=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;) | select(.spec.published.profileVersion==&amp;quot;&#039;${CLUSTER_PROFILE_VERSION}&#039;&amp;quot;)&#039; | jq -r .spec.published.packs[1].tag`&lt;br /&gt;
 #echo $CLUSTER_PROFILE_UID; echo $PROJECT_UID; echo $K8S_VERSION;&lt;br /&gt;
 &lt;br /&gt;
 #####################################&lt;br /&gt;
 # Pull Variables from the .arg File #&lt;br /&gt;
 #####################################&lt;br /&gt;
 export CUSTOM_TAG=`cat .arg | grep CUSTOM_TAG | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export IMAGE_REGISTRY=`cat .arg | grep IMAGE_REGISTRY | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_DISTRIBUTION=`cat .arg | grep OS_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_VERSION=`cat .arg | grep OS_VERSION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export K8S_DISTRIBUTION=`cat .arg | grep K8S_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export ISO_NAME=`cat .arg | grep ISO_NAME | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 #echo $CUSTOM_TAG; echo $IMAGE_REGISTRY; echo $OS_DISTRIBUTION; echo $OS_VERSION; echo $K8S_DISTRIBUTION; echo $ISO_NAME&lt;br /&gt;
 &lt;br /&gt;
 echo &#039;{&amp;quot;&#039;$K8S_DISTRIBUTION&#039;&amp;quot;:[&amp;quot;&#039;$K8S_VERSION&#039;&amp;quot;]}&#039; | jq &amp;gt; k8s_version.json; # Set only the version you need in the k8s_version.json. This needs to match the version in your profile.&lt;br /&gt;
 #cat k8s_version.json&lt;br /&gt;
 &lt;br /&gt;
 #########################################&lt;br /&gt;
 # Customize the Local-Ui (Not-Required) #&lt;br /&gt;
 #########################################&lt;br /&gt;
 mkdir -p local-ui/ui&lt;br /&gt;
 mkdir -p local-ui/app&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/customizations.json &amp;gt; local-ui/ui/customizations.json&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/index.html &amp;gt; local-ui/app/index.html&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/154x65.png &amp;gt; local-ui/ui/154x65.png&lt;br /&gt;
 tar cvf local-ui.tar local-ui&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Build the Provider Images #&lt;br /&gt;
 #############################&lt;br /&gt;
 #sudo ./earthly.sh +build-provider-images &lt;br /&gt;
 sudo ./earthly.sh +build-provider-images-fips &lt;br /&gt;
&lt;br /&gt;
 #############################################&lt;br /&gt;
 # Push the Provider image to the Image Repo #&lt;br /&gt;
 #############################################&lt;br /&gt;
 docker push $IMAGE_REGISTRY/$OS_DISTRIBUTION:$K8S_DISTRIBUTION-$K8S_VERSION-$EDGE_CLI_VERSION-$CUSTOM_TAG &lt;br /&gt;
 &lt;br /&gt;
 ###########################################################&lt;br /&gt;
 # Export the Vertex Profile Definition and Content Bundle #&lt;br /&gt;
 ########################################################### &lt;br /&gt;
 palette-edge build --api-key $API_KEY \&lt;br /&gt;
 --project-id $PROJECT_UID \&lt;br /&gt;
 --cluster-profile-ids $CLUSTER_PROFILE_UID \&lt;br /&gt;
 --palette-endpoint $PALETTE_ENDPOINT \&lt;br /&gt;
 --outfile $CLUSTER_PROFILE_NAME-content-bundle \&lt;br /&gt;
 --include-palette-content \&lt;br /&gt;
 --cluster-definition-name $CLUSTER_PROFILE_NAME-cluster-definition \&lt;br /&gt;
 --cluster-definition-profile-ids $CLUSTER_PROFILE_UID &lt;br /&gt;
&lt;br /&gt;
 ############################&lt;br /&gt;
 # Build the All-In-One ISO #&lt;br /&gt;
 ############################&lt;br /&gt;
 sudo ./earthly.sh +iso&lt;br /&gt;
 &lt;br /&gt;
 #######################################&lt;br /&gt;
 # Move the ISO to my VMware Datastore #&lt;br /&gt;
 #######################################&lt;br /&gt;
 touch ~/CanvOS/build/$ISO_NAME.iso&lt;br /&gt;
 mv ~/CanvOS/build/$ISO_NAME.iso /nfs/0-ISOs/&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Building Provider Images ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-provider-images/&lt;br /&gt;
=== Build Content Bundle ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-content-bundle/&lt;br /&gt;
=== Create Installer ISO ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso/&lt;br /&gt;
=== Local-UI Custom Branding ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/theming/&lt;br /&gt;
=== Local-UI Custom Links ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/custom-link/&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=699</id>
		<title>SpectroCloud/AirGapEdgeISO</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=699"/>
		<updated>2025-04-17T16:27:25Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Build the All-In-One ISO File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Air-Gapped Edge ISO =&lt;br /&gt;
== Prerequisites==&lt;br /&gt;
=== DER&#039;s Lab Specific ===&lt;br /&gt;
 #######################################&lt;br /&gt;
 # Build the ISO on the JUMPBOX Server #&lt;br /&gt;
 #######################################&lt;br /&gt;
 ssh ders@172.16.84.34&lt;br /&gt;
 sudo su - &lt;br /&gt;
&lt;br /&gt;
 ##############################&lt;br /&gt;
 # Mount the VMware Datastore #&lt;br /&gt;
 ##############################&lt;br /&gt;
 echo &amp;quot;172.16.84.7:/data/hdd/0-ISOs    /nfs/0-ISOs             nfs defaults    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
 mkdir -p /nfs/0-ISOs&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
=== ISO Build Requirements ===&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Create Harbor Repo for the provider images #&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Name: airgap-edge&lt;br /&gt;
 # Type: public&lt;br /&gt;
&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # Update the .args file and BYOI Layer with the Following Info: #&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # BYOI VALUES:&lt;br /&gt;
 options:&lt;br /&gt;
   system.uri: &amp;lt;nowiki&amp;gt;&amp;quot;{{ .spectro.pack.edge-native-byoi.options.system.registry }}/{{ .spectro.pack.edge-native-byoi.options.system.repo }}:{{ .spectro.pack.edge-native-byoi.options.system.k8sDistribution }}-{{.spectro.system.kubernetes.version }}-{{ .spectro.pack.edge-native-byoi.options.system.peVersion }}-{{ .spectro.pack.edge-native-byoi.options.system.customTag }}&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   system.registry: harbor.dersllc.com/airgap-edge&lt;br /&gt;
   system.repo: ubuntu&lt;br /&gt;
   system.k8sDistribution: kubeadm&lt;br /&gt;
   system.osName: ubuntu&lt;br /&gt;
   system.peVersion: v4.6.3&lt;br /&gt;
   system.customTag: ders-edge&lt;br /&gt;
   system.osVersion: 22.04&lt;br /&gt;
 #&lt;br /&gt;
 # .ARG FILE:&lt;br /&gt;
 # CUSTOM_TAG=ders-edge&lt;br /&gt;
 # IMAGE_REGISTRY=harbor.dersllc.com/airgap-edge&lt;br /&gt;
 # OS_DISTRIBUTION=ubuntu&lt;br /&gt;
 # IMAGE_REPO=$OS_DISTRIBUTION&lt;br /&gt;
 # OS_VERSION=22.04&lt;br /&gt;
 # K8S_DISTRIBUTION=kubeadm&lt;br /&gt;
 # ISO_NAME=ders-edge-installer&lt;br /&gt;
 # ARCH=amd64&lt;br /&gt;
 # UPDATE_KERNEL=false&lt;br /&gt;
 # CLUSTERCONFIG=test-edge-iso-profile-cluster-definition.tgz&lt;br /&gt;
 # CIS_HARDENING=true&lt;br /&gt;
 # BASE_IMAGE=quay.io/kairos/ubuntu:24.04-core-amd64-generic-v3.0.14&lt;br /&gt;
&lt;br /&gt;
 # CHANGE THE FOLLOWING IN THE K8S LAYER&lt;br /&gt;
 # REMOVE: AlwaysPullImages&lt;br /&gt;
 # MAKE SURE YOU HAVE THE HARBOR-EDGE-NATIVE-CONFIG LAYER ADDED TO THE PROFILE&lt;br /&gt;
&lt;br /&gt;
== Build the All-In-One ISO File ==&lt;br /&gt;
 ######################&lt;br /&gt;
 # REQUIRED VARIABLES #&lt;br /&gt;
 ######################&lt;br /&gt;
 export OS=ubuntu-fips;                                                          #rhel, rhel-fips, ubuntu, ubuntu-fips&lt;br /&gt;
 export PALETTE_ENDPOINT=&amp;quot;paas.dersllc.com&amp;quot;;&lt;br /&gt;
 export API_KEY=&#039;Y2ZiYWZkNWRmN2E0YjAzYTFjYjYyOTBhMjk3YjZlMDg=&#039;;&lt;br /&gt;
 export CLUSTER_PROFILE_NAME=&amp;quot;test-edge-iso-$OS&amp;quot;&lt;br /&gt;
 export CLUSTER_PROFILE_VERSION=1.0.2&lt;br /&gt;
 export PROFILE_NAME=&amp;quot;Default&amp;quot;;&lt;br /&gt;
 export EDGE_CLI_VERSION=&amp;quot;v4.6.9&amp;quot;;                                             #https://docs.spectrocloud.com/component/#palette-edge-cli-versions&lt;br /&gt;
 &lt;br /&gt;
 #################################&lt;br /&gt;
 # Download the Palette-Edge CLI #&lt;br /&gt;
 #################################&lt;br /&gt;
 wget https://software.spectrocloud.com/stylus/$EDGE_CLI_VERSION/cli/linux/palette-edge&lt;br /&gt;
 chmod +x palette-edge&lt;br /&gt;
 mv palette-edge /usr/local/bin&lt;br /&gt;
 cd ~; rm -rf CanvOS&lt;br /&gt;
 &lt;br /&gt;
 ###################################&lt;br /&gt;
 # Use GIT to pull the CanvOS Repo #&lt;br /&gt;
 ###################################&lt;br /&gt;
 git clone https://github.com/spectrocloud/CanvOS.git&lt;br /&gt;
 cd CanvOS&lt;br /&gt;
 #export EDGE_CLI_VERSION=`git tag | sort --version-sort | tail -1`&lt;br /&gt;
 git checkout $EDGE_CLI_VERSION &lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the .arg and user-data file from gitlab #&lt;br /&gt;
 ################################################&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/.arg-$OS.yaml &amp;gt; .arg&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/user-data-$OS.yaml &amp;gt; user-data&lt;br /&gt;
 #sudo ./earthly.sh +validate-user-data &lt;br /&gt;
 &lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 # Get the Project and Cluster Profile IDs and K8S Version from the VERTEX API #&lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 #OLD: export CLUSTER_PROFILE_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;)&#039; | jq -r .metadata.uid`&lt;br /&gt;
 #OLD export K8S_VERSION=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;)&#039; | jq -r .spec.published.packs[1].tag`&lt;br /&gt;
 export CLUSTER_PROFILE_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.spec.published.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;) | select(.spec.published.profileVersion==&amp;quot;&#039;${CLUSTER_PROFILE_VERSION}&#039;&amp;quot;)&#039; | jq -r .spec.published.uid`&lt;br /&gt;
 export PROJECT_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/projects&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${PROFILE_NAME}&#039;&amp;quot;)&#039; | jq -r .metadata.uid`&lt;br /&gt;
 export K8S_VERSION=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;) | select(.spec.published.profileVersion==&amp;quot;&#039;${CLUSTER_PROFILE_VERSION}&#039;&amp;quot;)&#039; | jq -r .spec.published.packs[1].tag`&lt;br /&gt;
 #echo $CLUSTER_PROFILE_UID; echo $PROJECT_UID; echo $K8S_VERSION;&lt;br /&gt;
 &lt;br /&gt;
 #####################################&lt;br /&gt;
 # Pull Variables from the .arg File #&lt;br /&gt;
 #####################################&lt;br /&gt;
 export CUSTOM_TAG=`cat .arg | grep CUSTOM_TAG | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export IMAGE_REGISTRY=`cat .arg | grep IMAGE_REGISTRY | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_DISTRIBUTION=`cat .arg | grep OS_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_VERSION=`cat .arg | grep OS_VERSION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export K8S_DISTRIBUTION=`cat .arg | grep K8S_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export ISO_NAME=`cat .arg | grep ISO_NAME | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 #echo $CUSTOM_TAG; echo $IMAGE_REGISTRY; echo $OS_DISTRIBUTION; echo $OS_VERSION; echo $K8S_DISTRIBUTION; echo $ISO_NAME&lt;br /&gt;
 &lt;br /&gt;
 echo &#039;{&amp;quot;&#039;$K8S_DISTRIBUTION&#039;&amp;quot;:[&amp;quot;&#039;$K8S_VERSION&#039;&amp;quot;]}&#039; | jq &amp;gt; k8s_version.json; # Set only the version you need in the k8s_version.json. This needs to match the version in your profile.&lt;br /&gt;
 #cat k8s_version.json&lt;br /&gt;
 &lt;br /&gt;
 #########################################&lt;br /&gt;
 # Customize the Local-Ui (Not-Required) #&lt;br /&gt;
 #########################################&lt;br /&gt;
 mkdir -p local-ui/ui&lt;br /&gt;
 mkdir -p local-ui/app&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/customizations.json &amp;gt; local-ui/ui/customizations.json&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/index.html &amp;gt; local-ui/app/index.html&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/154x65.png &amp;gt; local-ui/ui/154x65.png&lt;br /&gt;
 tar cvf local-ui.tar local-ui&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Build the Provider Images #&lt;br /&gt;
 #############################&lt;br /&gt;
 #sudo ./earthly.sh +build-provider-images &lt;br /&gt;
 sudo ./earthly.sh +build-provider-images-fips &lt;br /&gt;
&lt;br /&gt;
 #############################################&lt;br /&gt;
 # Push the Provider image to the Image Repo #&lt;br /&gt;
 #############################################&lt;br /&gt;
 docker push $IMAGE_REGISTRY/$OS_DISTRIBUTION:$K8S_DISTRIBUTION-$K8S_VERSION-$EDGE_CLI_VERSION-$CUSTOM_TAG &lt;br /&gt;
 &lt;br /&gt;
 ###########################################################&lt;br /&gt;
 # Export the Vertex Profile Definition and Content Bundle #&lt;br /&gt;
 ########################################################### &lt;br /&gt;
 palette-edge build --api-key $API_KEY \&lt;br /&gt;
 --project-id $PROJECT_UID \&lt;br /&gt;
 --cluster-profile-ids $CLUSTER_PROFILE_UID \&lt;br /&gt;
 --palette-endpoint $PALETTE_ENDPOINT \&lt;br /&gt;
 --outfile $CLUSTER_PROFILE_NAME-content-bundle \&lt;br /&gt;
 --include-palette-content \&lt;br /&gt;
 --cluster-definition-name $CLUSTER_PROFILE_NAME-cluster-definition \&lt;br /&gt;
 --cluster-definition-profile-ids $CLUSTER_PROFILE_UID &lt;br /&gt;
&lt;br /&gt;
 ############################&lt;br /&gt;
 # Build the All-In-One ISO #&lt;br /&gt;
 ############################&lt;br /&gt;
 sudo ./earthly.sh +iso&lt;br /&gt;
 &lt;br /&gt;
 #######################################&lt;br /&gt;
 # Move the ISO to my VMware Datastore #&lt;br /&gt;
 #######################################&lt;br /&gt;
 touch ~/CanvOS/build/$ISO_NAME.iso&lt;br /&gt;
 mv ~/CanvOS/build/$ISO_NAME.iso /nfs/0-ISOs/&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Building Provider Images ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-provider-images/&lt;br /&gt;
=== Build Content Bundle ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-content-bundle/&lt;br /&gt;
=== Create Installer ISO ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso/&lt;br /&gt;
=== Local-UI Custom Branding ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/theming/&lt;br /&gt;
=== Local-UI Custom Links ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/custom-link/&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=698</id>
		<title>SpectroCloud/AirGapEdgeISO</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/AirGapEdgeISO&amp;diff=698"/>
		<updated>2025-04-17T16:26:40Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Build the All-In-One ISO File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Air-Gapped Edge ISO =&lt;br /&gt;
== Prerequisites==&lt;br /&gt;
=== DER&#039;s Lab Specific ===&lt;br /&gt;
 #######################################&lt;br /&gt;
 # Build the ISO on the JUMPBOX Server #&lt;br /&gt;
 #######################################&lt;br /&gt;
 ssh ders@172.16.84.34&lt;br /&gt;
 sudo su - &lt;br /&gt;
&lt;br /&gt;
 ##############################&lt;br /&gt;
 # Mount the VMware Datastore #&lt;br /&gt;
 ##############################&lt;br /&gt;
 echo &amp;quot;172.16.84.7:/data/hdd/0-ISOs    /nfs/0-ISOs             nfs defaults    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 cat /etc/fstab&lt;br /&gt;
 mkdir -p /nfs/0-ISOs&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 mount -a&lt;br /&gt;
&lt;br /&gt;
=== ISO Build Requirements ===&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Create Harbor Repo for the provider images #&lt;br /&gt;
 ##############################################&lt;br /&gt;
 # Name: airgap-edge&lt;br /&gt;
 # Type: public&lt;br /&gt;
&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # Update the .args file and BYOI Layer with the Following Info: #&lt;br /&gt;
 #################################################################&lt;br /&gt;
 # BYOI VALUES:&lt;br /&gt;
 options:&lt;br /&gt;
   system.uri: &amp;lt;nowiki&amp;gt;&amp;quot;{{ .spectro.pack.edge-native-byoi.options.system.registry }}/{{ .spectro.pack.edge-native-byoi.options.system.repo }}:{{ .spectro.pack.edge-native-byoi.options.system.k8sDistribution }}-{{.spectro.system.kubernetes.version }}-{{ .spectro.pack.edge-native-byoi.options.system.peVersion }}-{{ .spectro.pack.edge-native-byoi.options.system.customTag }}&amp;quot;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
   system.registry: harbor.dersllc.com/airgap-edge&lt;br /&gt;
   system.repo: ubuntu&lt;br /&gt;
   system.k8sDistribution: kubeadm&lt;br /&gt;
   system.osName: ubuntu&lt;br /&gt;
   system.peVersion: v4.6.3&lt;br /&gt;
   system.customTag: ders-edge&lt;br /&gt;
   system.osVersion: 22.04&lt;br /&gt;
 #&lt;br /&gt;
 # .ARG FILE:&lt;br /&gt;
 # CUSTOM_TAG=ders-edge&lt;br /&gt;
 # IMAGE_REGISTRY=harbor.dersllc.com/airgap-edge&lt;br /&gt;
 # OS_DISTRIBUTION=ubuntu&lt;br /&gt;
 # IMAGE_REPO=$OS_DISTRIBUTION&lt;br /&gt;
 # OS_VERSION=22.04&lt;br /&gt;
 # K8S_DISTRIBUTION=kubeadm&lt;br /&gt;
 # ISO_NAME=ders-edge-installer&lt;br /&gt;
 # ARCH=amd64&lt;br /&gt;
 # UPDATE_KERNEL=false&lt;br /&gt;
 # CLUSTERCONFIG=test-edge-iso-profile-cluster-definition.tgz&lt;br /&gt;
 # CIS_HARDENING=true&lt;br /&gt;
 # BASE_IMAGE=quay.io/kairos/ubuntu:24.04-core-amd64-generic-v3.0.14&lt;br /&gt;
&lt;br /&gt;
 # CHANGE THE FOLLOWING IN THE K8S LAYER&lt;br /&gt;
 # REMOVE: AlwaysPullImages&lt;br /&gt;
 # MAKE SURE YOU HAVE THE HARBOR-EDGE-NATIVE-CONFIG LAYER ADDED TO THE PROFILE&lt;br /&gt;
&lt;br /&gt;
== Build the All-In-One ISO File ==&lt;br /&gt;
 ######################&lt;br /&gt;
 # REQUIRED VARIABLES #&lt;br /&gt;
 ######################&lt;br /&gt;
 export OS=ubuntu-fips;                                                          #rhel, rhel-fips, ubuntu, ubuntu-fips&lt;br /&gt;
 export PALETTE_ENDPOINT=&amp;quot;paas.dersllc.com&amp;quot;;&lt;br /&gt;
 export API_KEY=&#039;Y2ZiYWZkNWRmN2E0YjAzYTFjYjYyOTBhMjk3YjZlMDg=&#039;;&lt;br /&gt;
 export CLUSTER_PROFILE_NAME=&amp;quot;test-edge-iso-$OS&amp;quot;&lt;br /&gt;
 export CLUSTER_PROFILE_VERSION=1.0.2&lt;br /&gt;
 export PROFILE_NAME=&amp;quot;Default&amp;quot;;&lt;br /&gt;
 export EDGE_CLI_VERSION=&amp;quot;v4.6.9&amp;quot;;                                             #https://docs.spectrocloud.com/component/#palette-edge-cli-versions&lt;br /&gt;
 &lt;br /&gt;
 #################################&lt;br /&gt;
 # Download the Palette-Edge CLI #&lt;br /&gt;
 #################################&lt;br /&gt;
 wget https://software.spectrocloud.com/stylus/$EDGE_CLI_VERSION/cli/linux/palette-edge&lt;br /&gt;
 chmod +x palette-edge&lt;br /&gt;
 mv palette-edge /usr/local/bin&lt;br /&gt;
 cd ~; rm -rf CanvOS&lt;br /&gt;
 &lt;br /&gt;
 ###################################&lt;br /&gt;
 # Use GIT to pull the CanvOS Repo #&lt;br /&gt;
 ###################################&lt;br /&gt;
 git clone https://github.com/spectrocloud/CanvOS.git&lt;br /&gt;
 cd CanvOS&lt;br /&gt;
 #                   export EDGE_CLI_VERSION=`git tag | sort --version-sort | tail -1`&lt;br /&gt;
 git checkout $EDGE_CLI_VERSION &lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the .arg and user-data file from gitlab #&lt;br /&gt;
 ################################################&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/.arg-$OS.yaml &amp;gt; .arg&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/user-data-$OS.yaml &amp;gt; user-data&lt;br /&gt;
 #sudo ./earthly.sh +validate-user-data &lt;br /&gt;
 &lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 # Get the Project and Cluster Profile IDs and K8S Version from the VERTEX API #&lt;br /&gt;
 ###############################################################################&lt;br /&gt;
 #OLD: export CLUSTER_PROFILE_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;)&#039; | jq -r .metadata.uid`&lt;br /&gt;
 #OLD export K8S_VERSION=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;)&#039; | jq -r .spec.published.packs[1].tag`&lt;br /&gt;
 export CLUSTER_PROFILE_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.spec.published.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;) | select(.spec.published.profileVersion==&amp;quot;&#039;${CLUSTER_PROFILE_VERSION}&#039;&amp;quot;)&#039; | jq -r .spec.published.uid`&lt;br /&gt;
 export PROJECT_UID=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/projects&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${PROFILE_NAME}&#039;&amp;quot;)&#039; | jq -r .metadata.uid`&lt;br /&gt;
 export K8S_VERSION=`curl -L &#039;https://&#039;${PALETTE_ENDPOINT}&#039;/v1/clusterprofiles&#039; -H &#039;Accept: application/json&#039; -H &#039;ApiKey: &#039;$API_KEY | jq &#039;.items[] | select(.metadata.name==&amp;quot;&#039;${CLUSTER_PROFILE_NAME}&#039;&amp;quot;) | select(.spec.published.profileVersion==&amp;quot;&#039;${CLUSTER_PROFILE_VERSION}&#039;&amp;quot;)&#039; | jq -r .spec.published.packs[1].tag`&lt;br /&gt;
 #echo $CLUSTER_PROFILE_UID; echo $PROJECT_UID; echo $K8S_VERSION;&lt;br /&gt;
 &lt;br /&gt;
 #####################################&lt;br /&gt;
 # Pull Variables from the .arg File #&lt;br /&gt;
 #####################################&lt;br /&gt;
 export CUSTOM_TAG=`cat .arg | grep CUSTOM_TAG | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export IMAGE_REGISTRY=`cat .arg | grep IMAGE_REGISTRY | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_DISTRIBUTION=`cat .arg | grep OS_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export OS_VERSION=`cat .arg | grep OS_VERSION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export K8S_DISTRIBUTION=`cat .arg | grep K8S_DISTRIBUTION | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 export ISO_NAME=`cat .arg | grep ISO_NAME | cut -d &amp;quot;=&amp;quot; -f 2`&lt;br /&gt;
 #echo $CUSTOM_TAG; echo $IMAGE_REGISTRY; echo $OS_DISTRIBUTION; echo $OS_VERSION; echo $K8S_DISTRIBUTION; echo $ISO_NAME&lt;br /&gt;
 &lt;br /&gt;
 echo &#039;{&amp;quot;&#039;$K8S_DISTRIBUTION&#039;&amp;quot;:[&amp;quot;&#039;$K8S_VERSION&#039;&amp;quot;]}&#039; | jq &amp;gt; k8s_version.json; # Set only the version you need in the k8s_version.json. This needs to match the version in your profile.&lt;br /&gt;
 #cat k8s_version.json&lt;br /&gt;
 &lt;br /&gt;
 #########################################&lt;br /&gt;
 # Customize the Local-Ui (Not-Required) #&lt;br /&gt;
 #########################################&lt;br /&gt;
 mkdir -p local-ui/ui&lt;br /&gt;
 mkdir -p local-ui/app&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/customizations.json &amp;gt; local-ui/ui/customizations.json&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/index.html &amp;gt; local-ui/app/index.html&lt;br /&gt;
 curl https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/airgapped-edge/customizations/154x65.png &amp;gt; local-ui/ui/154x65.png&lt;br /&gt;
 tar cvf local-ui.tar local-ui&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Build the Provider Images #&lt;br /&gt;
 #############################&lt;br /&gt;
 #sudo ./earthly.sh +build-provider-images &lt;br /&gt;
 sudo ./earthly.sh +build-provider-images-fips &lt;br /&gt;
&lt;br /&gt;
 #############################################&lt;br /&gt;
 # Push the Provider image to the Image Repo #&lt;br /&gt;
 #############################################&lt;br /&gt;
 docker push $IMAGE_REGISTRY/$OS_DISTRIBUTION:$K8S_DISTRIBUTION-$K8S_VERSION-$EDGE_CLI_VERSION-$CUSTOM_TAG &lt;br /&gt;
 &lt;br /&gt;
 ###########################################################&lt;br /&gt;
 # Export the Vertex Profile Definition and Content Bundle #&lt;br /&gt;
 ########################################################### &lt;br /&gt;
 palette-edge build --api-key $API_KEY \&lt;br /&gt;
 --project-id $PROJECT_UID \&lt;br /&gt;
 --cluster-profile-ids $CLUSTER_PROFILE_UID \&lt;br /&gt;
 --palette-endpoint $PALETTE_ENDPOINT \&lt;br /&gt;
 --outfile $CLUSTER_PROFILE_NAME-content-bundle \&lt;br /&gt;
 --include-palette-content \&lt;br /&gt;
 --cluster-definition-name $CLUSTER_PROFILE_NAME-cluster-definition \&lt;br /&gt;
 --cluster-definition-profile-ids $CLUSTER_PROFILE_UID &lt;br /&gt;
&lt;br /&gt;
 ############################&lt;br /&gt;
 # Build the All-In-One ISO #&lt;br /&gt;
 ############################&lt;br /&gt;
 sudo ./earthly.sh +iso&lt;br /&gt;
 &lt;br /&gt;
 #######################################&lt;br /&gt;
 # Move the ISO to my VMware Datastore #&lt;br /&gt;
 #######################################&lt;br /&gt;
 touch ~/CanvOS/build/$ISO_NAME.iso&lt;br /&gt;
 mv ~/CanvOS/build/$ISO_NAME.iso /nfs/0-ISOs/&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Building Provider Images ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-provider-images/&lt;br /&gt;
=== Build Content Bundle ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-content-bundle/&lt;br /&gt;
=== Create Installer ISO ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/edgeforge-workflow/palette-canvos/build-installer-iso/&lt;br /&gt;
=== Local-UI Custom Branding ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/theming/&lt;br /&gt;
=== Local-UI Custom Links ===&lt;br /&gt;
 https://docs.spectrocloud.com/clusters/edge/local-ui/host-management/custom-link/&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/PaletteBackup&amp;diff=697</id>
		<title>SpectroCloud/PaletteBackup</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/PaletteBackup&amp;diff=697"/>
		<updated>2025-04-15T13:10:12Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Common Options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Palette Backup and Restore Tool =&lt;br /&gt;
&lt;br /&gt;
This tool provides full API-based backup and restore capabilities for a self-hosted SpectroCloud Palette instance.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Backup and restore via **Palette API**&lt;br /&gt;
* Supports local user login or API token authentication&lt;br /&gt;
* Backup includes:&lt;br /&gt;
  - Tenants&lt;br /&gt;
  - Projects&lt;br /&gt;
  - Users (with optional redaction)&lt;br /&gt;
  - Roles&lt;br /&gt;
  - SSH Keys&lt;br /&gt;
  - Cloud Accounts&lt;br /&gt;
  - Cluster Profiles&lt;br /&gt;
  - Git Repositories&lt;br /&gt;
  - Blueprints&lt;br /&gt;
  - Clusters (metadata)&lt;br /&gt;
  - Marketplace Items&lt;br /&gt;
* Fine-grained control via `--only`&lt;br /&gt;
* Auto-cleanup of old backups via `--max-backups`&lt;br /&gt;
* Intelligent restore ordering&lt;br /&gt;
* Interactive fallback if flags are omitted&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* Python 3.8+&lt;br /&gt;
* `httpx`&lt;br /&gt;
* Access to a running Palette API (e.g., `https://paas.dersllc.com`)&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
 pip install httpx&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
=== Backup ===&lt;br /&gt;
 python palette-backup.py --mode=backup \&lt;br /&gt;
  --endpoint=https://paas.dersllc.com \&lt;br /&gt;
  --directory=/mnt/backups \&lt;br /&gt;
  --max-backups=5 \&lt;br /&gt;
  --redact&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Restore ===&lt;br /&gt;
 python palette-backup.py --mode=restore \&lt;br /&gt;
  --endpoint=https://paas.dersllc.com \&lt;br /&gt;
  --directory=/mnt/backups \&lt;br /&gt;
  --backup=2025-04-15_03-00 \&lt;br /&gt;
  --force&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Common Options ===&lt;br /&gt;
 | Flag                        | Description                                  |&lt;br /&gt;
 |-----------------------------|----------------------------------------------|&lt;br /&gt;
 | `--mode`                    | `backup` or `restore` (required)             |&lt;br /&gt;
 | `--endpoint`                | Palette API base URL                         |&lt;br /&gt;
 | `--directory`               | Backup root path                             |&lt;br /&gt;
 | `--backup`                  | Subfolder (timestamp) to restore from        |&lt;br /&gt;
 | `--only`                    | Comma-separated list of resource types       |&lt;br /&gt;
 | `--force`                   | Overwrite existing objects                   |&lt;br /&gt;
 | `--max-backups`             | Max folders to keep (backup mode only)       |&lt;br /&gt;
 | `--redact`                  | Remove sensitive fields (users)              |&lt;br /&gt;
 | `--username` / `--password` | Login credentials (prompted if not provided) |&lt;br /&gt;
 | `--api-key`                 | Token auth (bypasses login)                  |&lt;br /&gt;
&lt;br /&gt;
=== Supported Resource Types ===&lt;br /&gt;
 - `tenants`&lt;br /&gt;
 - `projects`&lt;br /&gt;
 - `users`&lt;br /&gt;
 - `roles`&lt;br /&gt;
 - `keys`&lt;br /&gt;
 - `cloud`&lt;br /&gt;
 - `profiles`&lt;br /&gt;
 - `repos`&lt;br /&gt;
 - `blueprints`&lt;br /&gt;
 - `clusters`&lt;br /&gt;
 - `marketplace`&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Redacted backups will exclude passwords and tokens from user records.&lt;br /&gt;
* Restore operations skip existing resources unless `--force` is used.&lt;br /&gt;
* Resource creation order is dependency-aware (e.g., tenants → projects → users).&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
MIT or internal use.&lt;br /&gt;
&lt;br /&gt;
== Maintainer ==&lt;br /&gt;
Daniel Roessner&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/PaletteBackup&amp;diff=696</id>
		<title>SpectroCloud/PaletteBackup</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/PaletteBackup&amp;diff=696"/>
		<updated>2025-04-15T13:10:01Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Common Options */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Palette Backup and Restore Tool =&lt;br /&gt;
&lt;br /&gt;
This tool provides full API-based backup and restore capabilities for a self-hosted SpectroCloud Palette instance.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Backup and restore via **Palette API**&lt;br /&gt;
* Supports local user login or API token authentication&lt;br /&gt;
* Backup includes:&lt;br /&gt;
  - Tenants&lt;br /&gt;
  - Projects&lt;br /&gt;
  - Users (with optional redaction)&lt;br /&gt;
  - Roles&lt;br /&gt;
  - SSH Keys&lt;br /&gt;
  - Cloud Accounts&lt;br /&gt;
  - Cluster Profiles&lt;br /&gt;
  - Git Repositories&lt;br /&gt;
  - Blueprints&lt;br /&gt;
  - Clusters (metadata)&lt;br /&gt;
  - Marketplace Items&lt;br /&gt;
* Fine-grained control via `--only`&lt;br /&gt;
* Auto-cleanup of old backups via `--max-backups`&lt;br /&gt;
* Intelligent restore ordering&lt;br /&gt;
* Interactive fallback if flags are omitted&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* Python 3.8+&lt;br /&gt;
* `httpx`&lt;br /&gt;
* Access to a running Palette API (e.g., `https://paas.dersllc.com`)&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
 pip install httpx&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
=== Backup ===&lt;br /&gt;
 python palette-backup.py --mode=backup \&lt;br /&gt;
  --endpoint=https://paas.dersllc.com \&lt;br /&gt;
  --directory=/mnt/backups \&lt;br /&gt;
  --max-backups=5 \&lt;br /&gt;
  --redact&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Restore ===&lt;br /&gt;
 python palette-backup.py --mode=restore \&lt;br /&gt;
  --endpoint=https://paas.dersllc.com \&lt;br /&gt;
  --directory=/mnt/backups \&lt;br /&gt;
  --backup=2025-04-15_03-00 \&lt;br /&gt;
  --force&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Common Options ===&lt;br /&gt;
 | Flag                        | Description                                  |&lt;br /&gt;
 |-----------------------------|----------------------------------------------|&lt;br /&gt;
 | `--mode`                    | `backup` or `restore` (required)             |&lt;br /&gt;
 | `--endpoint`                | Palette API base URL                         |&lt;br /&gt;
 | `--directory`               | Backup root path                             |&lt;br /&gt;
 | `--backup`                  | Subfolder (timestamp) to restore from        |&lt;br /&gt;
 | `--only`                    | Comma-separated list of resource types       |&lt;br /&gt;
 | `--force`                   | Overwrite existing objects                   |&lt;br /&gt;
 | `--max-backups`             | Max folders to keep (backup mode only)       |&lt;br /&gt;
 | `--redact`                  | Remove sensitive fields (users)              |&lt;br /&gt;
 | `--username` / `--password` | Login credentials (prompted if not provided) |&lt;br /&gt;
 | `--api-key`                 | Token auth (bypasses login)                  |&lt;br /&gt;
 |-----------------------------|----------------------------------------------|&lt;br /&gt;
&lt;br /&gt;
=== Supported Resource Types ===&lt;br /&gt;
 - `tenants`&lt;br /&gt;
 - `projects`&lt;br /&gt;
 - `users`&lt;br /&gt;
 - `roles`&lt;br /&gt;
 - `keys`&lt;br /&gt;
 - `cloud`&lt;br /&gt;
 - `profiles`&lt;br /&gt;
 - `repos`&lt;br /&gt;
 - `blueprints`&lt;br /&gt;
 - `clusters`&lt;br /&gt;
 - `marketplace`&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Redacted backups will exclude passwords and tokens from user records.&lt;br /&gt;
* Restore operations skip existing resources unless `--force` is used.&lt;br /&gt;
* Resource creation order is dependency-aware (e.g., tenants → projects → users).&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
MIT or internal use.&lt;br /&gt;
&lt;br /&gt;
== Maintainer ==&lt;br /&gt;
Daniel Roessner&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/PaletteBackup&amp;diff=695</id>
		<title>SpectroCloud/PaletteBackup</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/PaletteBackup&amp;diff=695"/>
		<updated>2025-04-15T13:07:01Z</updated>

		<summary type="html">&lt;p&gt;Ders: Created page with &amp;quot;= Palette Backup and Restore Tool =  This tool provides full API-based backup and restore capabilities for a self-hosted SpectroCloud Palette instance.  == Features == * Backup and restore via **Palette API** * Supports local user login or API token authentication * Backup includes:   - Tenants   - Projects   - Users (with optional redaction)   - Roles   - SSH Keys   - Cloud Accounts   - Cluster Profiles   - Git Repositories   - Blueprints   - Clusters (metadata)   - Mar...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Palette Backup and Restore Tool =&lt;br /&gt;
&lt;br /&gt;
This tool provides full API-based backup and restore capabilities for a self-hosted SpectroCloud Palette instance.&lt;br /&gt;
&lt;br /&gt;
== Features ==&lt;br /&gt;
* Backup and restore via **Palette API**&lt;br /&gt;
* Supports local user login or API token authentication&lt;br /&gt;
* Backup includes:&lt;br /&gt;
  - Tenants&lt;br /&gt;
  - Projects&lt;br /&gt;
  - Users (with optional redaction)&lt;br /&gt;
  - Roles&lt;br /&gt;
  - SSH Keys&lt;br /&gt;
  - Cloud Accounts&lt;br /&gt;
  - Cluster Profiles&lt;br /&gt;
  - Git Repositories&lt;br /&gt;
  - Blueprints&lt;br /&gt;
  - Clusters (metadata)&lt;br /&gt;
  - Marketplace Items&lt;br /&gt;
* Fine-grained control via `--only`&lt;br /&gt;
* Auto-cleanup of old backups via `--max-backups`&lt;br /&gt;
* Intelligent restore ordering&lt;br /&gt;
* Interactive fallback if flags are omitted&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
* Python 3.8+&lt;br /&gt;
* `httpx`&lt;br /&gt;
* Access to a running Palette API (e.g., `https://paas.dersllc.com`)&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
 pip install httpx&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
=== Backup ===&lt;br /&gt;
 python palette-backup.py --mode=backup \&lt;br /&gt;
  --endpoint=https://paas.dersllc.com \&lt;br /&gt;
  --directory=/mnt/backups \&lt;br /&gt;
  --max-backups=5 \&lt;br /&gt;
  --redact&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Restore ===&lt;br /&gt;
 python palette-backup.py --mode=restore \&lt;br /&gt;
  --endpoint=https://paas.dersllc.com \&lt;br /&gt;
  --directory=/mnt/backups \&lt;br /&gt;
  --backup=2025-04-15_03-00 \&lt;br /&gt;
  --force&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Common Options ===&lt;br /&gt;
| Flag              | Description |&lt;br /&gt;
|-------------------|-------------|&lt;br /&gt;
| `--mode`          | `backup` or `restore` (required) |&lt;br /&gt;
| `--endpoint`      | Palette API base URL |&lt;br /&gt;
| `--directory`     | Backup root path |&lt;br /&gt;
| `--backup`        | Subfolder (timestamp) to restore from |&lt;br /&gt;
| `--only`          | Comma-separated list of resource types |&lt;br /&gt;
| `--force`         | Overwrite existing objects |&lt;br /&gt;
| `--max-backups`   | Max folders to keep (backup mode only) |&lt;br /&gt;
| `--redact`        | Remove sensitive fields (users) |&lt;br /&gt;
| `--username` / `--password` | Login credentials (prompted if not provided) |&lt;br /&gt;
| `--api-key`       | Token auth (bypasses login) |&lt;br /&gt;
&lt;br /&gt;
=== Supported Resource Types ===&lt;br /&gt;
 - `tenants`&lt;br /&gt;
 - `projects`&lt;br /&gt;
 - `users`&lt;br /&gt;
 - `roles`&lt;br /&gt;
 - `keys`&lt;br /&gt;
 - `cloud`&lt;br /&gt;
 - `profiles`&lt;br /&gt;
 - `repos`&lt;br /&gt;
 - `blueprints`&lt;br /&gt;
 - `clusters`&lt;br /&gt;
 - `marketplace`&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* Redacted backups will exclude passwords and tokens from user records.&lt;br /&gt;
* Restore operations skip existing resources unless `--force` is used.&lt;br /&gt;
* Resource creation order is dependency-aware (e.g., tenants → projects → users).&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
MIT or internal use.&lt;br /&gt;
&lt;br /&gt;
== Maintainer ==&lt;br /&gt;
Daniel Roessner&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud&amp;diff=694</id>
		<title>SpectroCloud</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud&amp;diff=694"/>
		<updated>2025-04-15T13:06:44Z</updated>

		<summary type="html">&lt;p&gt;Ders: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[SpectroCloud/VertexInstall | Vertex Installation Instructions]] &amp;lt;BR&amp;gt;&lt;br /&gt;
[[SpectroCloud/VertexISOInstall | Vertex ISO Installation Instructions]] &amp;lt;BR&amp;gt;&lt;br /&gt;
[[SpectroCloud/VertexHelmInstall | Vertex Helm Installation Instructions]] &amp;lt;BR&amp;gt;&lt;br /&gt;
[[SpectroCloud/VertexUpgrade | Vertex Upgrade Instructions]] &amp;lt;BR&amp;gt;&lt;br /&gt;
[[SpectroCloud/VertexLabConfig | Vertex Lab Configuration]] &amp;lt;BR&amp;gt;&lt;br /&gt;
[[SpectroCloud/MAAS | MAAS Information]] &amp;lt;BR&amp;gt;&lt;br /&gt;
[[SpectroCloud/RaspberryPiEdgePrep | RaspberryPi Edge Prep]] &amp;lt;BR&amp;gt;&lt;br /&gt;
[[SpectroCloud/RaspberryPiEdge | RaspberryPi Edge]] &amp;lt;BR&amp;gt;&lt;br /&gt;
[[SpectroCloud/Packs | Packs]] &amp;lt;BR&amp;gt;&lt;br /&gt;
[[SpectroCloud/AirGapEdgeISO | Air-Gapped Edge ISO]] &amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[SpectroCloud/PaletteBackup | Palette Backup Script]] &amp;lt;BR&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=693</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=693"/>
		<updated>2025-04-11T16:38:45Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-k3s -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi (latest)&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export K8S_VERSION=&amp;quot;1.32.1&amp;quot;&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack docker.io -y&lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 &lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-pack-edge-k3s-$K8S_VERSION.bin --target ./trash&lt;br /&gt;
 export IMAGES=`cat ./trash/docker/images.lst | cut -d &#039;,&#039; -f 2`&lt;br /&gt;
 for i in $IMAGES; \&lt;br /&gt;
 do  \&lt;br /&gt;
   docker pull --platform arm64 $i; \&lt;br /&gt;
   docker tag $i $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
   docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
 done&lt;br /&gt;
 rm -rf ./trash&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://paas.dersllc.com/admin/settings/registries/oci&lt;br /&gt;
 # DER&#039;s Spectro-Packs -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull --platform arm64 us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v$AGENT_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v$AGENT_VERSION &amp;gt; arm-agent-$AGENT_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v$AGENT_VERSION/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$AGENT_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
Error:&lt;br /&gt;
 time=&amp;quot;2025-04-11T16:25:35Z&amp;quot; level=error msg=&amp;quot;system image is not defined cannot apply upgrade&amp;quot; version=v4.6.12&lt;br /&gt;
Fix:&lt;br /&gt;
 export VERTEX_ENDPOINT=&amp;quot;paas.dersllc.com&amp;quot;&lt;br /&gt;
 export IMG_HOST_ENDPOINT=&amp;quot;us-docker.pkg.dev/palette-images/edge&amp;quot;&lt;br /&gt;
 export STYLUS_IMG_ENDPOINT=&amp;quot;harbor.dersllc.com/airgap-spectro-images/us-docker.pkg.dev/palette-images-fips/edge&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 export AUTH_TOKEN=`curl --insecure -X POST -H &amp;quot;Content-Type: application/json&amp;quot; -d &#039;{&amp;quot;username&amp;quot;:&amp;quot;admin&amp;quot;,&amp;quot;password&amp;quot;:&amp;quot;{{highlight|&amp;lt;password&amp;gt;}}&amp;quot;}&#039; https://api.$VERTEX_ENDPOINT/v1/auth/syslogin | jq -r &#039;.Authorization&#039;`&lt;br /&gt;
 #echo $AUTH_TOKEN&lt;br /&gt;
 echo &amp;quot;curl --insecure -X GET -H &#039;Authorization: $AUTH_TOKEN&#039;  https://api.$VERTEX_ENDPOINT/v1/system/config/edgeNative/image&amp;quot; | bash -&lt;br /&gt;
 echo &amp;quot;curl --insecure -X PUT -H &#039;Authorization: $AUTH_TOKEN&#039; -H &#039;Content-Type: application/json&#039; -d &#039;{\&amp;quot;spec\&amp;quot;:{\&amp;quot;imagesHostEndpoint\&amp;quot;:\&amp;quot;$IMG_HOST_ENDPOINT\&amp;quot;,\&amp;quot;stylusImagesEndpoint\&amp;quot;:\&amp;quot;$STYLUS_IMG_ENDPOINT\&amp;quot;}}&#039; https://api.$VERTEX_ENDPOINT/v1/system/config/edgeNative/image&amp;quot; | bash -&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=692</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=692"/>
		<updated>2025-04-11T16:37:56Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-k3s -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi (latest)&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export K8S_VERSION=&amp;quot;1.32.1&amp;quot;&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack docker.io -y&lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 &lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-pack-edge-k3s-$K8S_VERSION.bin --target ./trash&lt;br /&gt;
 export IMAGES=`cat ./trash/docker/images.lst | cut -d &#039;,&#039; -f 2`&lt;br /&gt;
 for i in $IMAGES; \&lt;br /&gt;
 do  \&lt;br /&gt;
   docker pull --platform arm64 $i; \&lt;br /&gt;
   docker tag $i $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
   docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
 done&lt;br /&gt;
 rm -rf ./trash&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://paas.dersllc.com/admin/settings/registries/oci&lt;br /&gt;
 # DER&#039;s Spectro-Packs -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull --platform arm64 us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v$AGENT_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v$AGENT_VERSION &amp;gt; arm-agent-$AGENT_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v$AGENT_VERSION/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$AGENT_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
Error:&lt;br /&gt;
 time=&amp;quot;2025-04-11T16:25:35Z&amp;quot; level=error msg=&amp;quot;system image is not defined cannot apply upgrade&amp;quot; version=v4.6.12&lt;br /&gt;
Fix:&lt;br /&gt;
 export VERTEX_ENDPOINT=&amp;quot;paas.dersllc.com&amp;quot;&lt;br /&gt;
 export IMG_HOST_ENDPOINT=&amp;quot;us-docker.pkg.dev/palette-images/edge&amp;quot;&lt;br /&gt;
 export STYLUS_IMG_ENDPOINT=&amp;quot;harbor.dersllc.com/airgap-spectro-images/us-docker.pkg.dev/palette-images-fips/edge&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 export AUTH_TOKEN=`curl --insecure -X POST -H &amp;quot;Content-Type: application/json&amp;quot; -d &#039;{&amp;quot;username&amp;quot;:&amp;quot;admin&amp;quot;,&amp;quot;password&amp;quot;:&amp;quot;&amp;lt;password&amp;gt;&amp;quot;}&#039; https://api.$VERTEX_ENDPOINT/v1/auth/syslogin | jq -r &#039;.Authorization&#039;`&lt;br /&gt;
 #echo $AUTH_TOKEN&lt;br /&gt;
 echo &amp;quot;curl --insecure -X GET -H &#039;Authorization: $AUTH_TOKEN&#039;  https://api.$VERTEX_ENDPOINT/v1/system/config/edgeNative/image&amp;quot; | bash -&lt;br /&gt;
 echo &amp;quot;curl --insecure -X PUT -H &#039;Authorization: $AUTH_TOKEN&#039; -H &#039;Content-Type: application/json&#039; -d &#039;{\&amp;quot;spec\&amp;quot;:{\&amp;quot;imagesHostEndpoint\&amp;quot;:\&amp;quot;$IMG_HOST_ENDPOINT\&amp;quot;,\&amp;quot;stylusImagesEndpoint\&amp;quot;:\&amp;quot;$STYLUS_IMG_ENDPOINT\&amp;quot;}}&#039; https://api.$VERTEX_ENDPOINT/v1/system/config/edgeNative/image&amp;quot; | bash -&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=691</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=691"/>
		<updated>2025-04-11T16:31:33Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Appendix */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-k3s -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi (latest)&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export K8S_VERSION=&amp;quot;1.32.1&amp;quot;&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack docker.io -y&lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 &lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-pack-edge-k3s-$K8S_VERSION.bin --target ./trash&lt;br /&gt;
 export IMAGES=`cat ./trash/docker/images.lst | cut -d &#039;,&#039; -f 2`&lt;br /&gt;
 for i in $IMAGES; \&lt;br /&gt;
 do  \&lt;br /&gt;
   docker pull --platform arm64 $i; \&lt;br /&gt;
   docker tag $i $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
   docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
 done&lt;br /&gt;
 rm -rf ./trash&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://paas.dersllc.com/admin/settings/registries/oci&lt;br /&gt;
 # DER&#039;s Spectro-Packs -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull --platform arm64 us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v$AGENT_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v$AGENT_VERSION &amp;gt; arm-agent-$AGENT_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v$AGENT_VERSION/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$AGENT_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
===Troubleshooting===&lt;br /&gt;
Error:&lt;br /&gt;
 time=&amp;quot;2025-04-11T16:25:35Z&amp;quot; level=error msg=&amp;quot;system image is not defined cannot apply upgrade&amp;quot; version=v4.6.12&lt;br /&gt;
Fix:&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=690</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=690"/>
		<updated>2025-04-11T16:03:24Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Install Palette Agent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-k3s -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi (latest)&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export K8S_VERSION=&amp;quot;1.32.1&amp;quot;&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack docker.io -y&lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 &lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-pack-edge-k3s-$K8S_VERSION.bin --target ./trash&lt;br /&gt;
 export IMAGES=`cat ./trash/docker/images.lst | cut -d &#039;,&#039; -f 2`&lt;br /&gt;
 for i in $IMAGES; \&lt;br /&gt;
 do  \&lt;br /&gt;
   docker pull --platform arm64 $i; \&lt;br /&gt;
   docker tag $i $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
   docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
 done&lt;br /&gt;
 rm -rf ./trash&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://paas.dersllc.com/admin/settings/registries/oci&lt;br /&gt;
 # DER&#039;s Spectro-Packs -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull --platform arm64 us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v$AGENT_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v$AGENT_VERSION &amp;gt; arm-agent-$AGENT_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v$AGENT_VERSION/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$AGENT_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=689</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=689"/>
		<updated>2025-04-11T16:03:04Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Prepare Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-k3s -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi (latest)&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export K8S_VERSION=&amp;quot;1.32.1&amp;quot;&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack docker.io -y&lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 &lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-pack-edge-k3s-$K8S_VERSION.bin --target ./trash&lt;br /&gt;
 export IMAGES=`cat ./trash/docker/images.lst | cut -d &#039;,&#039; -f 2`&lt;br /&gt;
 for i in $IMAGES; \&lt;br /&gt;
 do  \&lt;br /&gt;
   docker pull --platform arm64 $i; \&lt;br /&gt;
   docker tag $i $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
   docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
 done&lt;br /&gt;
 rm -rf ./trash&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://paas.dersllc.com/admin/settings/registries/oci&lt;br /&gt;
 # DER&#039;s Spectro-Packs -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull --platform arm64 us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 #################&lt;br /&gt;
 # SET VARIABLES #&lt;br /&gt;
 #################&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack docker.io -y&lt;br /&gt;
 &lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v$AGENT_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v$AGENT_VERSION &amp;gt; arm-agent-$AGENT_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v$AGENT_VERSION/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$AGENT_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=688</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=688"/>
		<updated>2025-04-11T16:01:42Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Raspberry Pi Edge Install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-k3s -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi (latest)&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export K8S_VERSION=&amp;quot;1.32.1&amp;quot;&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack docker.io -y&lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
&lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-pack-edge-k3s-$K8S_VERSION.bin --target ./trash&lt;br /&gt;
 export IMAGES=`cat ./trash/docker/images.lst | cut -d &#039;,&#039; -f 2`&lt;br /&gt;
 for i in $IMAGES; \&lt;br /&gt;
 do  \&lt;br /&gt;
   docker pull --platform arm64 $i; \&lt;br /&gt;
   docker tag $i $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
   docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
 done&lt;br /&gt;
 rm -rf ./trash&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://paas.dersllc.com/admin/settings/registries/oci&lt;br /&gt;
 # DER&#039;s Spectro-Packs -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull --platform arm64 us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 #################&lt;br /&gt;
 # SET VARIABLES #&lt;br /&gt;
 #################&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack docker.io -y&lt;br /&gt;
 &lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v$AGENT_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v$AGENT_VERSION &amp;gt; arm-agent-$AGENT_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v$AGENT_VERSION/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$AGENT_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=687</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=687"/>
		<updated>2025-04-11T15:59:23Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Install Palette Agent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-k3s -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi (latest)&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export K8S_VERSION=&amp;quot;1.32.1&amp;quot;&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 snap install docker&lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-pack-edge-k3s-$K8S_VERSION.bin --target ./trash&lt;br /&gt;
 export IMAGES=`cat ./trash/docker/images.lst | cut -d &#039;,&#039; -f 2`&lt;br /&gt;
 for i in $IMAGES; \&lt;br /&gt;
 do  \&lt;br /&gt;
   docker pull --platform arm64 $i; \&lt;br /&gt;
   docker tag $i $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
   docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
 done&lt;br /&gt;
 rm -rf ./trash&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://paas.dersllc.com/admin/settings/registries/oci&lt;br /&gt;
 # DER&#039;s Spectro-Packs -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull --platform arm64 us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 #################&lt;br /&gt;
 # SET VARIABLES #&lt;br /&gt;
 #################&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack docker.io -y&lt;br /&gt;
 &lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v$AGENT_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v$AGENT_VERSION &amp;gt; arm-agent-$AGENT_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v$AGENT_VERSION/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$AGENT_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=686</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=686"/>
		<updated>2025-04-11T15:58:25Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Install Palette Agent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-k3s -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi (latest)&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export K8S_VERSION=&amp;quot;1.32.1&amp;quot;&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 snap install docker&lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-pack-edge-k3s-$K8S_VERSION.bin --target ./trash&lt;br /&gt;
 export IMAGES=`cat ./trash/docker/images.lst | cut -d &#039;,&#039; -f 2`&lt;br /&gt;
 for i in $IMAGES; \&lt;br /&gt;
 do  \&lt;br /&gt;
   docker pull --platform arm64 $i; \&lt;br /&gt;
   docker tag $i $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
   docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
 done&lt;br /&gt;
 rm -rf ./trash&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://paas.dersllc.com/admin/settings/registries/oci&lt;br /&gt;
 # DER&#039;s Spectro-Packs -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull --platform arm64 us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 #################&lt;br /&gt;
 # SET VARIABLES #&lt;br /&gt;
 #################&lt;br /&gt;
  export AGENT_VERSION=&#039;4.6.12&#039;&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack docker.io -y&lt;br /&gt;
 &lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v$AGENT_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v$AGENT_VERSION &amp;gt; arm-agent-$AGENT_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v$AGENT_VERSION/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$AGENT_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=685</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=685"/>
		<updated>2025-04-11T15:56:34Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Install Palette Agent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-k3s -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi (latest)&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export K8S_VERSION=&amp;quot;1.32.1&amp;quot;&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 snap install docker&lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-pack-edge-k3s-$K8S_VERSION.bin --target ./trash&lt;br /&gt;
 export IMAGES=`cat ./trash/docker/images.lst | cut -d &#039;,&#039; -f 2`&lt;br /&gt;
 for i in $IMAGES; \&lt;br /&gt;
 do  \&lt;br /&gt;
   docker pull --platform arm64 $i; \&lt;br /&gt;
   docker tag $i $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
   docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
 done&lt;br /&gt;
 rm -rf ./trash&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://paas.dersllc.com/admin/settings/registries/oci&lt;br /&gt;
 # DER&#039;s Spectro-Packs -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull --platform arm64 us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 #################&lt;br /&gt;
 # SET VARIABLES #&lt;br /&gt;
 #################&lt;br /&gt;
  export AGENT_VERSION=&#039;4.6.12&#039;&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 #sudo snap install curl&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack -y&lt;br /&gt;
 &lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v$AGENT_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v$AGENT_VERSION &amp;gt; arm-agent-$AGENT_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v$AGENT_VERSION/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$AGENT_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=684</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=684"/>
		<updated>2025-04-11T15:52:24Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Install Palette Agent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-k3s -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi (latest)&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export K8S_VERSION=&amp;quot;1.32.1&amp;quot;&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 snap install docker&lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-pack-edge-k3s-$K8S_VERSION.bin --target ./trash&lt;br /&gt;
 export IMAGES=`cat ./trash/docker/images.lst | cut -d &#039;,&#039; -f 2`&lt;br /&gt;
 for i in $IMAGES; \&lt;br /&gt;
 do  \&lt;br /&gt;
   docker pull --platform arm64 $i; \&lt;br /&gt;
   docker tag $i $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
   docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
 done&lt;br /&gt;
 rm -rf ./trash&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://paas.dersllc.com/admin/settings/registries/oci&lt;br /&gt;
 # DER&#039;s Spectro-Packs -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull --platform arm64 us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 #################&lt;br /&gt;
 # SET VARIABLES #&lt;br /&gt;
 #################&lt;br /&gt;
  export EDGE_API_VERSION=&#039;4.6.12&#039;&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 #sudo snap install curl&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack -y&lt;br /&gt;
 &lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v$EDGE_API_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v$EDGE_API_VERSION &amp;gt; arm-agent-$EDGE_API_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v$EDGE_API_VERSION/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$EDGE_API_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=683</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=683"/>
		<updated>2025-04-11T15:48:49Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Install Palette Agent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-k3s -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi (latest)&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export K8S_VERSION=&amp;quot;1.32.1&amp;quot;&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 snap install docker&lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-pack-edge-k3s-$K8S_VERSION.bin --target ./trash&lt;br /&gt;
 export IMAGES=`cat ./trash/docker/images.lst | cut -d &#039;,&#039; -f 2`&lt;br /&gt;
 for i in $IMAGES; \&lt;br /&gt;
 do  \&lt;br /&gt;
   docker pull --platform arm64 $i; \&lt;br /&gt;
   docker tag $i $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
   docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
 done&lt;br /&gt;
 rm -rf ./trash&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://paas.dersllc.com/admin/settings/registries/oci&lt;br /&gt;
 # DER&#039;s Spectro-Packs -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull --platform arm64 us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 #################&lt;br /&gt;
 # SET VARIABLES #&lt;br /&gt;
 #################&lt;br /&gt;
  export EDGE_API_VERSION=&#039;v4.6.12&#039;&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 #sudo snap install curl&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack -y&lt;br /&gt;
 &lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION &amp;gt; arm-agent-$EDGE_API_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v$EDGE_API_VERSION/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$EDGE_API_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=682</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=682"/>
		<updated>2025-04-11T15:48:18Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Raspberry Pi Edge Install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-k3s -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi (latest)&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export K8S_VERSION=&amp;quot;1.32.1&amp;quot;&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 snap install docker&lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-pack-edge-k3s-$K8S_VERSION.bin --target ./trash&lt;br /&gt;
 export IMAGES=`cat ./trash/docker/images.lst | cut -d &#039;,&#039; -f 2`&lt;br /&gt;
 for i in $IMAGES; \&lt;br /&gt;
 do  \&lt;br /&gt;
   docker pull --platform arm64 $i; \&lt;br /&gt;
   docker tag $i $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
   docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
 done&lt;br /&gt;
 rm -rf ./trash&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://paas.dersllc.com/admin/settings/registries/oci&lt;br /&gt;
 # DER&#039;s Spectro-Packs -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull --platform arm64 us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 #################&lt;br /&gt;
 # SET VARIABLES #&lt;br /&gt;
 #################&lt;br /&gt;
  export EDGE_API_VERSION=&#039;v4.6.12&#039;&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 sudo snap install curl&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack -y&lt;br /&gt;
 &lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION &amp;gt; arm-agent-$EDGE_API_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v$EDGE_API_VERSION/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$EDGE_API_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=681</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=681"/>
		<updated>2025-04-11T15:46:42Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Install Palette Agent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-k3s -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi (latest)&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export K8S_VERSION=&amp;quot;1.32.1&amp;quot;&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 snap install docker&lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-pack-edge-k3s-$K8S_VERSION.bin --target ./trash&lt;br /&gt;
 export IMAGES=`cat ./trash/docker/images.lst | cut -d &#039;,&#039; -f 2`&lt;br /&gt;
 for i in $IMAGES; \&lt;br /&gt;
 do  \&lt;br /&gt;
   docker pull --platform arm64 $i; \&lt;br /&gt;
   docker tag $i $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
   docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
 done&lt;br /&gt;
 rm -rf ./trash&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://paas.dersllc.com/admin/settings/registries/oci&lt;br /&gt;
 # DER&#039;s Spectro-Packs -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull --platform arm64 us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 sudo snap install curl&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack -y&lt;br /&gt;
 &lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 export EDGE_API_VERSION=&#039;v4.6.12&#039;&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION &amp;gt; arm-agent-$EDGE_API_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v4.6.3/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$EDGE_API_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=680</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=680"/>
		<updated>2025-04-11T15:44:54Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Install Palette Agent */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-k3s -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi (latest)&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export K8S_VERSION=&amp;quot;1.32.1&amp;quot;&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 snap install docker&lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-pack-edge-k3s-$K8S_VERSION.bin --target ./trash&lt;br /&gt;
 export IMAGES=`cat ./trash/docker/images.lst | cut -d &#039;,&#039; -f 2`&lt;br /&gt;
 for i in $IMAGES; \&lt;br /&gt;
 do  \&lt;br /&gt;
   docker pull --platform arm64 $i; \&lt;br /&gt;
   docker tag $i $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
   docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
 done&lt;br /&gt;
 rm -rf ./trash&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://paas.dersllc.com/admin/settings/registries/oci&lt;br /&gt;
 # DER&#039;s Spectro-Packs -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull --platform arm64 us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 sudo snap install curl&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack -y&lt;br /&gt;
 &lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 export EDGE_API_VERSION=&#039;v4.6.12&#039;&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION &amp;gt; arm-agent-$EDGE_API_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v4.6.3/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$EDGE_API_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=679</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=679"/>
		<updated>2025-04-11T15:42:48Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Prepare Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-k3s -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi (latest)&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export K8S_VERSION=&amp;quot;1.32.1&amp;quot;&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 snap install docker&lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-pack-edge-k3s-$K8S_VERSION.bin --target ./trash&lt;br /&gt;
 export IMAGES=`cat ./trash/docker/images.lst | cut -d &#039;,&#039; -f 2`&lt;br /&gt;
 for i in $IMAGES; \&lt;br /&gt;
 do  \&lt;br /&gt;
   docker pull --platform arm64 $i; \&lt;br /&gt;
   docker tag $i $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
   docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
 done&lt;br /&gt;
 rm -rf ./trash&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://paas.dersllc.com/admin/settings/registries/oci&lt;br /&gt;
 # DER&#039;s Spectro-Packs -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull --platform arm64 us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 sudo snap install curl&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack -y&lt;br /&gt;
 &lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 export EDGE_API_VERSION=&#039;v4.6.3&#039;&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION &amp;gt; arm-agent-$EDGE_API_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v4.6.3/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$EDGE_API_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=678</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=678"/>
		<updated>2025-04-11T15:42:21Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Prepare Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-k3s -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi (latest)&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export K8S_VERSION=&amp;quot;1.32.1&amp;quot;&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 snap install docker&lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-pack-edge-k3s-$K8S_VERSION.bin --target ./trash&lt;br /&gt;
 export IMAGES=`cat ./trash/docker/images.lst | cut -d &#039;,&#039; -f 2`&lt;br /&gt;
 for i in $IMAGES; \&lt;br /&gt;
 do  \&lt;br /&gt;
   docker pull --platform arm64 $i; \&lt;br /&gt;
   docker tag $i $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
   docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
 done&lt;br /&gt;
 rm -rf ./trash&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://paas.dersllc.com/admin/settings/registries/oci&lt;br /&gt;
 # DER&#039;s Spectro-Packs -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 sudo snap install curl&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack -y&lt;br /&gt;
 &lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 export EDGE_API_VERSION=&#039;v4.6.3&#039;&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION &amp;gt; arm-agent-$EDGE_API_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v4.6.3/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$EDGE_API_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=677</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=677"/>
		<updated>2025-04-11T15:41:04Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Prepare Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-k3s -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi (latest)&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export K8S_VERSION=&amp;quot;1.32.1&amp;quot;&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 snap install docker&lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-pack-edge-k3s-$K8S_VERSION.bin --target ./trash&lt;br /&gt;
 export IMAGES=`cat ./trash/docker/images.lst | cut -d &#039;,&#039; -f 2`&lt;br /&gt;
 for i in $IMAGES; \&lt;br /&gt;
 do  \&lt;br /&gt;
   docker pull --platform arm64 $i; \&lt;br /&gt;
   docker tag $i $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
   docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
 done&lt;br /&gt;
 rm -rf ./trash&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://ders-vertex.dersllc.com/system&lt;br /&gt;
 # Administration -&amp;gt; Pack Registries -&amp;gt; DERS-Harbor -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 sudo snap install curl&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack -y&lt;br /&gt;
 &lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 export EDGE_API_VERSION=&#039;v4.6.3&#039;&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION &amp;gt; arm-agent-$EDGE_API_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v4.6.3/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$EDGE_API_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=676</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=676"/>
		<updated>2025-04-11T15:24:24Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Prepare Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-k3s -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi (latest)&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export K8S_VERSION=&amp;quot;1.32.1&amp;quot;&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 snap install docker&lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-pack-edge-k3s-$K8S_VERSION.bin --target ./trash&lt;br /&gt;
 export IMAGES=`cat ./trash/docker/images.lst | cut -d &#039;,&#039; -f 2`&lt;br /&gt;
 for i in $IMAGES; \&lt;br /&gt;
 do  \&lt;br /&gt;
   docker pull --platform arm64 $i; \&lt;br /&gt;
   docker tag $i $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
   docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
 done&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://ders-vertex.dersllc.com/system&lt;br /&gt;
 # Administration -&amp;gt; Pack Registries -&amp;gt; DERS-Harbor -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 sudo snap install curl&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack -y&lt;br /&gt;
 &lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 export EDGE_API_VERSION=&#039;v4.6.3&#039;&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION &amp;gt; arm-agent-$EDGE_API_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v4.6.3/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$EDGE_API_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=675</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=675"/>
		<updated>2025-04-11T15:22:47Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Prepare Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-k3s -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export K8S_VERSION=&amp;quot;1.32.1&amp;quot;&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.12&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 snap install docker&lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-pack-edge-k3s-$K8S_VERSION.bin --target ./trash&lt;br /&gt;
 export IMAGES=`cat ./trash/docker/images.lst | cut -d &#039;,&#039; -f 2`&lt;br /&gt;
 for i in $IMAGES; \&lt;br /&gt;
 do  \&lt;br /&gt;
   docker pull --platform arm64 $i; \&lt;br /&gt;
   docker tag $i $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
   docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
 done&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://ders-vertex.dersllc.com/system&lt;br /&gt;
 # Administration -&amp;gt; Pack Registries -&amp;gt; DERS-Harbor -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 sudo snap install curl&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack -y&lt;br /&gt;
 &lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 export EDGE_API_VERSION=&#039;v4.6.3&#039;&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION &amp;gt; arm-agent-$EDGE_API_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v4.6.3/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$EDGE_API_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=674</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=674"/>
		<updated>2025-04-11T15:19:36Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Prepare Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-k3s -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export K8S_VERSION=&amp;quot;1.32.1&amp;quot;&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.3&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 snap install docker&lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-pack-edge-k3s-$K8S_VERSION.bin --target ./trash&lt;br /&gt;
 export IMAGES=`cat ./trash/docker/images.lst | cut -d &#039;,&#039; -f 2`&lt;br /&gt;
 for i in $IMAGES; \&lt;br /&gt;
 do  \&lt;br /&gt;
   docker pull --platform arm64 $i; \&lt;br /&gt;
   docker tag $i $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
   docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
 done&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://ders-vertex.dersllc.com/system&lt;br /&gt;
 # Administration -&amp;gt; Pack Registries -&amp;gt; DERS-Harbor -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 sudo snap install curl&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack -y&lt;br /&gt;
 &lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 export EDGE_API_VERSION=&#039;v4.6.3&#039;&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION &amp;gt; arm-agent-$EDGE_API_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v4.6.3/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$EDGE_API_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=673</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=673"/>
		<updated>2025-04-11T15:18:50Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Prepare Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-k3s -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.3&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 snap install docker&lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-pack-edge-k3s-1.32.1.bin --target ./trash&lt;br /&gt;
 export IMAGES=`cat ./trash/docker/images.lst | cut -d &#039;,&#039; -f 2`&lt;br /&gt;
 for i in $IMAGES; \&lt;br /&gt;
 do  \&lt;br /&gt;
   docker pull --platform arm64 $i; \&lt;br /&gt;
   docker tag $i $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
   docker push --platform arm64 $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/$i; \&lt;br /&gt;
 done&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-rke2-1.31.4.bin&lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://ders-vertex.dersllc.com/system&lt;br /&gt;
 # Administration -&amp;gt; Pack Registries -&amp;gt; DERS-Harbor -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 sudo snap install curl&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack -y&lt;br /&gt;
 &lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 export EDGE_API_VERSION=&#039;v4.6.3&#039;&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION &amp;gt; arm-agent-$EDGE_API_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v4.6.3/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$EDGE_API_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=672</id>
		<title>SpectroCloud/RaspberryPiEdge</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/RaspberryPiEdge&amp;diff=672"/>
		<updated>2025-04-11T14:53:33Z</updated>

		<summary type="html">&lt;p&gt;Ders: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Raspberry Pi Edge Install=&lt;br /&gt;
== Install OS ==&lt;br /&gt;
 # Connnect Network, Keyboard, HDMI, and Power&lt;br /&gt;
 # Boot to Network by pressing and holding SHIFT&lt;br /&gt;
&lt;br /&gt;
 ############################################################&lt;br /&gt;
 # Raspberry Pi Device: RASPBERRY PI 5&lt;br /&gt;
 # Operating System:    Ubuntu Server 24.04.2 LTS (64-BIT)&lt;br /&gt;
 # Storage:             Internal SD CARD READER&lt;br /&gt;
 ############################################################&lt;br /&gt;
&lt;br /&gt;
 # Finish the Setup Wizard&lt;br /&gt;
 # Modify Settings before completion&lt;br /&gt;
 # -  Complete the Hostname&lt;br /&gt;
 # -  Add a user and pass&lt;br /&gt;
 # -  Enable SSH with password auth&lt;br /&gt;
&lt;br /&gt;
== Prepare Environment ==&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Download Edge Binaries #&lt;br /&gt;
 ##########################&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-rke2 -&amp;gt; &amp;lt;k8s_version&amp;gt;&lt;br /&gt;
 # Location: RETOOL -&amp;gt; Palette Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries -&amp;gt; edge-native-byoi&lt;br /&gt;
 &lt;br /&gt;
 #############################&lt;br /&gt;
 ## TRUST HomeLab CA CERTS  ##&lt;br /&gt;
 #############################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
 &lt;br /&gt;
 ###########################################&lt;br /&gt;
 # Upload the Binaries into AirGapped Repo #&lt;br /&gt;
 ###########################################&lt;br /&gt;
 # SET VARIABLES&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=spectro-packs&lt;br /&gt;
 export AGENT_VERSION=&amp;quot;v4.6.3&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 oras login $OCI_IMAGE_REGISTRY --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 snap install docker&lt;br /&gt;
 docker login $OCI_IMAGE_REGISTRY -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-native-byoi-2.1.0.bin&lt;br /&gt;
 bash /nfs/Download/airgap-vertex-pack-edge-rke2-1.31.4.bin&lt;br /&gt;
 &lt;br /&gt;
 ###########################&lt;br /&gt;
 # Sync the Repo in Vertex #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Navigate to: https://ders-vertex.dersllc.com/system&lt;br /&gt;
 # Administration -&amp;gt; Pack Registries -&amp;gt; DERS-Harbor -&amp;gt; sync&lt;br /&gt;
 &lt;br /&gt;
 ################################################&lt;br /&gt;
 # Pull the arm64 agent and push to Airgap Repo #&lt;br /&gt;
 ################################################&lt;br /&gt;
 docker pull us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker tag us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 docker push $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION&lt;br /&gt;
 &lt;br /&gt;
 ###############################&lt;br /&gt;
 # Enable Pause Agent Upgrades #&lt;br /&gt;
 ###############################&lt;br /&gt;
 # Navigate to: edge-pi Project -&amp;gt; Project Settings -&amp;gt; Platform -&amp;gt; Platform Settings -&amp;gt; Pause Agent Upgrades&lt;br /&gt;
&lt;br /&gt;
== Install Palette Agent ==&lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 sudo snap install curl&lt;br /&gt;
 sudo apt-get install jq zstd rsync conntrack -y&lt;br /&gt;
 &lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Export the Palette Stylus ARM Agent Container (Air-Gapped) #&lt;br /&gt;
 ##############################################################&lt;br /&gt;
 # Note: The version needed can be found in RETOOL (Palette Release -&amp;gt; Vertex Info -&amp;gt; Components -&amp;gt; stylus)&lt;br /&gt;
 export EDGE_API_VERSION=&#039;v4.6.3&#039;&lt;br /&gt;
 docker pull  us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION&lt;br /&gt;
 docker save us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$EDGE_API_VERSION &amp;gt; arm-agent-$EDGE_API_VERSION.tar&lt;br /&gt;
 &lt;br /&gt;
 ##################################&lt;br /&gt;
 # Download the palette-agent CLI #&lt;br /&gt;
 ##################################&lt;br /&gt;
 export URL=https://github.com/spectrocloud/agent-mode/releases/download/v4.6.3/palette-agent-linux-arm64&lt;br /&gt;
 curl --verbose --location $URL --output palette-agent&lt;br /&gt;
 chmod +x palette-agent&lt;br /&gt;
 &lt;br /&gt;
 #####################&lt;br /&gt;
 # Install the Agent #&lt;br /&gt;
 #####################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/edge/user-data.yaml &amp;gt; user-data&lt;br /&gt;
 #./palette-agent install --source ./arm-agent-$EDGE_API_VERSION.tar  --config &amp;quot;./user-data&amp;quot; --local&lt;br /&gt;
 ./palette-agent install --source $OCI_IMAGE_REGISTRY/$OCI_IMAGE_BASE/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:$AGENT_VERSION  --config &amp;quot;./user-data&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Create a Cluster Profile for the Edge Node ==&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Create New Edge Profile #&lt;br /&gt;
 ###########################&lt;br /&gt;
 # Name: EDGE BASE RKE2&lt;br /&gt;
 # Version: 1.31.4&lt;br /&gt;
 # Type: Infrastructure&lt;br /&gt;
 ##&lt;br /&gt;
 # Cloud Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # OS Layer: BYOS Edge OS&lt;br /&gt;
 # - Check the Preset radio button for edge&lt;br /&gt;
 # - Values:&lt;br /&gt;
 #   Add the following to the yaml&lt;br /&gt;
 #     stylusPackage: harbor.dersllc.com/spectro-images/us-docker.pkg.dev/palette-images/edge/stylus-agent-mode-linux-arm64:v4.5.14&lt;br /&gt;
 #     options:&lt;br /&gt;
 #       system.uri: &amp;quot;NA&amp;quot;&lt;br /&gt;
 # Add the following: &lt;br /&gt;
 # K8s Layer: Palette Optimized RKE2&lt;br /&gt;
 # - Version: 1.31.4&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of docker.io with harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 # Network Layer: Calico&lt;br /&gt;
 # - Values: &lt;br /&gt;
 #   Modify all occurrences of us-docker.pkg.dev with harbor.dersllc.com/spectro-images/us-docker.pkg.dev&lt;br /&gt;
&lt;br /&gt;
== Create Cluster on Edge Node ==&lt;br /&gt;
 ################################### &lt;br /&gt;
 # Create Cluster on the Edge Node #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Navigate to: Clusters -&amp;gt; Create Cluster&lt;br /&gt;
 ##&lt;br /&gt;
 # Cluster Type: Edge Native&lt;br /&gt;
 ##&lt;br /&gt;
 # Name: edge-pi&lt;br /&gt;
 ##&lt;br /&gt;
 # Add Profile: EDGE BASE RKE2&lt;br /&gt;
 ##&lt;br /&gt;
 # SSH Keys: opsman&lt;br /&gt;
 # NTP Server: 172.16.84.21&lt;br /&gt;
 # VIP: 172.16.84.35&lt;br /&gt;
 ##&lt;br /&gt;
 # control-plane-pool configuration&lt;br /&gt;
 # - Allow worker capability (Optional): TRUE&lt;br /&gt;
 # - Architecture: arm64&lt;br /&gt;
 # - Edge Hosts: edge-pi&lt;br /&gt;
 # DELETE worker-pool configuration&lt;br /&gt;
 ##&lt;br /&gt;
 # FINISH CONFIGURATION&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/VertexInstall&amp;diff=671</id>
		<title>SpectroCloud/VertexInstall</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/VertexInstall&amp;diff=671"/>
		<updated>2025-04-10T17:33:42Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Vertex Install Steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Vertex Installation Instructions=&lt;br /&gt;
==Vertex Installation==&lt;br /&gt;
===Pre Requisites===&lt;br /&gt;
====1. Needed Downloads====&lt;br /&gt;
* RETOOL Location: Palette-Release -&amp;gt; Vertex Info -&amp;gt; Binaries&lt;br /&gt;
 Airgap Binaries: Release Binary&lt;br /&gt;
 Command Line Tools: Palette CLI Linux&lt;br /&gt;
* RETOOL Location: Palette-Release -&amp;gt; Vertex Info -&amp;gt; Capi OS Images&lt;br /&gt;
 Search: &amp;quot;&amp;lt;supported version #&amp;gt;&amp;quot; &lt;br /&gt;
 Download: &amp;lt;strong&amp;gt;k8s_fips&amp;lt;/strong&amp;gt; for &amp;lt;strong&amp;gt;vmware&amp;lt;/strong&amp;gt;&lt;br /&gt;
 &amp;lt;strong&amp;gt;NOTE:&amp;lt;/strong&amp;gt; find supported versions via https://docs.spectrocloud.com/release-notes/&lt;br /&gt;
* RETOOL Location: Palette-Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries&lt;br /&gt;
 Search: &amp;quot;airgap-vertex-pack-kubernetes&amp;quot;&lt;br /&gt;
 Download: &amp;lt;strong&amp;gt; kubernetes &amp;lt;/strong&amp;gt; for &amp;lt;strong&amp;gt;&amp;lt;supported version&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
 &amp;lt;strong&amp;gt;NOTE:&amp;lt;/strong&amp;gt; find supported versions via https://docs.spectrocloud.com/release-notes/&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Binaries: airgap-base-ova (ex. spectro-airgap-podman-v3.1.4.ova)&lt;br /&gt;
 RETOOL Location: Palette-Release -&amp;gt; Vertex Info -&amp;gt; Binaries -&amp;gt; Type: Airgap Ovas&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====2. vCenter Prep ====&lt;br /&gt;
* Tag the DataCenter with k8s-region&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:TagDatacenter.png|options|Datacenter Tag]]&amp;lt;/center&amp;gt;&lt;br /&gt;
* Tag the Cluster with k8s-zone&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:TagCluster.png|options|Cluster Tag]]&amp;lt;/center&amp;gt;&lt;br /&gt;
* Create a VM Folder called spectro-templates&lt;br /&gt;
* Create a VM Folder called spectro-vms&lt;br /&gt;
&amp;lt;center&amp;gt; [[File:VmFolders.png|options|Create Folders]]&amp;lt;/center&amp;gt;&lt;br /&gt;
* Import the k8s_fips OVA (ex. u-2004-0-k-1305-fips.ova)&lt;br /&gt;
** Rename Image to &amp;quot;r_u-2004-0-k-&amp;lt;version&amp;gt;-fips&amp;quot; (ex. r_u-2004-0-k-1305-fips)&lt;br /&gt;
** Convert VM to Template.&lt;br /&gt;
&lt;br /&gt;
====3. Jumpbox Setup====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
DOCS REFERENCE: https://docs.spectrocloud.com/vertex/install-palette-vertex/install-on-vmware/airgap-install/environment-setup/vmware-vsphere-airgap-instructions/&lt;br /&gt;
* Deploy the OVA to vCenter (airgap-base-ova).&lt;br /&gt;
 1. Machine name: &amp;lt;strong&amp;gt;sc-deploy&amp;lt;/strong&amp;gt;&lt;br /&gt;
 2. Folder: &amp;lt;strong&amp;gt;spectro-vms&amp;lt;/strong&amp;gt;&lt;br /&gt;
 3. Acknowledge the certificate.&lt;br /&gt;
 4. Storage: &amp;lt;strong&amp;gt;DERS-HDD&amp;lt;/strong&amp;gt;&lt;br /&gt;
 5. Network: &amp;lt;strong&amp;gt;DERS-87&amp;lt;/strong&amp;gt;&lt;br /&gt;
 6. Set SSH Public Key: &amp;lt;strong&amp;gt;&amp;lt;opsman-key&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
 7. Default User Password: &amp;lt;strong&amp;gt;&amp;lt;ders&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
* Copy the vertex bin to the sc-deploy vm.&lt;br /&gt;
 export SC_DEPLOY_IP=&amp;quot;172.16.87.51&amp;quot;&lt;br /&gt;
 scp -i ~/.ssh/opsman /nfs/Download/airgap-vertex-v4.5.11.bin ubuntu@$SC_DEPLOY_IP:/tmp/&lt;br /&gt;
 scp -i ~/.ssh/opsman /nfs/Download/airgap-vertex-pack-kubernetes-1.30.5.bin ubuntu@$SC_DEPLOY_IP:/tmp/&lt;br /&gt;
 scp -i ~/.ssh/opsman /nfs/Download/airgap-vertex-pack-kubernetes-1.29.9.bin ubuntu@$SC_DEPLOY_IP:/tmp/&lt;br /&gt;
* SSH to the sc-deploy VM.&lt;br /&gt;
 ssh -i ~/.ssh/opsman ubuntu@$SC_DEPLOY_IP&lt;br /&gt;
 sudo --login&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 apt update&lt;br /&gt;
 apt upgrade -y&lt;br /&gt;
 apt-get -y install snapd unzip nfs-common ca-certificates zip&lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 &lt;br /&gt;
 ##################################################&lt;br /&gt;
 # Log-in via Docker and ORAS and upload the SCAR #&lt;br /&gt;
 ##################################################&lt;br /&gt;
 docker login harbor.dersllc.com -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 oras login harbor.dersllc.com --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;!--oras push $OCI_PACK_REGISTRY/$OCI_PACK_BASE/spectro-manifests/manifest:$SC_VERSION manifests.tgz --insecure --annotation org.opencontainers.image.created=&amp;quot;2023-07-24T11:57:56Z&amp;quot;--&amp;gt;&lt;br /&gt;
 #####################################################&lt;br /&gt;
 # Setup NFS Mount (NOT REQUIRED, DERS LAB SPECIFIC) #&lt;br /&gt;
 #####################################################&lt;br /&gt;
 mkdir -p /opt/spectro/ssl/&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/STAR_dersllc_com.crt &amp;gt; /opt/spectro/ssl/server.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/dersllc-new.key &amp;gt; /opt/spectro/ssl/server.key&lt;br /&gt;
 &amp;lt;!-- cp /opt/spectro/ssl/server.crt /etc/nginx/ssl/server.crt --&amp;gt;&lt;br /&gt;
 &amp;lt;!-- cp /opt/spectro/ssl/server.key /etc/nginx/ssl/server.key --&amp;gt;&lt;br /&gt;
 echo &amp;quot;172.16.85.15:/Download      /nfs/Download    nfs vers=4.0    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 mkdir -p /nfs/Download&lt;br /&gt;
 mount -a&lt;br /&gt;
 &lt;br /&gt;
 ######################################################&lt;br /&gt;
 # Trust DERS Certs (NOT REQUIRED, DERS LAB SPECIFIC) #&lt;br /&gt;
 ######################################################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 # If Setting up CLI is not present in the output run the following:&lt;br /&gt;
 source /nfs/Download/airgap-vertex-v$SC_VERSION/bin/functions.sh; cli_copy&lt;br /&gt;
 /nfs/Download/airgap-vertex-pack-kubernetes-*&lt;br /&gt;
 &lt;br /&gt;
 ####################################################################&lt;br /&gt;
 # UNZIP Manifest in /var/www/html/manifests/&amp;lt;Version&amp;gt; on ders-plex #&lt;br /&gt;
 ####################################################################&lt;br /&gt;
 # ssh to ders-plex&lt;br /&gt;
 export SC_VERSION=&#039;4.5.11&#039;&lt;br /&gt;
 mkdir -p /var/www/html/manifests/v${SC_VERSION}&lt;br /&gt;
 mv /nfs/Download/scar-airgap-vertex-v${SC_VERSION}.zip /var/www/html/manifests/v${SC_VERSION}&lt;br /&gt;
 cd /var/www/html/manifests/v${SC_VERSION}&lt;br /&gt;
 unzip scar-airgap-vertex-v${SC_VERSION}.zip&lt;br /&gt;
 cd ..&lt;br /&gt;
 rm -f latest&lt;br /&gt;
 ln -s v${SC_VERSION}/ latest&lt;br /&gt;
 systemctl restart httpd&lt;br /&gt;
 &lt;br /&gt;
 curl http://172.16.84.22:8710/manifests/latest/roar/nickfury/versions.yaml&lt;br /&gt;
&lt;br /&gt;
 /nfs/Download/airgap-vertex-v4.5.15/bin/airgap-setup.sh vertex.dersllc.com&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4. Harbor Prep====&lt;br /&gt;
* Create a new Public Project (spectro-images)&lt;br /&gt;
* Create a new Public Project (spectro-packs)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Vertex Install Steps===&lt;br /&gt;
 #################&lt;br /&gt;
 # SET VARIABLES #&lt;br /&gt;
 #################&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export SC_VERSION=&#039;4.6.18&#039;&lt;br /&gt;
 &lt;br /&gt;
 #################################&lt;br /&gt;
 # Import Containers into Harbor #&lt;br /&gt;
 #################################&lt;br /&gt;
 chmod +x /nfs/Download/airgap-vertex-*&lt;br /&gt;
 /nfs/Download/airgap-vertex-v$SC_VERSION.bin --nodiskspace --target /nfs/Download/airgap-vertex-v$SC_VERSION/&lt;br /&gt;
 &lt;br /&gt;
 #######################&lt;br /&gt;
 # Install Palette CLI #&lt;br /&gt;
 #######################&lt;br /&gt;
 &amp;lt;!-- source /nfs/Download/airgap-vertex-v$SC_VERSION/bin/functions.sh; cli_copy --&amp;gt;&lt;br /&gt;
 mv /nfs/Download/palette /usr/local/bin/palette&lt;br /&gt;
 chmod +x /usr/local/bin/palette&lt;br /&gt;
&lt;br /&gt;
 # Encryption&lt;br /&gt;
 export PALETTE_ENCRYPTION_PASSWORD=&#039;VERTEX1234!vertex1234!&#039; &lt;br /&gt;
 &lt;br /&gt;
 # SSH to sc-deploy and run:&lt;br /&gt;
 palette version &lt;br /&gt;
 #Note: make sure it is at least 4.5.7&lt;br /&gt;
 &lt;br /&gt;
 palette ec install&lt;br /&gt;
 &lt;br /&gt;
 # No palette CLI config file detected. One will be created.&lt;br /&gt;
 # Management Plane Type: &lt;br /&gt;
     &amp;lt;strong&amp;gt; Palette VerteX &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Operating System: &lt;br /&gt;
     &amp;lt;strong&amp;gt; ubuntu &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Enable Ubuntu Pro (required for production)? [y/N]: &amp;lt;strong&amp;gt; Yes &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Ubuntu Pro token: &amp;lt;strong&amp;gt; C12HPMun5ibCKAqtW%cqBpaL66RNjd &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # enabling experimental podman provider&lt;br /&gt;
 # No kind clusters found.&lt;br /&gt;
 # Cloud Type: &lt;br /&gt;
     &amp;lt;strong&amp;gt; VMware vSphere &amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 ##########################################################&lt;br /&gt;
 # Spectro Cloud Artifact Repository (SCAR) Configuration #                                                                                                             &lt;br /&gt;
 ##########################################################                                                                                                                                                                                                                                                                                &lt;br /&gt;
 # SCAR location: &lt;br /&gt;
     &amp;lt;strong&amp;gt; http://172.16.84.22:8710/manifests/latest/ &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # SCAR username: &lt;br /&gt;
     &amp;lt;strong&amp;gt; admin &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # SCAR password: &lt;br /&gt;
     &amp;lt;strong&amp;gt; ******** &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Allow Insecure Connection (Bypass x509 Verification)? [Y/n]: &lt;br /&gt;
     &amp;lt;strong&amp;gt; Yes &amp;lt;/strong&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Enter Environment Configuration #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # HTTPS Proxy (optional, hit enter to skip): &lt;br /&gt;
 # HTTP Proxy (optional, hit enter to skip): &lt;br /&gt;
 # Pod CIDR: 192.168.0.0/16&lt;br /&gt;
 # Service IP Range: 10.96.0.0/12&lt;br /&gt;
 #############################################&lt;br /&gt;
 # Enter Pack &amp;amp; Image Registry Configuration #&lt;br /&gt;
 #############################################                                                                                                                  &lt;br /&gt;
 # Registry Type: &lt;br /&gt;
     &amp;lt;strong&amp;gt; OCI &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Name: &lt;br /&gt;
     &amp;lt;strong&amp;gt; DERS-Harbor &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Endpoint: &lt;br /&gt;
     &amp;lt;strong&amp;gt;https://harbor.dersllc.com &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Base Content Path (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;airgap-spectro-images&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry CA certificate Filepath (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;/usr/local/share/ca-certificates/ders-star-ca.crt&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Username (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;admin&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Password (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;*********&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Enter &#039;Y&#039; to pull images from public registries or &#039;N&#039; to specify an OCI image registry&lt;br /&gt;
 # Pull images from public registries? [Y/n]: &lt;br /&gt;
     &amp;lt;strong&amp;gt;No&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Use the same OCI Registry for packs &amp;amp; images? [Y/n]: &lt;br /&gt;
     &amp;lt;strong&amp;gt;Yes&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Base Content Path (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;airgap-spectro-packs&amp;lt;/strong&amp;gt;&lt;br /&gt;
 #######################&lt;br /&gt;
 # Collecting Metadata #&lt;br /&gt;
 #######################&lt;br /&gt;
 # Kind Cluster Name: &lt;br /&gt;
     &amp;lt;strong&amp;gt; spectro-mgmt-cluster &amp;lt;/strong&amp;gt;&lt;br /&gt;
 #####################################&lt;br /&gt;
 # Enter vSphere Account Information #&lt;br /&gt;
 #####################################&lt;br /&gt;
 # vSphere Endpoint: &lt;br /&gt;
     &amp;lt;strong&amp;gt;vcenter.dersllc.com&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # vSphere Username (with domain): &lt;br /&gt;
     &amp;lt;strong&amp;gt;administrator@ders.lab&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # vSphere Password: &lt;br /&gt;
     &amp;lt;strong&amp;gt;*********&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Allow Insecure Connection (Bypass x509 Verification)? [Y/n]: &lt;br /&gt;
     &amp;lt;strong&amp;gt;Yes&amp;lt;/strong&amp;gt;&lt;br /&gt;
 ##################################################&lt;br /&gt;
 # Enter vSphere Enterprise Cluster configuration #&lt;br /&gt;
 ##################################################                                                                                                               &lt;br /&gt;
 # Datacenter: &lt;br /&gt;
     &amp;lt;strong&amp;gt;DERSLLC&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # VM Folder: &lt;br /&gt;
     &amp;lt;strong&amp;gt;spectro-vms&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Image Template Folder: &lt;br /&gt;
     &amp;lt;strong&amp;gt;spectro-templates&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Cluster for Fault Domain: &lt;br /&gt;
     &amp;lt;strong&amp;gt;Lab&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Network: &lt;br /&gt;
     &amp;lt;strong&amp;gt;DERS-87&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Resource Pool: &lt;br /&gt;
     &amp;lt;strong&amp;gt;Default (root resource pool for cluster: Lab)&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Select specific Datastore or use a VM Storage Policy: &lt;br /&gt;
     &amp;lt;strong&amp;gt;Datastore&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Datastore: &lt;br /&gt;
     &amp;lt;strong&amp;gt;DERS-HDD&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Unable to add another Fault Domain as no Clusters remain in Datacenter DERSLLC&lt;br /&gt;
 # NTP servers (comma-separated domain names or IP addresses, optional) (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;172.16.84.21&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Configure SSH public key(s)&lt;br /&gt;
     &amp;lt;strong&amp;gt;ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDngCrc1Na1xES5nnSBHxw1MMcwEwFL4TpwbSTq4BlcKb4WUGE4AOXr4W4RenB6OTyLkHOeLNc2ptILF3PZQG44SZ+uZMBLhx82DYbMq75F6WDSd7wnHA0cL90ncXGoLnwk+UnNEg59zmhYbrMEVM5OS3k0Ll/EXUb9PUsE+SdEoKDG+84OiwCQnQ+DWr9R79NHwLKflOvIMtoZuFwjObQ7xbsTO27FhL8wbcUDqygVqq+6r6adyZ1yEuqhXRkzUgQWv/rIzATaLTZp5r3kCGRe+EkB6AlapwE1O139ZGuY4m/FlIeXO1Ty0mmF88dI0CsbFUJcKKnO07nzSBhQevRr&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Specify a static IP range for assigning static IPs to cluster node(s).&lt;br /&gt;
 # The IP range must contain at least 5 IPs.	&lt;br /&gt;
 # Start IP: &lt;br /&gt;
     &amp;lt;strong&amp;gt;172.16.85.200&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # End IP: &lt;br /&gt;
     &amp;lt;strong&amp;gt;172.16.85.220&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Network Prefix: &lt;br /&gt;
     &amp;lt;strong&amp;gt;22&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Gateway IP Address: &lt;br /&gt;
     &amp;lt;strong&amp;gt;172.16.84.1&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Name servers (comma-separated IP addresses): &lt;br /&gt;
     &amp;lt;strong&amp;gt;172.16.84.10&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Name server search suffixes (Optional) (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;dersllc.com&amp;lt;/strong&amp;gt;&lt;br /&gt;
 ###################################################################&lt;br /&gt;
 #  Enter vSphere Machine configuration for the Enterprise Cluster #&lt;br /&gt;
 ###################################################################&lt;br /&gt;
 # Select combination: &lt;br /&gt;
     &amp;lt;strong&amp;gt;S: 16 CPU, 32 GB memory, 60 GB storage, 20 GB database with 4 CPU limit and 8 GB memory limit&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Node Affinity: Enter &#039;y&#039; to schedule all Palette pods on control plane nodes? [y/N]: &lt;br /&gt;
     &amp;lt;strong&amp;gt;No&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possible Install Help===&lt;br /&gt;
 # add-on deployment not finishing&lt;br /&gt;
 Restart the cluster-management-agent&lt;br /&gt;
===Vertex UI===&lt;br /&gt;
 https://ders-vertex.dersllc.com/system&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
===spectro mgmt self link creation is still pending===&lt;br /&gt;
Error:&lt;br /&gt;
 spectro mgmt self link creation is still pending&lt;br /&gt;
Fix:&lt;br /&gt;
 Restart the spectrocluster Deployment&lt;br /&gt;
===Failed to apply cert renewal plan for first time push of certs===&lt;br /&gt;
Error:&lt;br /&gt;
 Failed to apply cert renewal plan for first time push of certs&lt;br /&gt;
Fix:&lt;br /&gt;
 Restart the Palette-Controller-Manager Deployment&lt;br /&gt;
===No Helm Charts Showing up in Profile creation===&lt;br /&gt;
Error:&lt;br /&gt;
 Helm results empty&lt;br /&gt;
Fix:&lt;br /&gt;
 Navigate to &amp;quot;Tenant Settings&amp;quot; -&amp;gt; Platform -&amp;gt; Platform Settings&lt;br /&gt;
 Enable &amp;quot;Allow non-FIPS packs&amp;quot;&lt;br /&gt;
 Enable &amp;quot;Allow non-FIPS features&amp;quot;&lt;br /&gt;
=== ORAS Pull and Push ===&lt;br /&gt;
 oras login harbor.dersllc.com --username &#039;admin&#039; --password &#039;&amp;lt;password&amp;gt;&#039;&lt;br /&gt;
 oras pull harbor.dersllc.com/vertex-fips/rc-fips/4.5/spectro-packs/archive/ubuntu-maas:20.04&lt;br /&gt;
 oras push harbor.dersllc.com/spectro-packs/spectro-packs/archive/ubuntu-maas:20.04 ubuntu-maas-20.04.tar.gz --insecure --annotation org.opencontainers.image.created=&amp;quot;2023-07-24T11:57:56Z&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
* ??Download Certs&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/STAR_dersllc_com.crt &amp;gt; /opt/spectro/ssl/server.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/dersllc-new.key &amp;gt; /opt/spectro/ssl/server.key&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/VertexInstall&amp;diff=670</id>
		<title>SpectroCloud/VertexInstall</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/VertexInstall&amp;diff=670"/>
		<updated>2025-04-10T17:10:56Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Vertex Install Steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Vertex Installation Instructions=&lt;br /&gt;
==Vertex Installation==&lt;br /&gt;
===Pre Requisites===&lt;br /&gt;
====1. Needed Downloads====&lt;br /&gt;
* RETOOL Location: Palette-Release -&amp;gt; Vertex Info -&amp;gt; Binaries&lt;br /&gt;
 Airgap Binaries: Release Binary&lt;br /&gt;
 Command Line Tools: Palette CLI Linux&lt;br /&gt;
* RETOOL Location: Palette-Release -&amp;gt; Vertex Info -&amp;gt; Capi OS Images&lt;br /&gt;
 Search: &amp;quot;&amp;lt;supported version #&amp;gt;&amp;quot; &lt;br /&gt;
 Download: &amp;lt;strong&amp;gt;k8s_fips&amp;lt;/strong&amp;gt; for &amp;lt;strong&amp;gt;vmware&amp;lt;/strong&amp;gt;&lt;br /&gt;
 &amp;lt;strong&amp;gt;NOTE:&amp;lt;/strong&amp;gt; find supported versions via https://docs.spectrocloud.com/release-notes/&lt;br /&gt;
* RETOOL Location: Palette-Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries&lt;br /&gt;
 Search: &amp;quot;airgap-vertex-pack-kubernetes&amp;quot;&lt;br /&gt;
 Download: &amp;lt;strong&amp;gt; kubernetes &amp;lt;/strong&amp;gt; for &amp;lt;strong&amp;gt;&amp;lt;supported version&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
 &amp;lt;strong&amp;gt;NOTE:&amp;lt;/strong&amp;gt; find supported versions via https://docs.spectrocloud.com/release-notes/&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Binaries: airgap-base-ova (ex. spectro-airgap-podman-v3.1.4.ova)&lt;br /&gt;
 RETOOL Location: Palette-Release -&amp;gt; Vertex Info -&amp;gt; Binaries -&amp;gt; Type: Airgap Ovas&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====2. vCenter Prep ====&lt;br /&gt;
* Tag the DataCenter with k8s-region&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:TagDatacenter.png|options|Datacenter Tag]]&amp;lt;/center&amp;gt;&lt;br /&gt;
* Tag the Cluster with k8s-zone&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:TagCluster.png|options|Cluster Tag]]&amp;lt;/center&amp;gt;&lt;br /&gt;
* Create a VM Folder called spectro-templates&lt;br /&gt;
* Create a VM Folder called spectro-vms&lt;br /&gt;
&amp;lt;center&amp;gt; [[File:VmFolders.png|options|Create Folders]]&amp;lt;/center&amp;gt;&lt;br /&gt;
* Import the k8s_fips OVA (ex. u-2004-0-k-1305-fips.ova)&lt;br /&gt;
** Rename Image to &amp;quot;r_u-2004-0-k-&amp;lt;version&amp;gt;-fips&amp;quot; (ex. r_u-2004-0-k-1305-fips)&lt;br /&gt;
** Convert VM to Template.&lt;br /&gt;
&lt;br /&gt;
====3. Jumpbox Setup====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
DOCS REFERENCE: https://docs.spectrocloud.com/vertex/install-palette-vertex/install-on-vmware/airgap-install/environment-setup/vmware-vsphere-airgap-instructions/&lt;br /&gt;
* Deploy the OVA to vCenter (airgap-base-ova).&lt;br /&gt;
 1. Machine name: &amp;lt;strong&amp;gt;sc-deploy&amp;lt;/strong&amp;gt;&lt;br /&gt;
 2. Folder: &amp;lt;strong&amp;gt;spectro-vms&amp;lt;/strong&amp;gt;&lt;br /&gt;
 3. Acknowledge the certificate.&lt;br /&gt;
 4. Storage: &amp;lt;strong&amp;gt;DERS-HDD&amp;lt;/strong&amp;gt;&lt;br /&gt;
 5. Network: &amp;lt;strong&amp;gt;DERS-87&amp;lt;/strong&amp;gt;&lt;br /&gt;
 6. Set SSH Public Key: &amp;lt;strong&amp;gt;&amp;lt;opsman-key&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
 7. Default User Password: &amp;lt;strong&amp;gt;&amp;lt;ders&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
* Copy the vertex bin to the sc-deploy vm.&lt;br /&gt;
 export SC_DEPLOY_IP=&amp;quot;172.16.87.51&amp;quot;&lt;br /&gt;
 scp -i ~/.ssh/opsman /nfs/Download/airgap-vertex-v4.5.11.bin ubuntu@$SC_DEPLOY_IP:/tmp/&lt;br /&gt;
 scp -i ~/.ssh/opsman /nfs/Download/airgap-vertex-pack-kubernetes-1.30.5.bin ubuntu@$SC_DEPLOY_IP:/tmp/&lt;br /&gt;
 scp -i ~/.ssh/opsman /nfs/Download/airgap-vertex-pack-kubernetes-1.29.9.bin ubuntu@$SC_DEPLOY_IP:/tmp/&lt;br /&gt;
* SSH to the sc-deploy VM.&lt;br /&gt;
 ssh -i ~/.ssh/opsman ubuntu@$SC_DEPLOY_IP&lt;br /&gt;
 sudo --login&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 apt update&lt;br /&gt;
 apt upgrade -y&lt;br /&gt;
 apt-get -y install snapd unzip nfs-common ca-certificates zip&lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 &lt;br /&gt;
 ##################################################&lt;br /&gt;
 # Log-in via Docker and ORAS and upload the SCAR #&lt;br /&gt;
 ##################################################&lt;br /&gt;
 docker login harbor.dersllc.com -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 oras login harbor.dersllc.com --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;!--oras push $OCI_PACK_REGISTRY/$OCI_PACK_BASE/spectro-manifests/manifest:$SC_VERSION manifests.tgz --insecure --annotation org.opencontainers.image.created=&amp;quot;2023-07-24T11:57:56Z&amp;quot;--&amp;gt;&lt;br /&gt;
 #####################################################&lt;br /&gt;
 # Setup NFS Mount (NOT REQUIRED, DERS LAB SPECIFIC) #&lt;br /&gt;
 #####################################################&lt;br /&gt;
 mkdir -p /opt/spectro/ssl/&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/STAR_dersllc_com.crt &amp;gt; /opt/spectro/ssl/server.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/dersllc-new.key &amp;gt; /opt/spectro/ssl/server.key&lt;br /&gt;
 &amp;lt;!-- cp /opt/spectro/ssl/server.crt /etc/nginx/ssl/server.crt --&amp;gt;&lt;br /&gt;
 &amp;lt;!-- cp /opt/spectro/ssl/server.key /etc/nginx/ssl/server.key --&amp;gt;&lt;br /&gt;
 echo &amp;quot;172.16.85.15:/Download      /nfs/Download    nfs vers=4.0    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 mkdir -p /nfs/Download&lt;br /&gt;
 mount -a&lt;br /&gt;
 &lt;br /&gt;
 ######################################################&lt;br /&gt;
 # Trust DERS Certs (NOT REQUIRED, DERS LAB SPECIFIC) #&lt;br /&gt;
 ######################################################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 # If Setting up CLI is not present in the output run the following:&lt;br /&gt;
 source /nfs/Download/airgap-vertex-v$SC_VERSION/bin/functions.sh; cli_copy&lt;br /&gt;
 /nfs/Download/airgap-vertex-pack-kubernetes-*&lt;br /&gt;
 &lt;br /&gt;
 ####################################################################&lt;br /&gt;
 # UNZIP Manifest in /var/www/html/manifests/&amp;lt;Version&amp;gt; on ders-plex #&lt;br /&gt;
 ####################################################################&lt;br /&gt;
 # ssh to ders-plex&lt;br /&gt;
 export SC_VERSION=&#039;4.5.11&#039;&lt;br /&gt;
 mkdir -p /var/www/html/manifests/v${SC_VERSION}&lt;br /&gt;
 mv /nfs/Download/scar-airgap-vertex-v${SC_VERSION}.zip /var/www/html/manifests/v${SC_VERSION}&lt;br /&gt;
 cd /var/www/html/manifests/v${SC_VERSION}&lt;br /&gt;
 unzip scar-airgap-vertex-v${SC_VERSION}.zip&lt;br /&gt;
 cd ..&lt;br /&gt;
 rm -f latest&lt;br /&gt;
 ln -s v${SC_VERSION}/ latest&lt;br /&gt;
 systemctl restart httpd&lt;br /&gt;
 &lt;br /&gt;
 curl http://172.16.84.22:8710/manifests/latest/roar/nickfury/versions.yaml&lt;br /&gt;
&lt;br /&gt;
 /nfs/Download/airgap-vertex-v4.5.15/bin/airgap-setup.sh vertex.dersllc.com&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4. Harbor Prep====&lt;br /&gt;
* Create a new Public Project (spectro-images)&lt;br /&gt;
* Create a new Public Project (spectro-packs)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Vertex Install Steps===&lt;br /&gt;
 #################&lt;br /&gt;
 # SET VARIABLES #&lt;br /&gt;
 #################&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=airgap-spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=airgap-spectro-packs&lt;br /&gt;
 export SC_VERSION=&#039;4.6.18&#039;&lt;br /&gt;
 &lt;br /&gt;
 #################################&lt;br /&gt;
 # Import Containers into Harbor #&lt;br /&gt;
 #################################&lt;br /&gt;
 chmod +x /nfs/Download/airgap-vertex-*&lt;br /&gt;
 /nfs/Download/airgap-vertex-v$SC_VERSION.bin --nodiskspace --target /nfs/Download/airgap-vertex-v$SC_VERSION/&lt;br /&gt;
 &lt;br /&gt;
 #######################&lt;br /&gt;
 # Install Palette CLI #&lt;br /&gt;
 #######################&lt;br /&gt;
 &amp;lt;!-- source /nfs/Download/airgap-vertex-v$SC_VERSION/bin/functions.sh; cli_copy --&amp;gt;&lt;br /&gt;
 mv /nfs/Download/palette /usr/local/bin/palette&lt;br /&gt;
 chmod +x /usr/local/bin/palette&lt;br /&gt;
&lt;br /&gt;
 # Encryption&lt;br /&gt;
 export PALETTE_ENCRYPTION_PASSWORD=&#039;VERTEX1234!vertex1234!&#039; &lt;br /&gt;
 &lt;br /&gt;
 # SSH to sc-deploy and run:&lt;br /&gt;
 palette version &lt;br /&gt;
 #Note: make sure it is at least 4.5.7&lt;br /&gt;
 &lt;br /&gt;
 palette ec install&lt;br /&gt;
 &lt;br /&gt;
 # No palette CLI config file detected. One will be created.&lt;br /&gt;
 # Management Plane Type: &lt;br /&gt;
     &amp;lt;strong&amp;gt; Palette VerteX &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Operating System: &lt;br /&gt;
     &amp;lt;strong&amp;gt; ubuntu &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Enable Ubuntu Pro (required for production)? [y/N]: &amp;lt;strong&amp;gt; Yes &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Ubuntu Pro token: &amp;lt;strong&amp;gt; C12HPMun5ibCKAqtW%cqBpaL66RNjd &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # enabling experimental podman provider&lt;br /&gt;
 # No kind clusters found.&lt;br /&gt;
 # Cloud Type: &lt;br /&gt;
     &amp;lt;strong&amp;gt; VMware vSphere &amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 ##########################################################&lt;br /&gt;
 # Spectro Cloud Artifact Repository (SCAR) Configuration #                                                                                                             &lt;br /&gt;
 ##########################################################                                                                                                                                                                                                                                                                                &lt;br /&gt;
 # SCAR location: &lt;br /&gt;
     &amp;lt;strong&amp;gt; http://172.16.84.22:8710/manifests/latest/ &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # SCAR username: &lt;br /&gt;
     &amp;lt;strong&amp;gt; admin &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # SCAR password: &lt;br /&gt;
     &amp;lt;strong&amp;gt; ******** &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Allow Insecure Connection (Bypass x509 Verification)? [Y/n]: &lt;br /&gt;
     &amp;lt;strong&amp;gt; Yes &amp;lt;/strong&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Enter Environment Configuration #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # HTTPS Proxy (optional, hit enter to skip): &lt;br /&gt;
 # HTTP Proxy (optional, hit enter to skip): &lt;br /&gt;
 # Pod CIDR: 192.168.0.0/16&lt;br /&gt;
 # Service IP Range: 10.96.0.0/12&lt;br /&gt;
 #############################################&lt;br /&gt;
 # Enter Pack &amp;amp; Image Registry Configuration #&lt;br /&gt;
 #############################################                                                                                                                  &lt;br /&gt;
 # Registry Type: &lt;br /&gt;
     &amp;lt;strong&amp;gt; OCI &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Name: &lt;br /&gt;
     &amp;lt;strong&amp;gt; DERS-Harbor &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Endpoint: &lt;br /&gt;
     &amp;lt;strong&amp;gt;https://harbor.dersllc.com &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Base Content Path (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;spectro-images&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry CA certificate Filepath (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;/usr/local/share/ca-certificates/ders-star-ca.crt&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Username (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;admin&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Password (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;*********&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Enter &#039;Y&#039; to pull images from public registries or &#039;N&#039; to specify an OCI image registry&lt;br /&gt;
 # Pull images from public registries? [Y/n]: &lt;br /&gt;
     &amp;lt;strong&amp;gt;No&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Use the same OCI Registry for packs &amp;amp; images? [Y/n]: &lt;br /&gt;
     &amp;lt;strong&amp;gt;Yes&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Base Content Path (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;spectro-packs&amp;lt;/strong&amp;gt;&lt;br /&gt;
 #######################&lt;br /&gt;
 # Collecting Metadata #&lt;br /&gt;
 #######################&lt;br /&gt;
 # Kind Cluster Name: &lt;br /&gt;
     &amp;lt;strong&amp;gt; spectro-mgmt-cluster &amp;lt;/strong&amp;gt;&lt;br /&gt;
 #####################################&lt;br /&gt;
 # Enter vSphere Account Information #&lt;br /&gt;
 #####################################&lt;br /&gt;
 # vSphere Endpoint: &lt;br /&gt;
     &amp;lt;strong&amp;gt;vcenter.dersllc.com&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # vSphere Username (with domain): &lt;br /&gt;
     &amp;lt;strong&amp;gt;administrator@ders.lab&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # vSphere Password: &lt;br /&gt;
     &amp;lt;strong&amp;gt;*********&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Allow Insecure Connection (Bypass x509 Verification)? [Y/n]: &lt;br /&gt;
     &amp;lt;strong&amp;gt;Yes&amp;lt;/strong&amp;gt;&lt;br /&gt;
 ##################################################&lt;br /&gt;
 # Enter vSphere Enterprise Cluster configuration #&lt;br /&gt;
 ##################################################                                                                                                               &lt;br /&gt;
 # Datacenter: &lt;br /&gt;
     &amp;lt;strong&amp;gt;DERSLLC&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # VM Folder: &lt;br /&gt;
     &amp;lt;strong&amp;gt;spectro-vms&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Image Template Folder: &lt;br /&gt;
     &amp;lt;strong&amp;gt;spectro-templates&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Cluster for Fault Domain: &lt;br /&gt;
     &amp;lt;strong&amp;gt;Lab&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Network: &lt;br /&gt;
     &amp;lt;strong&amp;gt;DERS-87&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Resource Pool: &lt;br /&gt;
     &amp;lt;strong&amp;gt;Default (root resource pool for cluster: Lab)&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Select specific Datastore or use a VM Storage Policy: &lt;br /&gt;
     &amp;lt;strong&amp;gt;Datastore&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Datastore: &lt;br /&gt;
     &amp;lt;strong&amp;gt;DERS-HDD&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Unable to add another Fault Domain as no Clusters remain in Datacenter DERSLLC&lt;br /&gt;
 # NTP servers (comma-separated domain names or IP addresses, optional) (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;172.16.84.21&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Configure SSH public key(s)&lt;br /&gt;
     &amp;lt;strong&amp;gt;ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDngCrc1Na1xES5nnSBHxw1MMcwEwFL4TpwbSTq4BlcKb4WUGE4AOXr4W4RenB6OTyLkHOeLNc2ptILF3PZQG44SZ+uZMBLhx82DYbMq75F6WDSd7wnHA0cL90ncXGoLnwk+UnNEg59zmhYbrMEVM5OS3k0Ll/EXUb9PUsE+SdEoKDG+84OiwCQnQ+DWr9R79NHwLKflOvIMtoZuFwjObQ7xbsTO27FhL8wbcUDqygVqq+6r6adyZ1yEuqhXRkzUgQWv/rIzATaLTZp5r3kCGRe+EkB6AlapwE1O139ZGuY4m/FlIeXO1Ty0mmF88dI0CsbFUJcKKnO07nzSBhQevRr&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Specify a static IP range for assigning static IPs to cluster node(s).&lt;br /&gt;
 # The IP range must contain at least 5 IPs.	&lt;br /&gt;
 # Start IP: &lt;br /&gt;
     &amp;lt;strong&amp;gt;172.16.85.200&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # End IP: &lt;br /&gt;
     &amp;lt;strong&amp;gt;172.16.85.220&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Network Prefix: &lt;br /&gt;
     &amp;lt;strong&amp;gt;22&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Gateway IP Address: &lt;br /&gt;
     &amp;lt;strong&amp;gt;172.16.84.1&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Name servers (comma-separated IP addresses): &lt;br /&gt;
     &amp;lt;strong&amp;gt;172.16.84.10&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Name server search suffixes (Optional) (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;dersllc.com&amp;lt;/strong&amp;gt;&lt;br /&gt;
 ###################################################################&lt;br /&gt;
 #  Enter vSphere Machine configuration for the Enterprise Cluster #&lt;br /&gt;
 ###################################################################&lt;br /&gt;
 # Select combination: &lt;br /&gt;
     &amp;lt;strong&amp;gt;S: 16 CPU, 32 GB memory, 60 GB storage, 20 GB database with 4 CPU limit and 8 GB memory limit&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Node Affinity: Enter &#039;y&#039; to schedule all Palette pods on control plane nodes? [y/N]: &lt;br /&gt;
     &amp;lt;strong&amp;gt;No&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possible Install Help===&lt;br /&gt;
 # add-on deployment not finishing&lt;br /&gt;
 Restart the cluster-management-agent&lt;br /&gt;
===Vertex UI===&lt;br /&gt;
 https://ders-vertex.dersllc.com/system&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
===spectro mgmt self link creation is still pending===&lt;br /&gt;
Error:&lt;br /&gt;
 spectro mgmt self link creation is still pending&lt;br /&gt;
Fix:&lt;br /&gt;
 Restart the spectrocluster Deployment&lt;br /&gt;
===Failed to apply cert renewal plan for first time push of certs===&lt;br /&gt;
Error:&lt;br /&gt;
 Failed to apply cert renewal plan for first time push of certs&lt;br /&gt;
Fix:&lt;br /&gt;
 Restart the Palette-Controller-Manager Deployment&lt;br /&gt;
===No Helm Charts Showing up in Profile creation===&lt;br /&gt;
Error:&lt;br /&gt;
 Helm results empty&lt;br /&gt;
Fix:&lt;br /&gt;
 Navigate to &amp;quot;Tenant Settings&amp;quot; -&amp;gt; Platform -&amp;gt; Platform Settings&lt;br /&gt;
 Enable &amp;quot;Allow non-FIPS packs&amp;quot;&lt;br /&gt;
 Enable &amp;quot;Allow non-FIPS features&amp;quot;&lt;br /&gt;
=== ORAS Pull and Push ===&lt;br /&gt;
 oras login harbor.dersllc.com --username &#039;admin&#039; --password &#039;&amp;lt;password&amp;gt;&#039;&lt;br /&gt;
 oras pull harbor.dersllc.com/vertex-fips/rc-fips/4.5/spectro-packs/archive/ubuntu-maas:20.04&lt;br /&gt;
 oras push harbor.dersllc.com/spectro-packs/spectro-packs/archive/ubuntu-maas:20.04 ubuntu-maas-20.04.tar.gz --insecure --annotation org.opencontainers.image.created=&amp;quot;2023-07-24T11:57:56Z&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
* ??Download Certs&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/STAR_dersllc_com.crt &amp;gt; /opt/spectro/ssl/server.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/dersllc-new.key &amp;gt; /opt/spectro/ssl/server.key&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/MAAS&amp;diff=669</id>
		<title>SpectroCloud/MAAS</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/MAAS&amp;diff=669"/>
		<updated>2025-04-10T14:42:45Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Upload Spectro Images to MAAS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=MAAS Information=&lt;br /&gt;
==MAAS Install==&lt;br /&gt;
 vi /etc/netplan/50-cloud-init.yaml&lt;br /&gt;
 netplan apply&lt;br /&gt;
 hostnamectl set-hostname MAAS&lt;br /&gt;
 apt update -y&lt;br /&gt;
 apt install nfs-common net-tools -y&lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 snap install docker&lt;br /&gt;
 snap install k9s&lt;br /&gt;
 echo &amp;quot;172.16.85.15:/Download      /nfs/Download    nfs vers=4.0    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 systemctl daemon-reload&lt;br /&gt;
 mkdir -p /nfs/Download&lt;br /&gt;
 mount -a&lt;br /&gt;
 snap install maas&lt;br /&gt;
 maas init region+rack --database-uri &#039;postgres://maas:DERS4me!@psql.dersllc.com/maas-new&#039;&lt;br /&gt;
 maas createadmin --username=admin --email=daniel.roessner@dersllc.com&lt;br /&gt;
&lt;br /&gt;
==Upload Spectro Images to MAAS==&lt;br /&gt;
 # SCP Files to MAAS Server&lt;br /&gt;
 scp $IMAGE_NAME.tar.gz ders@172.16.84.39:/home/ders/&lt;br /&gt;
&lt;br /&gt;
 #Login to MAAS Server&lt;br /&gt;
 ssh ders@172.16.84.39&lt;br /&gt;
 &lt;br /&gt;
 export IMAGE_NAME=&#039;u-2204-0-k-1315-0&#039;&lt;br /&gt;
 export MAAS_IP=&#039;172.16.84.39&#039;&lt;br /&gt;
 ### API Key is found @ http://172.16.84.39:5240/MAAS/r/account/prefs/api-keys&lt;br /&gt;
 export MAAS_API_KEY=&#039;ZmT5y4KK5wBESpNvZs:FS6aHBn34Taz4QVm6B:n9thshcRPTjcPNx82wQUgwbwnfJFhjK6&#039;&lt;br /&gt;
 &lt;br /&gt;
 maas login maas http://$MAAS_IP:5240/MAAS/api/2.0 $MAAS_API_KEY&lt;br /&gt;
 &lt;br /&gt;
 maas maas boot-resources create name=custom/$IMAGE_NAME architecture=amd64/generic content@=/home/ders/$IMAGE_NAME.tar.gz title=$IMAGE_NAME&lt;br /&gt;
&lt;br /&gt;
== Deploy MAAS PCG ==&lt;br /&gt;
 #Create VM with 4CPU and 8G of Memory and 50G Disk and Networking to VLAN-2&lt;br /&gt;
 #PXE Boot the VM. This should register it with MAAS. &lt;br /&gt;
 #In MAAS Commission the VM and add the Power Configuration. &lt;br /&gt;
&lt;br /&gt;
 #On a separate vm (TEMP-VM) Download the Palette-CLI. &lt;br /&gt;
 wget --no-check-certificate https://software.spectrocloud.com/palette-cli/v4.5.4/linux/cli/palette -O /usr/bin/palette&lt;br /&gt;
 chmod +x /usr/bin/palette&lt;br /&gt;
 &lt;br /&gt;
 wget --no-check-certificate https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/maas-pcg/palette-cli-config.yaml -O palette-cli-config.yaml&lt;br /&gt;
 palette login -c palette-cli-config.yaml --api-key &#039;NmZlMzFjMTljYmZlZTY2YzMyMjBmY2MzMmU5ZDAzZDc=&#039; --org ders-lab --console-url https://vertex.dersllc.com&lt;br /&gt;
 &lt;br /&gt;
 wget --no-check-certificate https://ders-gitlab.dersllc.com/ders/spectro-sa/-/raw/main/maas-pcg/pcg.yaml -O pcg.yaml&lt;br /&gt;
 palette pcg install -f pcg.yaml&lt;br /&gt;
 &lt;br /&gt;
 #Once complete this VM can be deleted.&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
 us-docker.pkg.dev::harbor.dersllc.com/spectro-images&lt;br /&gt;
 docker.io::harbor.dersllc.com/spectro-images/docker.io&lt;br /&gt;
 gcr.io::harbor.dersllc.com/spectro-images/gcr.io&lt;br /&gt;
 ghcr.io::harbor.dersllc.com/spectro-images/ghcr.io&lt;br /&gt;
 k8s.gcr.io::harbor.dersllc.com/spectro-images/k8s.gcr.io&lt;br /&gt;
 registry.k8s.io::harbor.dersllc.com/spectro-images/registry.k8s.io&lt;br /&gt;
 quay.io::harbor.dersllc.com/spectro-images/quay.io&lt;br /&gt;
 *::harbor.dersllc.com/spectro-images/*&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/VertexInstall&amp;diff=668</id>
		<title>SpectroCloud/VertexInstall</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/VertexInstall&amp;diff=668"/>
		<updated>2025-04-08T13:11:38Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Vertex Install Steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Vertex Installation Instructions=&lt;br /&gt;
==Vertex Installation==&lt;br /&gt;
===Pre Requisites===&lt;br /&gt;
====1. Needed Downloads====&lt;br /&gt;
* RETOOL Location: Palette-Release -&amp;gt; Vertex Info -&amp;gt; Binaries&lt;br /&gt;
 Airgap Binaries: Release Binary&lt;br /&gt;
 Command Line Tools: Palette CLI Linux&lt;br /&gt;
* RETOOL Location: Palette-Release -&amp;gt; Vertex Info -&amp;gt; Capi OS Images&lt;br /&gt;
 Search: &amp;quot;&amp;lt;supported version #&amp;gt;&amp;quot; &lt;br /&gt;
 Download: &amp;lt;strong&amp;gt;k8s_fips&amp;lt;/strong&amp;gt; for &amp;lt;strong&amp;gt;vmware&amp;lt;/strong&amp;gt;&lt;br /&gt;
 &amp;lt;strong&amp;gt;NOTE:&amp;lt;/strong&amp;gt; find supported versions via https://docs.spectrocloud.com/release-notes/&lt;br /&gt;
* RETOOL Location: Palette-Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries&lt;br /&gt;
 Search: &amp;quot;airgap-vertex-pack-kubernetes&amp;quot;&lt;br /&gt;
 Download: &amp;lt;strong&amp;gt; kubernetes &amp;lt;/strong&amp;gt; for &amp;lt;strong&amp;gt;&amp;lt;supported version&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
 &amp;lt;strong&amp;gt;NOTE:&amp;lt;/strong&amp;gt; find supported versions via https://docs.spectrocloud.com/release-notes/&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Binaries: airgap-base-ova (ex. spectro-airgap-podman-v3.1.4.ova)&lt;br /&gt;
 RETOOL Location: Palette-Release -&amp;gt; Vertex Info -&amp;gt; Binaries -&amp;gt; Type: Airgap Ovas&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====2. vCenter Prep ====&lt;br /&gt;
* Tag the DataCenter with k8s-region&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:TagDatacenter.png|options|Datacenter Tag]]&amp;lt;/center&amp;gt;&lt;br /&gt;
* Tag the Cluster with k8s-zone&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:TagCluster.png|options|Cluster Tag]]&amp;lt;/center&amp;gt;&lt;br /&gt;
* Create a VM Folder called spectro-templates&lt;br /&gt;
* Create a VM Folder called spectro-vms&lt;br /&gt;
&amp;lt;center&amp;gt; [[File:VmFolders.png|options|Create Folders]]&amp;lt;/center&amp;gt;&lt;br /&gt;
* Import the k8s_fips OVA (ex. u-2004-0-k-1305-fips.ova)&lt;br /&gt;
** Rename Image to &amp;quot;r_u-2004-0-k-&amp;lt;version&amp;gt;-fips&amp;quot; (ex. r_u-2004-0-k-1305-fips)&lt;br /&gt;
** Convert VM to Template.&lt;br /&gt;
&lt;br /&gt;
====3. Jumpbox Setup====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
DOCS REFERENCE: https://docs.spectrocloud.com/vertex/install-palette-vertex/install-on-vmware/airgap-install/environment-setup/vmware-vsphere-airgap-instructions/&lt;br /&gt;
* Deploy the OVA to vCenter (airgap-base-ova).&lt;br /&gt;
 1. Machine name: &amp;lt;strong&amp;gt;sc-deploy&amp;lt;/strong&amp;gt;&lt;br /&gt;
 2. Folder: &amp;lt;strong&amp;gt;spectro-vms&amp;lt;/strong&amp;gt;&lt;br /&gt;
 3. Acknowledge the certificate.&lt;br /&gt;
 4. Storage: &amp;lt;strong&amp;gt;DERS-HDD&amp;lt;/strong&amp;gt;&lt;br /&gt;
 5. Network: &amp;lt;strong&amp;gt;DERS-87&amp;lt;/strong&amp;gt;&lt;br /&gt;
 6. Set SSH Public Key: &amp;lt;strong&amp;gt;&amp;lt;opsman-key&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
 7. Default User Password: &amp;lt;strong&amp;gt;&amp;lt;ders&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
* Copy the vertex bin to the sc-deploy vm.&lt;br /&gt;
 export SC_DEPLOY_IP=&amp;quot;172.16.87.51&amp;quot;&lt;br /&gt;
 scp -i ~/.ssh/opsman /nfs/Download/airgap-vertex-v4.5.11.bin ubuntu@$SC_DEPLOY_IP:/tmp/&lt;br /&gt;
 scp -i ~/.ssh/opsman /nfs/Download/airgap-vertex-pack-kubernetes-1.30.5.bin ubuntu@$SC_DEPLOY_IP:/tmp/&lt;br /&gt;
 scp -i ~/.ssh/opsman /nfs/Download/airgap-vertex-pack-kubernetes-1.29.9.bin ubuntu@$SC_DEPLOY_IP:/tmp/&lt;br /&gt;
* SSH to the sc-deploy VM.&lt;br /&gt;
 ssh -i ~/.ssh/opsman ubuntu@$SC_DEPLOY_IP&lt;br /&gt;
 sudo --login&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 apt update&lt;br /&gt;
 apt upgrade -y&lt;br /&gt;
 apt-get -y install snapd unzip nfs-common ca-certificates zip&lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 &lt;br /&gt;
 ##################################################&lt;br /&gt;
 # Log-in via Docker and ORAS and upload the SCAR #&lt;br /&gt;
 ##################################################&lt;br /&gt;
 docker login harbor.dersllc.com -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 oras login harbor.dersllc.com --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;!--oras push $OCI_PACK_REGISTRY/$OCI_PACK_BASE/spectro-manifests/manifest:$SC_VERSION manifests.tgz --insecure --annotation org.opencontainers.image.created=&amp;quot;2023-07-24T11:57:56Z&amp;quot;--&amp;gt;&lt;br /&gt;
 #####################################################&lt;br /&gt;
 # Setup NFS Mount (NOT REQUIRED, DERS LAB SPECIFIC) #&lt;br /&gt;
 #####################################################&lt;br /&gt;
 mkdir -p /opt/spectro/ssl/&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/STAR_dersllc_com.crt &amp;gt; /opt/spectro/ssl/server.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/dersllc-new.key &amp;gt; /opt/spectro/ssl/server.key&lt;br /&gt;
 &amp;lt;!-- cp /opt/spectro/ssl/server.crt /etc/nginx/ssl/server.crt --&amp;gt;&lt;br /&gt;
 &amp;lt;!-- cp /opt/spectro/ssl/server.key /etc/nginx/ssl/server.key --&amp;gt;&lt;br /&gt;
 echo &amp;quot;172.16.85.15:/Download      /nfs/Download    nfs vers=4.0    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 mkdir -p /nfs/Download&lt;br /&gt;
 mount -a&lt;br /&gt;
 &lt;br /&gt;
 ######################################################&lt;br /&gt;
 # Trust DERS Certs (NOT REQUIRED, DERS LAB SPECIFIC) #&lt;br /&gt;
 ######################################################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 # If Setting up CLI is not present in the output run the following:&lt;br /&gt;
 source /nfs/Download/airgap-vertex-v$SC_VERSION/bin/functions.sh; cli_copy&lt;br /&gt;
 /nfs/Download/airgap-vertex-pack-kubernetes-*&lt;br /&gt;
 &lt;br /&gt;
 ####################################################################&lt;br /&gt;
 # UNZIP Manifest in /var/www/html/manifests/&amp;lt;Version&amp;gt; on ders-plex #&lt;br /&gt;
 ####################################################################&lt;br /&gt;
 # ssh to ders-plex&lt;br /&gt;
 export SC_VERSION=&#039;4.5.11&#039;&lt;br /&gt;
 mkdir -p /var/www/html/manifests/v${SC_VERSION}&lt;br /&gt;
 mv /nfs/Download/scar-airgap-vertex-v${SC_VERSION}.zip /var/www/html/manifests/v${SC_VERSION}&lt;br /&gt;
 cd /var/www/html/manifests/v${SC_VERSION}&lt;br /&gt;
 unzip scar-airgap-vertex-v${SC_VERSION}.zip&lt;br /&gt;
 cd ..&lt;br /&gt;
 rm -f latest&lt;br /&gt;
 ln -s v${SC_VERSION}/ latest&lt;br /&gt;
 systemctl restart httpd&lt;br /&gt;
 &lt;br /&gt;
 curl http://172.16.84.22:8710/manifests/latest/roar/nickfury/versions.yaml&lt;br /&gt;
&lt;br /&gt;
 /nfs/Download/airgap-vertex-v4.5.15/bin/airgap-setup.sh vertex.dersllc.com&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4. Harbor Prep====&lt;br /&gt;
* Create a new Public Project (spectro-images)&lt;br /&gt;
* Create a new Public Project (spectro-packs)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Vertex Install Steps===&lt;br /&gt;
 #################&lt;br /&gt;
 # SET VARIABLES #&lt;br /&gt;
 #################&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=spectro-packs&lt;br /&gt;
 export SC_VERSION=&#039;4.6.18&#039;&lt;br /&gt;
 &lt;br /&gt;
 #################################&lt;br /&gt;
 # Import Containers into Harbor #&lt;br /&gt;
 #################################&lt;br /&gt;
 chmod +x /nfs/Download/airgap-vertex-*&lt;br /&gt;
 /nfs/Download/airgap-vertex-v$SC_VERSION.bin --nodiskspace --target /nfs/Download/airgap-vertex-v$SC_VERSION/&lt;br /&gt;
 &lt;br /&gt;
 #######################&lt;br /&gt;
 # Install Palette CLI #&lt;br /&gt;
 #######################&lt;br /&gt;
 &amp;lt;!-- source /nfs/Download/airgap-vertex-v$SC_VERSION/bin/functions.sh; cli_copy --&amp;gt;&lt;br /&gt;
 mv /nfs/Download/palette /usr/local/bin/palette&lt;br /&gt;
 chmod +x /usr/local/bin/palette&lt;br /&gt;
&lt;br /&gt;
 # Encryption&lt;br /&gt;
 export PALETTE_ENCRYPTION_PASSWORD=&#039;VERTEX1234!vertex1234!&#039; &lt;br /&gt;
 &lt;br /&gt;
 # SSH to sc-deploy and run:&lt;br /&gt;
 palette version &lt;br /&gt;
 #Note: make sure it is at least 4.5.7&lt;br /&gt;
 &lt;br /&gt;
 palette ec install&lt;br /&gt;
 &lt;br /&gt;
 # No palette CLI config file detected. One will be created.&lt;br /&gt;
 # Management Plane Type: &lt;br /&gt;
     &amp;lt;strong&amp;gt; Palette VerteX &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Operating System: &lt;br /&gt;
     &amp;lt;strong&amp;gt; ubuntu &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Enable Ubuntu Pro (required for production)? [y/N]: &amp;lt;strong&amp;gt; Yes &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Ubuntu Pro token: &amp;lt;strong&amp;gt; C12HPMun5ibCKAqtW%cqBpaL66RNjd &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # enabling experimental podman provider&lt;br /&gt;
 # No kind clusters found.&lt;br /&gt;
 # Cloud Type: &lt;br /&gt;
     &amp;lt;strong&amp;gt; VMware vSphere &amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 ##########################################################&lt;br /&gt;
 # Spectro Cloud Artifact Repository (SCAR) Configuration #                                                                                                             &lt;br /&gt;
 ##########################################################                                                                                                                                                                                                                                                                                &lt;br /&gt;
 # SCAR location: &lt;br /&gt;
     &amp;lt;strong&amp;gt; http://172.16.84.22:8710/manifests/latest/ &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # SCAR username: &lt;br /&gt;
     &amp;lt;strong&amp;gt; admin &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # SCAR password: &lt;br /&gt;
     &amp;lt;strong&amp;gt; ******** &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Allow Insecure Connection (Bypass x509 Verification)? [Y/n]: &lt;br /&gt;
     &amp;lt;strong&amp;gt; Yes &amp;lt;/strong&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Enter Environment Configuration #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # HTTPS Proxy (optional, hit enter to skip): &lt;br /&gt;
 # HTTP Proxy (optional, hit enter to skip): &lt;br /&gt;
 # Pod CIDR: 192.168.0.0/16&lt;br /&gt;
 # Service IP Range: 10.96.0.0/12&lt;br /&gt;
 #############################################&lt;br /&gt;
 # Enter Pack &amp;amp; Image Registry Configuration #&lt;br /&gt;
 #############################################                                                                                                                  &lt;br /&gt;
 # Registry Type: &lt;br /&gt;
     &amp;lt;strong&amp;gt; OCI &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Name: &lt;br /&gt;
     &amp;lt;strong&amp;gt; DERS-Harbor &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Endpoint: &lt;br /&gt;
     &amp;lt;strong&amp;gt;https://harbor.dersllc.com &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Base Content Path (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;spectro-images&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry CA certificate Filepath (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;/usr/local/share/ca-certificates/ders-star-ca.crt&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Username (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;admin&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Password (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;*********&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Enter &#039;Y&#039; to pull images from public registries or &#039;N&#039; to specify an OCI image registry&lt;br /&gt;
 # Pull images from public registries? [Y/n]: &lt;br /&gt;
     &amp;lt;strong&amp;gt;No&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Use the same OCI Registry for packs &amp;amp; images? [Y/n]: &lt;br /&gt;
     &amp;lt;strong&amp;gt;Yes&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Base Content Path (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;spectro-packs&amp;lt;/strong&amp;gt;&lt;br /&gt;
 #######################&lt;br /&gt;
 # Collecting Metadata #&lt;br /&gt;
 #######################&lt;br /&gt;
 # Kind Cluster Name: &lt;br /&gt;
     &amp;lt;strong&amp;gt; spectro-mgmt-cluster &amp;lt;/strong&amp;gt;&lt;br /&gt;
 #####################################&lt;br /&gt;
 # Enter vSphere Account Information #&lt;br /&gt;
 #####################################&lt;br /&gt;
 # vSphere Endpoint: &lt;br /&gt;
     &amp;lt;strong&amp;gt;vcenter.dersllc.com&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # vSphere Username (with domain): &lt;br /&gt;
     &amp;lt;strong&amp;gt;administrator@ders.lab&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # vSphere Password: &lt;br /&gt;
     &amp;lt;strong&amp;gt;*********&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Allow Insecure Connection (Bypass x509 Verification)? [Y/n]: &lt;br /&gt;
     &amp;lt;strong&amp;gt;Yes&amp;lt;/strong&amp;gt;&lt;br /&gt;
 ##################################################&lt;br /&gt;
 # Enter vSphere Enterprise Cluster configuration #&lt;br /&gt;
 ##################################################                                                                                                               &lt;br /&gt;
 # Datacenter: &lt;br /&gt;
     &amp;lt;strong&amp;gt;DERSLLC&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # VM Folder: &lt;br /&gt;
     &amp;lt;strong&amp;gt;spectro-vms&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Image Template Folder: &lt;br /&gt;
     &amp;lt;strong&amp;gt;spectro-templates&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Cluster for Fault Domain: &lt;br /&gt;
     &amp;lt;strong&amp;gt;Lab&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Network: &lt;br /&gt;
     &amp;lt;strong&amp;gt;DERS-87&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Resource Pool: &lt;br /&gt;
     &amp;lt;strong&amp;gt;Default (root resource pool for cluster: Lab)&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Select specific Datastore or use a VM Storage Policy: &lt;br /&gt;
     &amp;lt;strong&amp;gt;Datastore&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Datastore: &lt;br /&gt;
     &amp;lt;strong&amp;gt;DERS-HDD&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Unable to add another Fault Domain as no Clusters remain in Datacenter DERSLLC&lt;br /&gt;
 # NTP servers (comma-separated domain names or IP addresses, optional) (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;172.16.84.21&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Configure SSH public key(s)&lt;br /&gt;
     &amp;lt;strong&amp;gt;ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDngCrc1Na1xES5nnSBHxw1MMcwEwFL4TpwbSTq4BlcKb4WUGE4AOXr4W4RenB6OTyLkHOeLNc2ptILF3PZQG44SZ+uZMBLhx82DYbMq75F6WDSd7wnHA0cL90ncXGoLnwk+UnNEg59zmhYbrMEVM5OS3k0Ll/EXUb9PUsE+SdEoKDG+84OiwCQnQ+DWr9R79NHwLKflOvIMtoZuFwjObQ7xbsTO27FhL8wbcUDqygVqq+6r6adyZ1yEuqhXRkzUgQWv/rIzATaLTZp5r3kCGRe+EkB6AlapwE1O139ZGuY4m/FlIeXO1Ty0mmF88dI0CsbFUJcKKnO07nzSBhQevRr&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Specify a static IP range for assigning static IPs to cluster node(s).&lt;br /&gt;
 # The IP range must contain at least 5 IPs.	&lt;br /&gt;
 # Start IP: &lt;br /&gt;
     &amp;lt;strong&amp;gt;172.16.85.200&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # End IP: &lt;br /&gt;
     &amp;lt;strong&amp;gt;172.16.85.220&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Network Prefix: &lt;br /&gt;
     &amp;lt;strong&amp;gt;22&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Gateway IP Address: &lt;br /&gt;
     &amp;lt;strong&amp;gt;172.16.84.1&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Name servers (comma-separated IP addresses): &lt;br /&gt;
     &amp;lt;strong&amp;gt;172.16.84.10&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Name server search suffixes (Optional) (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;dersllc.com&amp;lt;/strong&amp;gt;&lt;br /&gt;
 ###################################################################&lt;br /&gt;
 #  Enter vSphere Machine configuration for the Enterprise Cluster #&lt;br /&gt;
 ###################################################################&lt;br /&gt;
 # Select combination: &lt;br /&gt;
     &amp;lt;strong&amp;gt;S: 16 CPU, 32 GB memory, 60 GB storage, 20 GB database with 4 CPU limit and 8 GB memory limit&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Node Affinity: Enter &#039;y&#039; to schedule all Palette pods on control plane nodes? [y/N]: &lt;br /&gt;
     &amp;lt;strong&amp;gt;No&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possible Install Help===&lt;br /&gt;
 # add-on deployment not finishing&lt;br /&gt;
 Restart the cluster-management-agent&lt;br /&gt;
===Vertex UI===&lt;br /&gt;
 https://ders-vertex.dersllc.com/system&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
===spectro mgmt self link creation is still pending===&lt;br /&gt;
Error:&lt;br /&gt;
 spectro mgmt self link creation is still pending&lt;br /&gt;
Fix:&lt;br /&gt;
 Restart the spectrocluster Deployment&lt;br /&gt;
===Failed to apply cert renewal plan for first time push of certs===&lt;br /&gt;
Error:&lt;br /&gt;
 Failed to apply cert renewal plan for first time push of certs&lt;br /&gt;
Fix:&lt;br /&gt;
 Restart the Palette-Controller-Manager Deployment&lt;br /&gt;
===No Helm Charts Showing up in Profile creation===&lt;br /&gt;
Error:&lt;br /&gt;
 Helm results empty&lt;br /&gt;
Fix:&lt;br /&gt;
 Navigate to &amp;quot;Tenant Settings&amp;quot; -&amp;gt; Platform -&amp;gt; Platform Settings&lt;br /&gt;
 Enable &amp;quot;Allow non-FIPS packs&amp;quot;&lt;br /&gt;
 Enable &amp;quot;Allow non-FIPS features&amp;quot;&lt;br /&gt;
=== ORAS Pull and Push ===&lt;br /&gt;
 oras login harbor.dersllc.com --username &#039;admin&#039; --password &#039;&amp;lt;password&amp;gt;&#039;&lt;br /&gt;
 oras pull harbor.dersllc.com/vertex-fips/rc-fips/4.5/spectro-packs/archive/ubuntu-maas:20.04&lt;br /&gt;
 oras push harbor.dersllc.com/spectro-packs/spectro-packs/archive/ubuntu-maas:20.04 ubuntu-maas-20.04.tar.gz --insecure --annotation org.opencontainers.image.created=&amp;quot;2023-07-24T11:57:56Z&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
* ??Download Certs&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/STAR_dersllc_com.crt &amp;gt; /opt/spectro/ssl/server.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/dersllc-new.key &amp;gt; /opt/spectro/ssl/server.key&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
	<entry>
		<id>http://wiki.dersllc.com/index.php?title=SpectroCloud/VertexInstall&amp;diff=667</id>
		<title>SpectroCloud/VertexInstall</title>
		<link rel="alternate" type="text/html" href="http://wiki.dersllc.com/index.php?title=SpectroCloud/VertexInstall&amp;diff=667"/>
		<updated>2025-04-08T13:10:40Z</updated>

		<summary type="html">&lt;p&gt;Ders: /* Vertex Install Steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Vertex Installation Instructions=&lt;br /&gt;
==Vertex Installation==&lt;br /&gt;
===Pre Requisites===&lt;br /&gt;
====1. Needed Downloads====&lt;br /&gt;
* RETOOL Location: Palette-Release -&amp;gt; Vertex Info -&amp;gt; Binaries&lt;br /&gt;
 Airgap Binaries: Release Binary&lt;br /&gt;
 Command Line Tools: Palette CLI Linux&lt;br /&gt;
* RETOOL Location: Palette-Release -&amp;gt; Vertex Info -&amp;gt; Capi OS Images&lt;br /&gt;
 Search: &amp;quot;&amp;lt;supported version #&amp;gt;&amp;quot; &lt;br /&gt;
 Download: &amp;lt;strong&amp;gt;k8s_fips&amp;lt;/strong&amp;gt; for &amp;lt;strong&amp;gt;vmware&amp;lt;/strong&amp;gt;&lt;br /&gt;
 &amp;lt;strong&amp;gt;NOTE:&amp;lt;/strong&amp;gt; find supported versions via https://docs.spectrocloud.com/release-notes/&lt;br /&gt;
* RETOOL Location: Palette-Release -&amp;gt; Vertex Info -&amp;gt; Airgap Binaries&lt;br /&gt;
 Search: &amp;quot;airgap-vertex-pack-kubernetes&amp;quot;&lt;br /&gt;
 Download: &amp;lt;strong&amp;gt; kubernetes &amp;lt;/strong&amp;gt; for &amp;lt;strong&amp;gt;&amp;lt;supported version&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
 &amp;lt;strong&amp;gt;NOTE:&amp;lt;/strong&amp;gt; find supported versions via https://docs.spectrocloud.com/release-notes/&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Binaries: airgap-base-ova (ex. spectro-airgap-podman-v3.1.4.ova)&lt;br /&gt;
 RETOOL Location: Palette-Release -&amp;gt; Vertex Info -&amp;gt; Binaries -&amp;gt; Type: Airgap Ovas&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====2. vCenter Prep ====&lt;br /&gt;
* Tag the DataCenter with k8s-region&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:TagDatacenter.png|options|Datacenter Tag]]&amp;lt;/center&amp;gt;&lt;br /&gt;
* Tag the Cluster with k8s-zone&lt;br /&gt;
&amp;lt;center&amp;gt;[[File:TagCluster.png|options|Cluster Tag]]&amp;lt;/center&amp;gt;&lt;br /&gt;
* Create a VM Folder called spectro-templates&lt;br /&gt;
* Create a VM Folder called spectro-vms&lt;br /&gt;
&amp;lt;center&amp;gt; [[File:VmFolders.png|options|Create Folders]]&amp;lt;/center&amp;gt;&lt;br /&gt;
* Import the k8s_fips OVA (ex. u-2004-0-k-1305-fips.ova)&lt;br /&gt;
** Rename Image to &amp;quot;r_u-2004-0-k-&amp;lt;version&amp;gt;-fips&amp;quot; (ex. r_u-2004-0-k-1305-fips)&lt;br /&gt;
** Convert VM to Template.&lt;br /&gt;
&lt;br /&gt;
====3. Jumpbox Setup====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
DOCS REFERENCE: https://docs.spectrocloud.com/vertex/install-palette-vertex/install-on-vmware/airgap-install/environment-setup/vmware-vsphere-airgap-instructions/&lt;br /&gt;
* Deploy the OVA to vCenter (airgap-base-ova).&lt;br /&gt;
 1. Machine name: &amp;lt;strong&amp;gt;sc-deploy&amp;lt;/strong&amp;gt;&lt;br /&gt;
 2. Folder: &amp;lt;strong&amp;gt;spectro-vms&amp;lt;/strong&amp;gt;&lt;br /&gt;
 3. Acknowledge the certificate.&lt;br /&gt;
 4. Storage: &amp;lt;strong&amp;gt;DERS-HDD&amp;lt;/strong&amp;gt;&lt;br /&gt;
 5. Network: &amp;lt;strong&amp;gt;DERS-87&amp;lt;/strong&amp;gt;&lt;br /&gt;
 6. Set SSH Public Key: &amp;lt;strong&amp;gt;&amp;lt;opsman-key&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
 7. Default User Password: &amp;lt;strong&amp;gt;&amp;lt;ders&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
* Copy the vertex bin to the sc-deploy vm.&lt;br /&gt;
 export SC_DEPLOY_IP=&amp;quot;172.16.87.51&amp;quot;&lt;br /&gt;
 scp -i ~/.ssh/opsman /nfs/Download/airgap-vertex-v4.5.11.bin ubuntu@$SC_DEPLOY_IP:/tmp/&lt;br /&gt;
 scp -i ~/.ssh/opsman /nfs/Download/airgap-vertex-pack-kubernetes-1.30.5.bin ubuntu@$SC_DEPLOY_IP:/tmp/&lt;br /&gt;
 scp -i ~/.ssh/opsman /nfs/Download/airgap-vertex-pack-kubernetes-1.29.9.bin ubuntu@$SC_DEPLOY_IP:/tmp/&lt;br /&gt;
* SSH to the sc-deploy VM.&lt;br /&gt;
 ssh -i ~/.ssh/opsman ubuntu@$SC_DEPLOY_IP&lt;br /&gt;
 sudo --login&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
 #############################&lt;br /&gt;
 # Install Required Software #&lt;br /&gt;
 #############################&lt;br /&gt;
 apt update&lt;br /&gt;
 apt upgrade -y&lt;br /&gt;
 apt-get -y install snapd unzip nfs-common ca-certificates zip&lt;br /&gt;
 snap install oras --classic&lt;br /&gt;
 &lt;br /&gt;
 ##################################################&lt;br /&gt;
 # Log-in via Docker and ORAS and upload the SCAR #&lt;br /&gt;
 ##################################################&lt;br /&gt;
 docker login harbor.dersllc.com -u admin -p &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 oras login harbor.dersllc.com --username &#039;admin&#039; --password &#039;&amp;lt;Password&amp;gt;&#039;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;!--oras push $OCI_PACK_REGISTRY/$OCI_PACK_BASE/spectro-manifests/manifest:$SC_VERSION manifests.tgz --insecure --annotation org.opencontainers.image.created=&amp;quot;2023-07-24T11:57:56Z&amp;quot;--&amp;gt;&lt;br /&gt;
 #####################################################&lt;br /&gt;
 # Setup NFS Mount (NOT REQUIRED, DERS LAB SPECIFIC) #&lt;br /&gt;
 #####################################################&lt;br /&gt;
 mkdir -p /opt/spectro/ssl/&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/STAR_dersllc_com.crt &amp;gt; /opt/spectro/ssl/server.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/dersllc-new.key &amp;gt; /opt/spectro/ssl/server.key&lt;br /&gt;
 &amp;lt;!-- cp /opt/spectro/ssl/server.crt /etc/nginx/ssl/server.crt --&amp;gt;&lt;br /&gt;
 &amp;lt;!-- cp /opt/spectro/ssl/server.key /etc/nginx/ssl/server.key --&amp;gt;&lt;br /&gt;
 echo &amp;quot;172.16.85.15:/Download      /nfs/Download    nfs vers=4.0    0 0&amp;quot; &amp;gt;&amp;gt; /etc/fstab&lt;br /&gt;
 mkdir -p /nfs/Download&lt;br /&gt;
 mount -a&lt;br /&gt;
 &lt;br /&gt;
 ######################################################&lt;br /&gt;
 # Trust DERS Certs (NOT REQUIRED, DERS LAB SPECIFIC) #&lt;br /&gt;
 ######################################################&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/AddTrustExternalCARoot.crt &amp;gt; /usr/local/share/ca-certificates/ders-star-ca.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/vmware-se/-/raw/main/HomeLab/DERS-CA-CERT/ders-ca.cer &amp;gt; /usr/local/share/ca-certificates/ders-ssca.crt&lt;br /&gt;
 update-ca-certificates&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 # If Setting up CLI is not present in the output run the following:&lt;br /&gt;
 source /nfs/Download/airgap-vertex-v$SC_VERSION/bin/functions.sh; cli_copy&lt;br /&gt;
 /nfs/Download/airgap-vertex-pack-kubernetes-*&lt;br /&gt;
 &lt;br /&gt;
 ####################################################################&lt;br /&gt;
 # UNZIP Manifest in /var/www/html/manifests/&amp;lt;Version&amp;gt; on ders-plex #&lt;br /&gt;
 ####################################################################&lt;br /&gt;
 # ssh to ders-plex&lt;br /&gt;
 export SC_VERSION=&#039;4.5.11&#039;&lt;br /&gt;
 mkdir -p /var/www/html/manifests/v${SC_VERSION}&lt;br /&gt;
 mv /nfs/Download/scar-airgap-vertex-v${SC_VERSION}.zip /var/www/html/manifests/v${SC_VERSION}&lt;br /&gt;
 cd /var/www/html/manifests/v${SC_VERSION}&lt;br /&gt;
 unzip scar-airgap-vertex-v${SC_VERSION}.zip&lt;br /&gt;
 cd ..&lt;br /&gt;
 rm -f latest&lt;br /&gt;
 ln -s v${SC_VERSION}/ latest&lt;br /&gt;
 systemctl restart httpd&lt;br /&gt;
 &lt;br /&gt;
 curl http://172.16.84.22:8710/manifests/latest/roar/nickfury/versions.yaml&lt;br /&gt;
&lt;br /&gt;
 /nfs/Download/airgap-vertex-v4.5.15/bin/airgap-setup.sh vertex.dersllc.com&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====4. Harbor Prep====&lt;br /&gt;
* Create a new Public Project (spectro-images)&lt;br /&gt;
* Create a new Public Project (spectro-packs)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Vertex Install Steps===&lt;br /&gt;
 #################&lt;br /&gt;
 # SET VARIABLES #&lt;br /&gt;
 #################&lt;br /&gt;
 export OCI_IMAGE_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_IMAGE_BASE=spectro-images&lt;br /&gt;
 export OCI_PACK_REGISTRY=harbor.dersllc.com&lt;br /&gt;
 export OCI_PACK_BASE=spectro-packs&lt;br /&gt;
 export SC_VERSION=&#039;4.6.18&#039;&lt;br /&gt;
 &lt;br /&gt;
 #################################&lt;br /&gt;
 # Import Containers into Harbor #&lt;br /&gt;
 #################################&lt;br /&gt;
 chmod +x /nfs/Download/airgap-vertex-*&lt;br /&gt;
 /nfs/Download/airgap-vertex-v$SC_VERSION.bin --nodiskspace --target /nfs/Download/airgap-vertex-v$SC_VERSION/&lt;br /&gt;
 &lt;br /&gt;
 #######################&lt;br /&gt;
 # Install Palette CLI #&lt;br /&gt;
 #######################&lt;br /&gt;
 source /nfs/Download/airgap-vertex-v$SC_VERSION/bin/functions.sh; cli_copy&lt;br /&gt;
 mv /nfs/Download/palette /usr/local/bin/palette&lt;br /&gt;
 chmod +x /usr/local/bin/palette&lt;br /&gt;
&lt;br /&gt;
 # Encryption&lt;br /&gt;
 export PALETTE_ENCRYPTION_PASSWORD=&#039;VERTEX1234!vertex1234!&#039; &lt;br /&gt;
 &lt;br /&gt;
 # SSH to sc-deploy and run:&lt;br /&gt;
 palette version &lt;br /&gt;
 #Note: make sure it is at least 4.5.7&lt;br /&gt;
 &lt;br /&gt;
 palette ec install&lt;br /&gt;
 &lt;br /&gt;
 # No palette CLI config file detected. One will be created.&lt;br /&gt;
 # Management Plane Type: &lt;br /&gt;
     &amp;lt;strong&amp;gt; Palette VerteX &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Operating System: &lt;br /&gt;
     &amp;lt;strong&amp;gt; ubuntu &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Enable Ubuntu Pro (required for production)? [y/N]: &amp;lt;strong&amp;gt; Yes &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Ubuntu Pro token: &amp;lt;strong&amp;gt; C12HPMun5ibCKAqtW%cqBpaL66RNjd &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # enabling experimental podman provider&lt;br /&gt;
 # No kind clusters found.&lt;br /&gt;
 # Cloud Type: &lt;br /&gt;
     &amp;lt;strong&amp;gt; VMware vSphere &amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
 ##########################################################&lt;br /&gt;
 # Spectro Cloud Artifact Repository (SCAR) Configuration #                                                                                                             &lt;br /&gt;
 ##########################################################                                                                                                                                                                                                                                                                                &lt;br /&gt;
 # SCAR location: &lt;br /&gt;
     &amp;lt;strong&amp;gt; http://172.16.84.22:8710/manifests/latest/ &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # SCAR username: &lt;br /&gt;
     &amp;lt;strong&amp;gt; admin &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # SCAR password: &lt;br /&gt;
     &amp;lt;strong&amp;gt; ******** &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Allow Insecure Connection (Bypass x509 Verification)? [Y/n]: &lt;br /&gt;
     &amp;lt;strong&amp;gt; Yes &amp;lt;/strong&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
 ###################################&lt;br /&gt;
 # Enter Environment Configuration #&lt;br /&gt;
 ###################################&lt;br /&gt;
 # HTTPS Proxy (optional, hit enter to skip): &lt;br /&gt;
 # HTTP Proxy (optional, hit enter to skip): &lt;br /&gt;
 # Pod CIDR: 192.168.0.0/16&lt;br /&gt;
 # Service IP Range: 10.96.0.0/12&lt;br /&gt;
 #############################################&lt;br /&gt;
 # Enter Pack &amp;amp; Image Registry Configuration #&lt;br /&gt;
 #############################################                                                                                                                  &lt;br /&gt;
 # Registry Type: &lt;br /&gt;
     &amp;lt;strong&amp;gt; OCI &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Name: &lt;br /&gt;
     &amp;lt;strong&amp;gt; DERS-Harbor &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Endpoint: &lt;br /&gt;
     &amp;lt;strong&amp;gt;https://harbor.dersllc.com &amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Base Content Path (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;spectro-images&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry CA certificate Filepath (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;/usr/local/share/ca-certificates/ders-star-ca.crt&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Username (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;admin&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Password (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;*********&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Enter &#039;Y&#039; to pull images from public registries or &#039;N&#039; to specify an OCI image registry&lt;br /&gt;
 # Pull images from public registries? [Y/n]: &lt;br /&gt;
     &amp;lt;strong&amp;gt;No&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Use the same OCI Registry for packs &amp;amp; images? [Y/n]: &lt;br /&gt;
     &amp;lt;strong&amp;gt;Yes&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Registry Base Content Path (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;spectro-packs&amp;lt;/strong&amp;gt;&lt;br /&gt;
 #######################&lt;br /&gt;
 # Collecting Metadata #&lt;br /&gt;
 #######################&lt;br /&gt;
 # Kind Cluster Name: &lt;br /&gt;
     &amp;lt;strong&amp;gt; spectro-mgmt-cluster &amp;lt;/strong&amp;gt;&lt;br /&gt;
 #####################################&lt;br /&gt;
 # Enter vSphere Account Information #&lt;br /&gt;
 #####################################&lt;br /&gt;
 # vSphere Endpoint: &lt;br /&gt;
     &amp;lt;strong&amp;gt;vcenter.dersllc.com&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # vSphere Username (with domain): &lt;br /&gt;
     &amp;lt;strong&amp;gt;administrator@ders.lab&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # vSphere Password: &lt;br /&gt;
     &amp;lt;strong&amp;gt;*********&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Allow Insecure Connection (Bypass x509 Verification)? [Y/n]: &lt;br /&gt;
     &amp;lt;strong&amp;gt;Yes&amp;lt;/strong&amp;gt;&lt;br /&gt;
 ##################################################&lt;br /&gt;
 # Enter vSphere Enterprise Cluster configuration #&lt;br /&gt;
 ##################################################                                                                                                               &lt;br /&gt;
 # Datacenter: &lt;br /&gt;
     &amp;lt;strong&amp;gt;DERSLLC&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # VM Folder: &lt;br /&gt;
     &amp;lt;strong&amp;gt;spectro-vms&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Image Template Folder: &lt;br /&gt;
     &amp;lt;strong&amp;gt;spectro-templates&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Cluster for Fault Domain: &lt;br /&gt;
     &amp;lt;strong&amp;gt;Lab&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Network: &lt;br /&gt;
     &amp;lt;strong&amp;gt;DERS-87&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Resource Pool: &lt;br /&gt;
     &amp;lt;strong&amp;gt;Default (root resource pool for cluster: Lab)&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Select specific Datastore or use a VM Storage Policy: &lt;br /&gt;
     &amp;lt;strong&amp;gt;Datastore&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Datastore: &lt;br /&gt;
     &amp;lt;strong&amp;gt;DERS-HDD&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Unable to add another Fault Domain as no Clusters remain in Datacenter DERSLLC&lt;br /&gt;
 # NTP servers (comma-separated domain names or IP addresses, optional) (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;172.16.84.21&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Configure SSH public key(s)&lt;br /&gt;
     &amp;lt;strong&amp;gt;ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDngCrc1Na1xES5nnSBHxw1MMcwEwFL4TpwbSTq4BlcKb4WUGE4AOXr4W4RenB6OTyLkHOeLNc2ptILF3PZQG44SZ+uZMBLhx82DYbMq75F6WDSd7wnHA0cL90ncXGoLnwk+UnNEg59zmhYbrMEVM5OS3k0Ll/EXUb9PUsE+SdEoKDG+84OiwCQnQ+DWr9R79NHwLKflOvIMtoZuFwjObQ7xbsTO27FhL8wbcUDqygVqq+6r6adyZ1yEuqhXRkzUgQWv/rIzATaLTZp5r3kCGRe+EkB6AlapwE1O139ZGuY4m/FlIeXO1Ty0mmF88dI0CsbFUJcKKnO07nzSBhQevRr&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Specify a static IP range for assigning static IPs to cluster node(s).&lt;br /&gt;
 # The IP range must contain at least 5 IPs.	&lt;br /&gt;
 # Start IP: &lt;br /&gt;
     &amp;lt;strong&amp;gt;172.16.85.200&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # End IP: &lt;br /&gt;
     &amp;lt;strong&amp;gt;172.16.85.220&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Network Prefix: &lt;br /&gt;
     &amp;lt;strong&amp;gt;22&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Gateway IP Address: &lt;br /&gt;
     &amp;lt;strong&amp;gt;172.16.84.1&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Name servers (comma-separated IP addresses): &lt;br /&gt;
     &amp;lt;strong&amp;gt;172.16.84.10&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Name server search suffixes (Optional) (optional, hit enter to skip): &lt;br /&gt;
     &amp;lt;strong&amp;gt;dersllc.com&amp;lt;/strong&amp;gt;&lt;br /&gt;
 ###################################################################&lt;br /&gt;
 #  Enter vSphere Machine configuration for the Enterprise Cluster #&lt;br /&gt;
 ###################################################################&lt;br /&gt;
 # Select combination: &lt;br /&gt;
     &amp;lt;strong&amp;gt;S: 16 CPU, 32 GB memory, 60 GB storage, 20 GB database with 4 CPU limit and 8 GB memory limit&amp;lt;/strong&amp;gt;&lt;br /&gt;
 # Node Affinity: Enter &#039;y&#039; to schedule all Palette pods on control plane nodes? [y/N]: &lt;br /&gt;
     &amp;lt;strong&amp;gt;No&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Possible Install Help===&lt;br /&gt;
 # add-on deployment not finishing&lt;br /&gt;
 Restart the cluster-management-agent&lt;br /&gt;
===Vertex UI===&lt;br /&gt;
 https://ders-vertex.dersllc.com/system&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
===spectro mgmt self link creation is still pending===&lt;br /&gt;
Error:&lt;br /&gt;
 spectro mgmt self link creation is still pending&lt;br /&gt;
Fix:&lt;br /&gt;
 Restart the spectrocluster Deployment&lt;br /&gt;
===Failed to apply cert renewal plan for first time push of certs===&lt;br /&gt;
Error:&lt;br /&gt;
 Failed to apply cert renewal plan for first time push of certs&lt;br /&gt;
Fix:&lt;br /&gt;
 Restart the Palette-Controller-Manager Deployment&lt;br /&gt;
===No Helm Charts Showing up in Profile creation===&lt;br /&gt;
Error:&lt;br /&gt;
 Helm results empty&lt;br /&gt;
Fix:&lt;br /&gt;
 Navigate to &amp;quot;Tenant Settings&amp;quot; -&amp;gt; Platform -&amp;gt; Platform Settings&lt;br /&gt;
 Enable &amp;quot;Allow non-FIPS packs&amp;quot;&lt;br /&gt;
 Enable &amp;quot;Allow non-FIPS features&amp;quot;&lt;br /&gt;
=== ORAS Pull and Push ===&lt;br /&gt;
 oras login harbor.dersllc.com --username &#039;admin&#039; --password &#039;&amp;lt;password&amp;gt;&#039;&lt;br /&gt;
 oras pull harbor.dersllc.com/vertex-fips/rc-fips/4.5/spectro-packs/archive/ubuntu-maas:20.04&lt;br /&gt;
 oras push harbor.dersllc.com/spectro-packs/spectro-packs/archive/ubuntu-maas:20.04 ubuntu-maas-20.04.tar.gz --insecure --annotation org.opencontainers.image.created=&amp;quot;2023-07-24T11:57:56Z&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
* ??Download Certs&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/STAR_dersllc_com.crt &amp;gt; /opt/spectro/ssl/server.crt&lt;br /&gt;
 curl --insecure https://ders-gitlab.dersllc.com/ders/ders-proxy/-/raw/master/dersllc-new.key &amp;gt; /opt/spectro/ssl/server.key&lt;/div&gt;</summary>
		<author><name>Ders</name></author>
	</entry>
</feed>