Repository: spectrocloud/librarium
Pull request #6232: docs: add user data tutorial
Author: login: caroldelwing
Created: 2025-03-26T20:18:59Z | Merged: 2025-04-07T17:22:43Z

## Describe the Change

<!-- Add a description of what the pull request is changing, adding, and any other relevant context.  -->

This PR adds the User Data tutorial to Edge Getting Started.

## Changed Pages

<!-- Add a link to the preview URL generated by Netlify. Include direct links to the pages affected by the PR. -->

💻 [Prepare User Data](https://deploy-preview-6232--docs-spectrocloud.netlify.app/tutorials/getting-started/introduction-edge/prepare-user-data/)

## Jira Tickets

<!-- Add a link to the JIRA tickets (if applicable) -->

🎫 [DOC-1628](https://spectrocloud.atlassian.net/browse/DOC-1628)

## Backports

<!-- Add the relevant backport labels to reflect which versions of the docs your changes will affect. -->

Can this PR be backported?

- [ ] Yes. _Remember to add the relevant backport labels to your PR._
- [x] No. _Please leave a short comment below about why this PR cannot be backported._Getting Started PR


[DOC-1628]: https://spectrocloud.atlassian.net/browse/DOC-1628?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ


Diff:
diff --git a/docs/docs-content/tutorials/getting-started/introduction-edge/introduction-edge.md b/docs/docs-content/tutorials/getting-started/introduction-edge/introduction-edge.md
index 755b52d0ec3..0bf8ab0b66f 100644
--- a/docs/docs-content/tutorials/getting-started/introduction-edge/introduction-edge.md
+++ b/docs/docs-content/tutorials/getting-started/introduction-edge/introduction-edge.md
@@ -44,7 +44,8 @@ Each Edge cluster consists of one or more nodes, with each node representing an
 configuration begins with the [EdgeForge](../../../clusters/edge/edgeforge-workflow/edgeforge-workflow.md) process,
 which builds two key artifacts:
 
-1. **Installer ISO**: A bootable ISO image that contains the required dependencies, including the Palette Agent.
+1. **Installer ISO**: A bootable ISO image that includes the required dependencies, such as the Palette Agent, and
+   bootstraps the Edge installation process on the host.
 2. **Provider Images**: [Kairos](https://kairos.io/)-based customizable images that combine the OS and Kubernetes layers
    required for the cluster. These images install a secure, immutable OS during the cluster deployment and are
    referenced during the cluster profile creation.
@@ -59,8 +60,8 @@ which does not require a connection to Palette.
 
 ## Next Steps
 
-Explore the sequence of tutorials below to learn how to deploy your first Edge cluster with Palette. Each tutorial is
-designed to guide you step-by-step, building on the concepts introduced in the previous one.
+Explore the sequence of tutorials below to learn how to deploy your first connected Edge cluster with Palette. Each
+tutorial is designed to guide you step-by-step, building on the concepts introduced in the previous one.
 
 <!-- vale off -->
 
diff --git a/docs/docs-content/tutorials/getting-started/introduction-edge/prepare-user-data.md b/docs/docs-content/tutorials/getting-started/introduction-edge/prepare-user-data.md
index 3ed847a0eb1..aa4bb278ee3 100644
--- a/docs/docs-content/tutorials/getting-started/introduction-edge/prepare-user-data.md
+++ b/docs/docs-content/tutorials/getting-started/introduction-edge/prepare-user-data.md
@@ -1,6 +1,6 @@
 ---
 sidebar_label: "Prepare User Data"
-title: "Prepare User Data"
+title: "Prepare User Data for Edge Installation"
 description: "Learn how to create an user data file for your Edge deployment"
 icon: ""
 hide_table_of_contents: false
@@ -8,4 +8,228 @@ sidebar_position: 20
 tags: ["getting-started", "tutorial", "edge"]
 ---
 
-This is a placeholder.
+This tutorial is the first in the [Edge Getting Started](./introduction-edge.md) series. You will learn how to create a
+[user data](../../../clusters/edge/edgeforge-workflow/prepare-user-data.md) file, which is a configuration file that
+allows you to customize the Edge installation process on the host. The user data file is embedded into the Edge
+Installer ISO during the [EdgeForge](../../../clusters/edge/edgeforge-workflow/edgeforge-workflow.md) process. When the
+Edge host boots from the Installer ISO, it applies the user data configuration to the host.
+
+After creating the user data file, you will proceed to the next tutorial in this series, where you will learn how to
+build the required Edge artifacts. You will then install the Palette agent on your host and use it as a node to deploy
+your first Edge cluster. The roadmap below outlines the sequence of tutorials to be followed.
+
+![Edge Getting Started Roadmap](/getting-started/getting-started_introduction-edge_user-data-roadmap.webp)
+
+## Prerequisites
+
+To complete this tutorial, you will need the following prerequisites in place.
+
+- A [Palette account](https://www.spectrocloud.com/get-started) with
+  [tenant admin](../../../tenant-settings/tenant-settings.md) access.
+- The following software installed:
+  - [Docker Engine](https://docs.docker.com/engine/install/) with `sudo` privileges. Alternatively, you can install
+    [Earthly](https://earthly.dev/), in which case you will not need `sudo` privileges.
+  - [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
+
+## User Data Configuration Blocks
+
+The user data file supports multiple parameters that allow you to customize the Edge installation and consists of three
+main configuration blocks:
+
+- `stylus`: Palette agent parameters that control aspects of the Edge host's configuration, such as networking, logging,
+  services, users, and permissions. The following configuration snippet specifies the Palette endpoint, a registration
+  token, and the Palette project name that the host uses to register with Palette. It also provides tags that are
+  assigned to the device as labels.
+
+  ```shell
+  #cloud-config
+  stylus:
+    site:
+      paletteEndpoint: api.spectrocloud.com
+      edgeHostToken: aUAxxxxxxxxx0ChYCrO
+      projectUid: Default
+      tags:
+        city: london
+        building: building-1
+  ```
+
+- `install`: The `install` block allows you to configure bind mounts, disk partitions, and post-installation actions
+  such as powering off the Edge host once the installation completes, as displayed in the snippet below.
+
+  ```shell
+  install:
+    poweroff: true
+  ```
+
+- `stages`: The `stages` block uses cloud-init stages to personalize the initialization of your Edge hosts during
+  various stages of the system boot process. The following example configures a `docs` user with a password and SSH key
+  during the `initramfs` stage.
+
+  ```shell
+  stages:
+    initramfs:
+      - users:
+          docs:
+            passwd: ******
+            groups:
+            - sudo
+            ssh_authorized_keys:
+            - ssh-rsa AAAAB3N…
+  ```
+
+  :::tip
+
+  Visit the [Edge Installer Configuration Reference](../../../clusters/edge/edge-configuration/installer-reference.md)
+  page for a complete list of configuration parameters, the
+  [Prepare User Data](../../../clusters/edge/edgeforge-workflow/prepare-user-data.md) guide for more examples of user
+  data configurations, and the [Cloud Init Stages](../../../clusters/edge/edge-configuration/cloud-init.md) page for the
+  supported cloud init stages.
+
+  :::
+
+## Create Palette Registration Token
+
+Registration tokens allow Edge hosts to register with Palette and are provided through the user data file.
+
+To create a registration token, log in to [Palette](https://console.spectrocloud.com/) as a tenant admin and switch to
+the **Tenant Admin** scope.
+
+Next, navigate to the left main menu and select **Tenant Settings** > **Registration Tokens**.
+
+Click **Add New Registration Token**, then provide a token name, default project, and expiration date. Confirm your
+changes and copy the generated registration token.
+
+## Check Out Starter Code
+
+Open up a terminal window and clone the `CanvOS` repository. This repository contains the files and scripts required to
+build Edge artifacts.
+
+```shell
+git clone https://github.com/spectrocloud/CanvOS.git
+```
+
+Navigate to the `CanvOS` directory.
+
+```shell
+cd CanvOS
+```
+
+Check the available git tags.
+
+```shell
+git tag
+```
+
+Check out the newest available tag. This tutorial uses the tag `v4.6.5` as an example.
+
+```shell
+git checkout v4.6.5
+```
+
+## Create User Data
+
+In this section, you will create a user data file that contains your Palette registration token, Palette endpoint, and
+Edge host login credentials. The login credentials allow you to SSH into your Edge host, while the Palette registration
+token and endpoint enable the host to register with your Palette instance. The user data file also includes an `install`
+parameter block to power off the host once the Edge installation completes.
+
+:::tip
+
+The `CanvOS` repository provides a
+[user data template](https://github.com/spectrocloud/CanvOS/blob/main/user-data.template) to help you create your user
+data files.
+
+:::
+
+Export your Palette registration token and Edge host login credentials.
+
+```bash
+export TOKEN=<palette-registration-token>
+export USER=<host-user-name>
+export PASSWORD=<user-name-password>
+```
+
+Next, issue the command below to create the `user-data` file using the exported token and user information.
+
+```bash
+cat << EOF > user-data
+#cloud-config
+stylus:
+  site:
+    edgeHostToken: $TOKEN
+    paletteEndpoint: api.spectrocloud.com
+
+stages:
+  initramfs:
+    - users:
+        $USER:
+          passwd: $PASSWORD
+
+install:
+  poweroff: true
+EOF
+```
+
+:::info
+
+The #cloud-config header is required by the cloud-init standard.
+
+:::
+
+Confirm that the file was created correctly.
+
+```bash
+cat user-data
+```
+
+The output should show your user data file, with the value of your Palette registration token assigned to the
+`edgeHostToken` parameter, as well as the user and password to be created. This tutorial uses `kairos` as an example for
+both the username and password.
+
+```text hideClipboard
+#cloud-config
+stylus:
+  site:
+    edgeHostToken: ****************
+    paletteEndpoint: api.spectrocloud.com
+
+stages:
+  initramfs:
+    - users:
+        kairos:
+          passwd: kairos
+
+install:
+  poweroff: true
+```
+
+## Validate
+
+From the `CanvOS` directory that contains your user data file, issue the following command to validate the configuration
+file. The validation also occurs automatically when you build the
+[Edge Installer ISO](../../../clusters/edge/edgeforge-workflow/edgeforge-workflow.md), ensuring the file follows the
+expected schema.
+
+```shell
+sudo ./earthly.sh +validate-user-data
+```
+
+The output should contain a success message similar to the one displayed below, which means that the user data file is
+valid.
+
+```text hideClipboard
++validate-user-data | time="2025-03-14T15:23:55Z" level=info msg="Validation successful!"
+```
+
+:::warning
+
+The validation only checks that the user data follows the expected schema and does not catch issues with the data
+itself. For example, an expired registration token will not be flagged by the validation process.
+
+:::
+
+## Next Steps
+
+In this tutorial, you created a user data file that allows you to provide custom configuration to the Edge Installer
+ISO. We recommend that you continue to the [Build Edge Artifacts] tutorial to learn how to use this file during the Edge
+Installer ISO build process.
diff --git a/static/assets/docs/images/getting-started/getting-started_introduction-edge_user-data-roadmap.webp b/static/assets/docs/images/getting-started/getting-started_introduction-edge_user-data-roadmap.webp
new file mode 100644
index 00000000000..d637642f7fd
Binary files /dev/null and b/static/assets/docs/images/getting-started/getting-started_introduction-edge_user-data-roadmap.webp differ


Reviews:
user: login: addetz
body: Left some comments around perhaps bringing more of the prereqs into the tutorial, but happy to approve.
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-01T12:56:30Z
user: login: caroldelwing
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-06T14:37:11Z
user: login: caroldelwing
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-06T15:00:47Z
user: login: caroldelwing
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-06T21:58:12Z

Review comments:
diff_hunk: @@ -8,4 +8,174 @@ sidebar_position: 20
 tags: ["getting-started", "tutorial", "edge"]
 ---
 
-This is a placeholder.
+This tutorial is the first in the [Edge Getting Started](./introduction-edge.md) series. You will learn how to create a
+[user data](../../../clusters/edge/edgeforge-workflow/prepare-user-data.md) file, which is a configuration file that
+allows you to customize the Edge installation process on the host. The user data file is embedded into the Edge
+Installer ISO during the [EdgeForge](../../../clusters/edge/edgeforge-workflow/edgeforge-workflow.md) process. When the
+Edge host boots from the Installer ISO, it applies the user data configuration to the host.
+
+The user data file consists of three main parameters:
+
+- `stylus`: Palette agent parameters that control aspects of the Edge host's configuration, such as networking, logging,
+  services, users, and permissions. For a complete list of parameters, refer to the
+  [Edge Installer Configuration Reference](../../../clusters/edge/edge-configuration/installer-reference.md) page.
+- `install`: The `install` block allows you to configure bind mounts, disk partitions, and post-installation actions
+  like powering off the Edge host once the installation completes. Check out the
+  [Install Parameters](../../../clusters/edge/edge-configuration/installer-reference.md#install-parameters) section for
+  more information.
+- `stages`: The `stages` block uses cloud-init stages to personalize the initialization of your Edge hosts during
+  various stages of the system boot process. Refer to the
+  [Cloud Init Stages](../../../clusters/edge/edge-configuration/cloud-init.md) page for a complete list of supported
+  stages.
path: docs/docs-content/tutorials/getting-started/introduction-edge/prepare-user-data.md
user: login: addetz
body: This kind of goes against the "self-contained" spirit of getting started. Could we have an extra heading with something like common configurations and then we can link to the entire list afterwards?
created_at: 2025-04-01T12:48:34Z
author_association: CONTRIBUTOR
diff_hunk: @@ -8,4 +8,174 @@ sidebar_position: 20
 tags: ["getting-started", "tutorial", "edge"]
 ---
 
-This is a placeholder.
+This tutorial is the first in the [Edge Getting Started](./introduction-edge.md) series. You will learn how to create a
+[user data](../../../clusters/edge/edgeforge-workflow/prepare-user-data.md) file, which is a configuration file that
+allows you to customize the Edge installation process on the host. The user data file is embedded into the Edge
+Installer ISO during the [EdgeForge](../../../clusters/edge/edgeforge-workflow/edgeforge-workflow.md) process. When the
+Edge host boots from the Installer ISO, it applies the user data configuration to the host.
+
+The user data file consists of three main parameters:
+
+- `stylus`: Palette agent parameters that control aspects of the Edge host's configuration, such as networking, logging,
+  services, users, and permissions. For a complete list of parameters, refer to the
+  [Edge Installer Configuration Reference](../../../clusters/edge/edge-configuration/installer-reference.md) page.
+- `install`: The `install` block allows you to configure bind mounts, disk partitions, and post-installation actions
+  like powering off the Edge host once the installation completes. Check out the
+  [Install Parameters](../../../clusters/edge/edge-configuration/installer-reference.md#install-parameters) section for
+  more information.
+- `stages`: The `stages` block uses cloud-init stages to personalize the initialization of your Edge hosts during
+  various stages of the system boot process. Refer to the
+  [Cloud Init Stages](../../../clusters/edge/edge-configuration/cloud-init.md) page for a complete list of supported
+  stages.
+
+After creating the user data file, you will proceed to the next tutorial in this series, where you will learn how to
+build the required Edge artifacts. You will then install the Palette agent on your host and use it as a node to deploy
+your first Edge cluster. The roadmap below outlines the sequence of tutorials to be followed.
+
+![Edge Getting Started Roadmap](/getting-started/getting-started_introduction-edge_user-data-roadmap.webp)
path: docs/docs-content/tutorials/getting-started/introduction-edge/prepare-user-data.md
user: login: addetz
body: LOOOOVEEE the image! I think it's super cool, but yea send it to Nicole for cleanup and we can replace it later too.
created_at: 2025-04-01T12:50:19Z
author_association: CONTRIBUTOR
diff_hunk: @@ -8,4 +8,174 @@ sidebar_position: 20
 tags: ["getting-started", "tutorial", "edge"]
 ---
 
-This is a placeholder.
+This tutorial is the first in the [Edge Getting Started](./introduction-edge.md) series. You will learn how to create a
+[user data](../../../clusters/edge/edgeforge-workflow/prepare-user-data.md) file, which is a configuration file that
+allows you to customize the Edge installation process on the host. The user data file is embedded into the Edge
+Installer ISO during the [EdgeForge](../../../clusters/edge/edgeforge-workflow/edgeforge-workflow.md) process. When the
+Edge host boots from the Installer ISO, it applies the user data configuration to the host.
+
+The user data file consists of three main parameters:
+
+- `stylus`: Palette agent parameters that control aspects of the Edge host's configuration, such as networking, logging,
+  services, users, and permissions. For a complete list of parameters, refer to the
+  [Edge Installer Configuration Reference](../../../clusters/edge/edge-configuration/installer-reference.md) page.
+- `install`: The `install` block allows you to configure bind mounts, disk partitions, and post-installation actions
+  like powering off the Edge host once the installation completes. Check out the
+  [Install Parameters](../../../clusters/edge/edge-configuration/installer-reference.md#install-parameters) section for
+  more information.
+- `stages`: The `stages` block uses cloud-init stages to personalize the initialization of your Edge hosts during
+  various stages of the system boot process. Refer to the
+  [Cloud Init Stages](../../../clusters/edge/edge-configuration/cloud-init.md) page for a complete list of supported
+  stages.
+
+After creating the user data file, you will proceed to the next tutorial in this series, where you will learn how to
+build the required Edge artifacts. You will then install the Palette agent on your host and use it as a node to deploy
+your first Edge cluster. The roadmap below outlines the sequence of tutorials to be followed.
+
+![Edge Getting Started Roadmap](/getting-started/getting-started_introduction-edge_user-data-roadmap.webp)
+
+## Prerequisites
+
+To complete this tutorial, you will need the following prerequisites in place.
+
+- A [Palette account](https://www.spectrocloud.com/get-started) with
+  [tenant admin](../../../tenant-settings/tenant-settings.md) access.
+- A Palette registration token. Refer to the
+  [Create a Registration Token](../../../clusters/edge/site-deployment/site-installation/create-registration-token.md)
path: docs/docs-content/tutorials/getting-started/introduction-edge/prepare-user-data.md
user: login: addetz
body: Should we cover registration token creation here, as completely new users are unlikely to already have a token at this point?
created_at: 2025-04-01T12:51:47Z
author_association: CONTRIBUTOR
diff_hunk: @@ -8,4 +8,174 @@ sidebar_position: 20
 tags: ["getting-started", "tutorial", "edge"]
 ---
 
-This is a placeholder.
+This tutorial is the first in the [Edge Getting Started](./introduction-edge.md) series. You will learn how to create a
+[user data](../../../clusters/edge/edgeforge-workflow/prepare-user-data.md) file, which is a configuration file that
+allows you to customize the Edge installation process on the host. The user data file is embedded into the Edge
+Installer ISO during the [EdgeForge](../../../clusters/edge/edgeforge-workflow/edgeforge-workflow.md) process. When the
+Edge host boots from the Installer ISO, it applies the user data configuration to the host.
+
+The user data file consists of three main parameters:
+
+- `stylus`: Palette agent parameters that control aspects of the Edge host's configuration, such as networking, logging,
+  services, users, and permissions. For a complete list of parameters, refer to the
+  [Edge Installer Configuration Reference](../../../clusters/edge/edge-configuration/installer-reference.md) page.
+- `install`: The `install` block allows you to configure bind mounts, disk partitions, and post-installation actions
+  like powering off the Edge host once the installation completes. Check out the
+  [Install Parameters](../../../clusters/edge/edge-configuration/installer-reference.md#install-parameters) section for
+  more information.
+- `stages`: The `stages` block uses cloud-init stages to personalize the initialization of your Edge hosts during
+  various stages of the system boot process. Refer to the
+  [Cloud Init Stages](../../../clusters/edge/edge-configuration/cloud-init.md) page for a complete list of supported
+  stages.
+
+After creating the user data file, you will proceed to the next tutorial in this series, where you will learn how to
+build the required Edge artifacts. You will then install the Palette agent on your host and use it as a node to deploy
+your first Edge cluster. The roadmap below outlines the sequence of tutorials to be followed.
+
+![Edge Getting Started Roadmap](/getting-started/getting-started_introduction-edge_user-data-roadmap.webp)
+
+## Prerequisites
+
+To complete this tutorial, you will need the following prerequisites in place.
+
+- A [Palette account](https://www.spectrocloud.com/get-started) with
+  [tenant admin](../../../tenant-settings/tenant-settings.md) access.
+- A Palette registration token. Refer to the
+  [Create a Registration Token](../../../clusters/edge/site-deployment/site-installation/create-registration-token.md)
+  guide for instructions on how to create a token.
+- The following software installed:
+  - [Docker Engine](https://docs.docker.com/engine/install/) with `sudo` privileges. Alternatively, you can install
+    [Earthly](https://earthly.dev/), in which case you will not need `sudo` privileges.
+  - [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
+
+## Check Out Starter Code
+
+Open up a terminal window and clone the `CanvOS` repository. This repository contains the files and scripts required to
+build Edge artifacts.
+
+```shell
+git clone https://github.com/spectrocloud/CanvOS.git
+```
+
+Navigate to the `CanvOS` directory.
+
+```shell
+cd CanvOS
+```
+
+Check the available git tags.
+
+```shell
+git tag
+```
+
+Check out the newest available tag. This tutorial uses the tag `v4.6.5` as an example.
+
+```shell
+git checkout v4.6.5
+```
+
+## Create User Data
+
+In this section, you will create a user data file that contains your Palette registration token, Palette endpoint, and
+Edge host login credentials. The login credentials allow you to SSH into your Edge host, while the Palette registration
+token and endpoint enable the host to register with your Palette instance. The user data file also includes an `install`
+parameter block to power off the host once the Edge installation completes.
+
+:::tip
+
+The `CanvOS` repository provides a
+[user data template](https://github.com/spectrocloud/CanvOS/blob/main/user-data.template) to help you create your user
+data files.
+
+:::
+
+Start by exporting your Palette registration token.
+
+```bash
+export TOKEN=<palette-registration-token>
+```
+
+Next, issue the command below to create the `user-data` file using the exported token.
+
+```bash
+cat << EOF > user-data
+#cloud-config
+stylus:
+  site:
+    edgeHostToken: $TOKEN
+    paletteEndpoint: api.spectrocloud.com
+
+stages:
+  initramfs:
+    - users:
+        kairos:
+          passwd: kairos
path: docs/docs-content/tutorials/getting-started/introduction-edge/prepare-user-data.md
user: login: addetz
body: Should this be parameterised too?
created_at: 2025-04-01T12:54:29Z
author_association: CONTRIBUTOR
diff_hunk: @@ -8,4 +8,174 @@ sidebar_position: 20
 tags: ["getting-started", "tutorial", "edge"]
 ---
 
-This is a placeholder.
+This tutorial is the first in the [Edge Getting Started](./introduction-edge.md) series. You will learn how to create a
+[user data](../../../clusters/edge/edgeforge-workflow/prepare-user-data.md) file, which is a configuration file that
+allows you to customize the Edge installation process on the host. The user data file is embedded into the Edge
+Installer ISO during the [EdgeForge](../../../clusters/edge/edgeforge-workflow/edgeforge-workflow.md) process. When the
+Edge host boots from the Installer ISO, it applies the user data configuration to the host.
+
+The user data file consists of three main parameters:
+
+- `stylus`: Palette agent parameters that control aspects of the Edge host's configuration, such as networking, logging,
+  services, users, and permissions. For a complete list of parameters, refer to the
+  [Edge Installer Configuration Reference](../../../clusters/edge/edge-configuration/installer-reference.md) page.
+- `install`: The `install` block allows you to configure bind mounts, disk partitions, and post-installation actions
+  like powering off the Edge host once the installation completes. Check out the
+  [Install Parameters](../../../clusters/edge/edge-configuration/installer-reference.md#install-parameters) section for
+  more information.
+- `stages`: The `stages` block uses cloud-init stages to personalize the initialization of your Edge hosts during
+  various stages of the system boot process. Refer to the
+  [Cloud Init Stages](../../../clusters/edge/edge-configuration/cloud-init.md) page for a complete list of supported
+  stages.
+
+After creating the user data file, you will proceed to the next tutorial in this series, where you will learn how to
+build the required Edge artifacts. You will then install the Palette agent on your host and use it as a node to deploy
+your first Edge cluster. The roadmap below outlines the sequence of tutorials to be followed.
+
+![Edge Getting Started Roadmap](/getting-started/getting-started_introduction-edge_user-data-roadmap.webp)
+
+## Prerequisites
+
+To complete this tutorial, you will need the following prerequisites in place.
+
+- A [Palette account](https://www.spectrocloud.com/get-started) with
+  [tenant admin](../../../tenant-settings/tenant-settings.md) access.
+- A Palette registration token. Refer to the
+  [Create a Registration Token](../../../clusters/edge/site-deployment/site-installation/create-registration-token.md)
+  guide for instructions on how to create a token.
+- The following software installed:
+  - [Docker Engine](https://docs.docker.com/engine/install/) with `sudo` privileges. Alternatively, you can install
+    [Earthly](https://earthly.dev/), in which case you will not need `sudo` privileges.
+  - [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
+
+## Check Out Starter Code
+
+Open up a terminal window and clone the `CanvOS` repository. This repository contains the files and scripts required to
+build Edge artifacts.
+
+```shell
+git clone https://github.com/spectrocloud/CanvOS.git
+```
+
+Navigate to the `CanvOS` directory.
+
+```shell
+cd CanvOS
+```
+
+Check the available git tags.
+
+```shell
+git tag
+```
+
+Check out the newest available tag. This tutorial uses the tag `v4.6.5` as an example.
+
+```shell
+git checkout v4.6.5
+```
+
+## Create User Data
+
+In this section, you will create a user data file that contains your Palette registration token, Palette endpoint, and
+Edge host login credentials. The login credentials allow you to SSH into your Edge host, while the Palette registration
+token and endpoint enable the host to register with your Palette instance. The user data file also includes an `install`
+parameter block to power off the host once the Edge installation completes.
+
+:::tip
+
+The `CanvOS` repository provides a
+[user data template](https://github.com/spectrocloud/CanvOS/blob/main/user-data.template) to help you create your user
+data files.
+
+:::
+
+Start by exporting your Palette registration token.
+
+```bash
+export TOKEN=<palette-registration-token>
+```
+
+Next, issue the command below to create the `user-data` file using the exported token.
+
+```bash
+cat << EOF > user-data
+#cloud-config
+stylus:
+  site:
+    edgeHostToken: $TOKEN
+    paletteEndpoint: api.spectrocloud.com
+
+stages:
+  initramfs:
+    - users:
+        kairos:
+          passwd: kairos
path: docs/docs-content/tutorials/getting-started/introduction-edge/prepare-user-data.md
user: login: caroldelwing
body: :white_check_mark:
created_at: 2025-04-06T14:37:11Z
author_association: CONTRIBUTOR
diff_hunk: @@ -8,4 +8,174 @@ sidebar_position: 20
 tags: ["getting-started", "tutorial", "edge"]
 ---
 
-This is a placeholder.
+This tutorial is the first in the [Edge Getting Started](./introduction-edge.md) series. You will learn how to create a
+[user data](../../../clusters/edge/edgeforge-workflow/prepare-user-data.md) file, which is a configuration file that
+allows you to customize the Edge installation process on the host. The user data file is embedded into the Edge
+Installer ISO during the [EdgeForge](../../../clusters/edge/edgeforge-workflow/edgeforge-workflow.md) process. When the
+Edge host boots from the Installer ISO, it applies the user data configuration to the host.
+
+The user data file consists of three main parameters:
+
+- `stylus`: Palette agent parameters that control aspects of the Edge host's configuration, such as networking, logging,
+  services, users, and permissions. For a complete list of parameters, refer to the
+  [Edge Installer Configuration Reference](../../../clusters/edge/edge-configuration/installer-reference.md) page.
+- `install`: The `install` block allows you to configure bind mounts, disk partitions, and post-installation actions
+  like powering off the Edge host once the installation completes. Check out the
+  [Install Parameters](../../../clusters/edge/edge-configuration/installer-reference.md#install-parameters) section for
+  more information.
+- `stages`: The `stages` block uses cloud-init stages to personalize the initialization of your Edge hosts during
+  various stages of the system boot process. Refer to the
+  [Cloud Init Stages](../../../clusters/edge/edge-configuration/cloud-init.md) page for a complete list of supported
+  stages.
+
+After creating the user data file, you will proceed to the next tutorial in this series, where you will learn how to
+build the required Edge artifacts. You will then install the Palette agent on your host and use it as a node to deploy
+your first Edge cluster. The roadmap below outlines the sequence of tutorials to be followed.
+
+![Edge Getting Started Roadmap](/getting-started/getting-started_introduction-edge_user-data-roadmap.webp)
+
+## Prerequisites
+
+To complete this tutorial, you will need the following prerequisites in place.
+
+- A [Palette account](https://www.spectrocloud.com/get-started) with
+  [tenant admin](../../../tenant-settings/tenant-settings.md) access.
+- A Palette registration token. Refer to the
+  [Create a Registration Token](../../../clusters/edge/site-deployment/site-installation/create-registration-token.md)
path: docs/docs-content/tutorials/getting-started/introduction-edge/prepare-user-data.md
user: login: caroldelwing
body: :white_check_mark:
created_at: 2025-04-06T15:00:47Z
author_association: CONTRIBUTOR
diff_hunk: @@ -8,4 +8,174 @@ sidebar_position: 20
 tags: ["getting-started", "tutorial", "edge"]
 ---
 
-This is a placeholder.
+This tutorial is the first in the [Edge Getting Started](./introduction-edge.md) series. You will learn how to create a
+[user data](../../../clusters/edge/edgeforge-workflow/prepare-user-data.md) file, which is a configuration file that
+allows you to customize the Edge installation process on the host. The user data file is embedded into the Edge
+Installer ISO during the [EdgeForge](../../../clusters/edge/edgeforge-workflow/edgeforge-workflow.md) process. When the
+Edge host boots from the Installer ISO, it applies the user data configuration to the host.
+
+The user data file consists of three main parameters:
+
+- `stylus`: Palette agent parameters that control aspects of the Edge host's configuration, such as networking, logging,
+  services, users, and permissions. For a complete list of parameters, refer to the
+  [Edge Installer Configuration Reference](../../../clusters/edge/edge-configuration/installer-reference.md) page.
+- `install`: The `install` block allows you to configure bind mounts, disk partitions, and post-installation actions
+  like powering off the Edge host once the installation completes. Check out the
+  [Install Parameters](../../../clusters/edge/edge-configuration/installer-reference.md#install-parameters) section for
+  more information.
+- `stages`: The `stages` block uses cloud-init stages to personalize the initialization of your Edge hosts during
+  various stages of the system boot process. Refer to the
+  [Cloud Init Stages](../../../clusters/edge/edge-configuration/cloud-init.md) page for a complete list of supported
+  stages.
path: docs/docs-content/tutorials/getting-started/introduction-edge/prepare-user-data.md
user: login: caroldelwing
body: :white_check_mark:
created_at: 2025-04-06T21:58:12Z
author_association: CONTRIBUTOR

PR comments:
user: login: netlify[bot]
created_at: 2025-03-26T20:19:24Z
body: ### <span aria-hidden="true">✅</span> Deploy Preview for *docs-spectrocloud* ready!


|  Name | Link |
|:-:|------------------------|
|<span aria-hidden="true">🔨</span> Latest commit | 8fb9ee3b42c32d09caab15fbe96c112289073be1 |
|<span aria-hidden="true">🔍</span> Latest deploy log | https://app.netlify.com/sites/docs-spectrocloud/deploys/67f4058be55567000842799d |
|<span aria-hidden="true">😎</span> Deploy Preview | [https://deploy-preview-6232--docs-spectrocloud.netlify.app](https://deploy-preview-6232--docs-spectrocloud.netlify.app) |
|<span aria-hidden="true">📱</span> Preview on mobile | <details><summary> Toggle QR Code... </summary><br /><br />![QR Code](https://app.netlify.com/qr-code/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1cmwiOiJodHRwczovL2RlcGxveS1wcmV2aWV3LTYyMzItLWRvY3Mtc3BlY3Ryb2Nsb3VkLm5ldGxpZnkuYXBwIn0.sipQF3m6pjiXA23-nmmtsrbY806lK7UFIM4yoIskOvE)<br /><br />_Use your smartphone camera to open QR code link._</details> |
---
<!-- [docs-spectrocloud Preview](https://deploy-preview-6232--docs-spectrocloud.netlify.app) -->
_To edit notification comments on pull requests, go to your [Netlify site configuration](https://app.netlify.com/sites/docs-spectrocloud/configuration/notifications#deploy-webhooks)._
author_association: NONE
user: login: vault-token-factory-spectrocloud[bot]
created_at: 2025-04-06T22:05:16Z
body: Images automagically compressed by [Calibre](https://calibreapp.com)'s [image-actions](https://github.com/marketplace/actions/image-actions) ✨

Compression reduced images by <strong>5.5%</strong>, saving <strong>4.19 KB</strong>.

| Filename | Before | After | Improvement | Visual comparison |
| -------- | ------ | ----- | ----------- | ----------------- |
| <code>static/assets/docs/images/getting-started/getting-started_introduction-edge_user-data-roadmap.webp</code> | 76.07 KB | 71.88 KB | -5.5% | [View diff](/spectrocloud/librarium/pull/6232/commits/c95c2055ac93960bf2f4c83ea69bdc6f7d6323c3?short_path=4b81217#diff-4b81217a30abfc09a4ee61f4ae8c3e1f) |


812 images did not require optimisation.

author_association: CONTRIBUTOR
user: login: vault-token-factory-spectrocloud[bot]
created_at: 2025-04-06T22:11:28Z
body: Images automagically compressed by [Calibre](https://calibreapp.com)'s [image-actions](https://github.com/marketplace/actions/image-actions) ✨

Compression reduced images by <strong>1.1%</strong>, saving <strong>794 bytes</strong>.

| Filename | Before | After | Improvement | Visual comparison |
| -------- | ------ | ----- | ----------- | ----------------- |
| <code>static/assets/docs/images/getting-started/getting-started_introduction-edge_user-data-roadmap.webp</code> | 71.88 KB | 71.10 KB | -1.1% | [View diff](/spectrocloud/librarium/pull/6232/commits/ecc3046cfe6503a438bd529e0eb002133cbd0a1c?short_path=4b81217#diff-4b81217a30abfc09a4ee61f4ae8c3e1f) |


812 images did not require optimisation.

author_association: CONTRIBUTOR