diff --git a/README.md b/README.md
index 5b5f67017f..8fb025e962 100644
--- a/README.md
+++ b/README.md
@@ -610,7 +610,7 @@ partial_name: palette-setup
This is how you set up Palette in {props.cloud}.
-This is an .
+This is an .
```
The path of the link should be the path of the destination file from the root directory, without any back operators
diff --git a/_partials/_aws-static-credentials-setup.mdx b/_partials/_aws-static-credentials-setup.mdx
new file mode 100644
index 0000000000..492603afcd
--- /dev/null
+++ b/_partials/_aws-static-credentials-setup.mdx
@@ -0,0 +1,35 @@
+---
+partial_category: palette-setup
+partial_name: aws-static-credentials
+---
+
+1. Create an IAM Role or IAM User for Palette. Use the following resources if you need additional help.
+
+ - [IAM Role creation guide](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html).
+ - [IAM User creation guide](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html).
+
+2. In the AWS console, assign the Palette-required IAM policies to the IAM role or the IAM user that Palette will use.
+
+3. Log in to [Palette](https://console.spectrocloud.com) as tenant admin.
+
+4. From the left **Main Menu**, click on **Tenant Settings**.
+
+5. Select **Cloud Accounts**, and click **+Add AWS Account**.
+
+6. In the cloud account creation wizard provide the following information:
+
+ - **Account Name:** Custom name for the cloud account.
+
+ - **Description:** Optional description for the cloud account.
+ - **Partition:** Choose **AWS** from the **drop-down Menu**.
+
+ - **Credentials:**
+ - AWS Access key
+ - AWS Secret access key
+
+7. Click the **Validate** button to validate the credentials.
+
+8. Once the credentials are validated, the **Add IAM Policies** toggle displays. Toggle **Add IAM Policies** on.
+
+9. Use the **drop-down Menu**, which lists available IAM policies in your AWS account, to select any desired IAM
+ policies you want to assign to Palette IAM role or IAM user.
diff --git a/_partials/_azure-cloud-account-setup.mdx b/_partials/_azure-cloud-account-setup.mdx
new file mode 100644
index 0000000000..1afed5e292
--- /dev/null
+++ b/_partials/_azure-cloud-account-setup.mdx
@@ -0,0 +1,32 @@
+---
+partial_category: palette-setup
+partial_name: azure-cloud-account
+---
+
+Use the following steps to add an Azure or Azure Government account in Palette or Palette VerteX.
+
+1. Log in to [Palette](https://console.spectrocloud.com) or Palette VerteX as a tenant admin.
+
+2. From the left **Main Menu**, select **Tenant Settings**.
+
+3. Next, select **Cloud Accounts** in the **Tenant Settings Menu**.
+
+4. Locate **Azure**, and click **+ Add Azure Account**.
+
+5. Fill out the following information, and click **Confirm** to complete the registration.
+
+| **Basic Information** | **Description** |
+| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| **Account Name** | A custom account name. |
+| **Tenant ID** | Unique tenant ID from Azure Management Portal. |
+| **Client ID** | Unique client ID from Azure Management Portal. |
+| **Client Secret** | Azure secret for authentication. Refer to Microsoft's reference guide for creating a [Client Secret](https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal#create-an-azure-active-directory-application). |
+| **Cloud** | Select **Azure Public Cloud** or **Azure US Government**. |
+| **Tenant Name** | An optional tenant name. |
+| **Disable Properties** | This option prevents Palette and VerteX from creating Azure Virtual Networks (VNets) and other network resources on your behalf for static placement deployments. If you enable this option, all users must manually specify a pre-existing VNet, subnets, and security groups when creating clusters. |
+| **Connect Private Cloud Gateway** | Select this option to connect to a Private Cloud Gateway (PCG) if you have a PCG deployed in your environment. Refer to the PCG page to learn more about a PCG. |
+
+6. After providing the required values, click the **Validate** button. If the client secret you provided is correct, a
+ _Credentials validated_ success message with a green check is displayed.
+
+7. Click **Confirm** to complete the registration.
diff --git a/_partials/_create-upload-ssh-key.mdx b/_partials/_create-upload-ssh-key.mdx
new file mode 100644
index 0000000000..95dd2a8020
--- /dev/null
+++ b/_partials/_create-upload-ssh-key.mdx
@@ -0,0 +1,66 @@
+---
+partial_category: palette-setup
+partial_name: generate-ssh-key
+---
+
+Follow these steps to create an SSH key using the terminal and upload it to Palette:
+
+1. Open the terminal on your computer.
+
+2. Check for existing SSH keys by invoking the following command.
+
+
+
+ ```shell
+ ls -la ~/.ssh
+ ```
+
+ If you see files named **id_rsa** and **id_rsa.pub**, you already have an SSH key pair and can skip to step 8. If
+ not, proceed to step 3.
+
+3. Generate a new SSH key pair by issuing the following command.
+
+
+
+ ```shell
+ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
+ ```
+
+ Replace `your_email@example.com` with your actual email address.
+
+4. Press Enter to accept the default file location for the key pair.
+
+5. Enter a passphrase (optional) and confirm it. We recommend using a strong passphrase for added security.
+
+6. Copy the public SSH key value. Use the `cat` command to display the public key.
+
+
+
+ ```shell
+ cat ~/.ssh/id_rsa.pub
+ ```
+
+ Copy the entire key, including the `ssh-rsa` prefix and your email address at the end.
+
+7. Log in to [Palette](https://console.spectrocloud.com).
+
+8. Navigate to the left **Main Menu**, select **Project Settings**, and then the **SSH Keys** tab.
+
+9. Open the **Add New SSH Key** tab and complete the **Add Key** input form:
+
+ - **Name**: Provide a unique name for the SSH key.
+
+ - **SSH Key**: Paste the SSH public key contents from the key pair generated earlier.
+
+10. Click **Confirm** to complete the wizard.
+
+
+
+:::info
+
+You can edit or delete SSH keys later by using the **three-dot Menu** to the right of each key.
+
+:::
+
+During cluster creation, assign your SSH key to a cluster. You can use multiple keys to a project, but only one key can
+be assigned to an individual cluster.
diff --git a/_partials/_gcp-cloud-account-setup.mdx b/_partials/_gcp-cloud-account-setup.mdx
new file mode 100644
index 0000000000..1b0087caf8
--- /dev/null
+++ b/_partials/_gcp-cloud-account-setup.mdx
@@ -0,0 +1,28 @@
+---
+partial_category: palette-setup
+partial_name: gcp-cloud-account
+---
+
+1. Log in to [Palette](https://console.spectrocloud.com) as Tenant admin.
+
+2. Navigate to the left **Main Menu** and select **Tenant Settings**.
+
+3. Select **Cloud Accounts** and click on **Add GCP Account**.
+
+4. In the cloud account creation wizard, provide the following information:
+
+ - **Account Name:** Custom name for the cloud account.
+
+ - **JSON Credentials:** The JSON credentials object.
+
+
+
+ :::info
+
+ You can use the **Upload** button to upload the JSON file you downloaded from the GCP console.
+
+ :::
+
+5. Click the **Validate** button to validate the credentials.
+
+6. When the credentials are validated, click on **Confirm** to save your changes.
diff --git a/docs/docs-content/clusters/cluster-management/ssh-keys.md b/docs/docs-content/clusters/cluster-management/ssh-keys.md
index 1e62cf30fc..bf22c290be 100644
--- a/docs/docs-content/clusters/cluster-management/ssh-keys.md
+++ b/docs/docs-content/clusters/cluster-management/ssh-keys.md
@@ -25,68 +25,7 @@ you need a public SSH key registered in Palette.
## Create and Upload an SSH Key
-Follow these steps to create an SSH key using the terminal and upload it to Palette:
-
-1. Open the terminal on your computer.
-
-2. Check for existing SSH keys by invoking the following command.
-
-
-
- ```shell
- ls -la ~/.ssh
- ```
-
- If you see files named **id_rsa** and **id_rsa.pub**, you already have an SSH key pair and can skip to step 8. If
- not, proceed to step 3.
-
-3. Generate a new SSH key pair by issuing the following command.
-
-
-
- ```shell
- ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
- ```
-
- Replace `your_email@example.com` with your actual email address.
-
-4. Press Enter to accept the default file location for the key pair.
-
-5. Enter a passphrase (optional) and confirm it. We recommend using a strong passphrase for added security.
-
-6. Copy the public SSH key value. Use the `cat` command to display the public key.
-
-
-
- ```shell
- cat ~/.ssh/id_rsa.pub
- ```
-
- Copy the entire key, including the `ssh-rsa` prefix and your email address at the end.
-
-7. Log in to [Palette](https://console.spectrocloud.com).
-
-8. Navigate to the left **Main Menu**, select **Project Settings**, and then the **SSH Keys** tab.
-
-9. Open the **Add New SSH Key** tab and complete the **Add Key** input form:
-
- - **Name**: Provide a unique name for the SSH key.
-
- - **SSH Key**: Paste the SSH public key contents from the key pair generated earlier.
-
-10. Click **Confirm** to complete the wizard.
-
-
-
-:::info
-
-You can edit or delete SSH keys later by using the **three-dot Menu** to the right of each key.
-
-:::
-
-During cluster creation, assign your SSH key to a cluster. You can use multiple keys to a project, but only one key can
-be assigned to an individual cluster.
-
+
## Validate
You can validate that the SSH public key is available in Palette by attempting to deploy a host cluster. During the host
diff --git a/docs/docs-content/clusters/public-cloud/aws/add-aws-accounts.md b/docs/docs-content/clusters/public-cloud/aws/add-aws-accounts.md
index 3295f4c048..675e16ebb1 100644
--- a/docs/docs-content/clusters/public-cloud/aws/add-aws-accounts.md
+++ b/docs/docs-content/clusters/public-cloud/aws/add-aws-accounts.md
@@ -35,36 +35,7 @@ Use the steps below to add an AWS cloud account using static access credentials.
#### Add AWS Account to Palette
-1. Create an IAM Role or IAM User for Palette. Use the following resources if you need additional help.
-
- - [IAM Role creation guide](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html).
- - [IAM User creation guide](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html).
-
-2. In the AWS console, assign the Palette-required IAM policies to the IAM role or the IAM user that Palette will use.
-
-3. Log in to [Palette](https://console.spectrocloud.com) as tenant admin.
-
-4. From the left **Main Menu**, click on **Tenant Settings**.
-
-5. Select **Cloud Accounts**, and click **+Add AWS Account**.
-
-6. In the cloud account creation wizard provide the following information:
-
- - **Account Name:** Custom name for the cloud account.
-
- - **Description:** Optional description for the cloud account.
- - **Partition:** Choose **AWS** from the **drop-down Menu**.
-
- - **Credentials:**
- - AWS Access key
- - AWS Secret access key
-
-7. Click the **Validate** button to validate the credentials.
-
-8. Once the credentials are validated, the **Add IAM Policies** toggle displays. Toggle **Add IAM Policies** on.
-
-9. Use the **drop-down Menu**, which lists available IAM policies in your AWS account, to select any desired IAM
- policies you want to assign to Palette IAM role or IAM user.
+
#### Validate
diff --git a/docs/docs-content/clusters/public-cloud/azure/azure-cloud.md b/docs/docs-content/clusters/public-cloud/azure/azure-cloud.md
index 7f071bd362..8f15d5ff74 100644
--- a/docs/docs-content/clusters/public-cloud/azure/azure-cloud.md
+++ b/docs/docs-content/clusters/public-cloud/azure/azure-cloud.md
@@ -24,33 +24,7 @@ authentication methods to register your cloud account.
## Add Azure Cloud Account
-Use the following steps to add an Azure or Azure Government account in Palette or Palette VerteX.
-
-1. Log in to [Palette](https://console.spectrocloud.com) or Palette VerteX as a tenant admin.
-
-2. From the left **Main Menu**, select **Tenant Settings**.
-
-3. Next, select **Cloud Accounts** in the **Tenant Settings Menu**.
-
-4. Locate **Azure**, and click **+ Add Azure Account**.
-
-5. Fill out the following information, and click **Confirm** to complete the registration.
-
-| **Basic Information** | **Description** |
-| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| **Account Name** | A custom account name. |
-| **Tenant ID** | Unique tenant ID from Azure Management Portal. |
-| **Client ID** | Unique client ID from Azure Management Portal. |
-| **Client Secret** | Azure secret for authentication. Refer to Microsoft's reference guide for creating a [Client Secret](https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-create-service-principal-portal#create-an-azure-active-directory-application). |
-| **Cloud** | Select **Azure Public Cloud** or **Azure US Government**. |
-| **Tenant Name** | An optional tenant name. |
-| **Disable Properties** | This option prevents Palette and VerteX from creating Azure Virtual Networks (VNets) and other network resources on your behalf for static placement deployments. If you enable this option, all users must manually specify a pre-existing VNet, subnets, and security groups when creating clusters. |
-| **Connect Private Cloud Gateway** | Select this option to connect to a Private Cloud Gateway (PCG) if you have a PCG deployed in your environment. Refer to the PCG [Architecture](../../pcg/architecture.md) page to learn more about a PCG. |
-
-6. After providing the required values, click the **Validate** button. If the client secret you provided is correct, a
- _Credentials validated_ success message with a green check is displayed.
-
-7. Click **Confirm** to complete the registration.
+
## Validate
diff --git a/docs/docs-content/clusters/public-cloud/gcp/add-gcp-accounts.md b/docs/docs-content/clusters/public-cloud/gcp/add-gcp-accounts.md
index d88e6be5be..aa5f8c59c8 100644
--- a/docs/docs-content/clusters/public-cloud/gcp/add-gcp-accounts.md
+++ b/docs/docs-content/clusters/public-cloud/gcp/add-gcp-accounts.md
@@ -44,29 +44,7 @@ account in Palette.
## Create Account
-1. Log in to [Palette](https://console.spectrocloud.com) as Tenant admin.
-
-2. Navigate to the left **Main Menu** and select **Tenant Settings**.
-
-3. Select **Cloud Accounts** and click on **Add GCP Account**.
-
-4. In the cloud account creation wizard, provide the following information:
-
- - **Account Name:** Custom name for the cloud account.
-
- - **JSON Credentials:** The JSON credentials object.
-
-
-
- :::info
-
- You can use the **Upload** button to upload the JSON file you downloaded from the GCP console.
-
- :::
-
-5. Click the **Validate** button to validate the credentials.
-
-6. When the credentials are validated, click on **Confirm** to save your changes.
+
## Validate
diff --git a/docs/docs-content/enterprise-version/system-management/ssl-certificate-management.md b/docs/docs-content/enterprise-version/system-management/ssl-certificate-management.md
index 019cac1a42..8f12ad6e32 100644
--- a/docs/docs-content/enterprise-version/system-management/ssl-certificate-management.md
+++ b/docs/docs-content/enterprise-version/system-management/ssl-certificate-management.md
@@ -12,8 +12,8 @@ keywords: ["self-hosted", "enterprise"]
Palette uses Secure Sockets Layer (SSL) certificates to secure internal and external communication with Hypertext
Transfer Protocol Secure (HTTPS). External Palette endpoints, such as the
[system console](../system-management/system-management.md#system-console),
-[Palette dashboard](../../getting-started/dashboard.md), Palette API, and gRPC endpoints, are enabled by default with
-HTTPS using an auto-generated self-signed certificate. You can replace the self-signed certificate with a custom SSL
+[Palette dashboard](../../introduction/dashboard.md), Palette API, and gRPC endpoints, are enabled by default with HTTPS
+using an auto-generated self-signed certificate. You can replace the self-signed certificate with a custom SSL
certificate to secure these endpoints.
:::info
diff --git a/docs/docs-content/getting-started/aws/_category_.json b/docs/docs-content/getting-started/aws/_category_.json
new file mode 100644
index 0000000000..e7e7c54966
--- /dev/null
+++ b/docs/docs-content/getting-started/aws/_category_.json
@@ -0,0 +1,3 @@
+{
+ "position": 40
+}
diff --git a/docs/docs-content/getting-started/aws/aws.md b/docs/docs-content/getting-started/aws/aws.md
new file mode 100644
index 0000000000..c96c2296ad
--- /dev/null
+++ b/docs/docs-content/getting-started/aws/aws.md
@@ -0,0 +1,52 @@
+---
+sidebar_label: "Deploy a Cluster to AWS"
+title: "Deploy a Cluster to Amazon Web Services (AWS)"
+description: "Spectro Cloud Getting Started with AWS"
+hide_table_of_contents: false
+sidebar_custom_props:
+ icon: ""
+tags: ["getting-started", "aws"]
+---
+
+Palette supports integration with [Amazon Web Services](https://aws.amazon.com). You can deploy and manage
+[Host Clusters](../../glossary-all.md#host-cluster) in AWS.
+
+## Get Started
+
+In this section, you learn how to create a cluster profile. Then, you deploy a cluster to AWS by using Palette. Once
+your cluster is deployed, you can update it using cluster profile updates.
+
+
diff --git a/docs/docs-content/getting-started/aws/create-cluster-profile.md b/docs/docs-content/getting-started/aws/create-cluster-profile.md
new file mode 100644
index 0000000000..13e738e829
--- /dev/null
+++ b/docs/docs-content/getting-started/aws/create-cluster-profile.md
@@ -0,0 +1,93 @@
+---
+sidebar_label: "Create a Cluster Profile"
+title: "Create a Cluster Profile"
+description: "Learn to create a full cluster profile in Palette for AWS."
+icon: ""
+hide_table_of_contents: false
+sidebar_position: 20
+tags: ["getting-started", "aws"]
+---
+
+Palette offers profile-based management for Kubernetes, enabling consistency, repeatability, and operational efficiency
+across multiple clusters. A cluster profile allows you to customize the cluster infrastructure stack, allowing you to
+choose the desired Operating System (OS), Kubernetes, Container Network Interfaces (CNI), Container Storage Interfaces
+(CSI). You can further customize the stack with add-on application layers. For more information about cluster profile
+types, refer to [Cluster Profiles](../cluster-profiles.md).
+
+In this tutorial, you create a full profile directly from the Palette dashboard. Then, you add a layer to your cluster
+profile by using a [community pack](../../integrations/community_packs.md) to deploy a web application.
+
+## Prerequisites
+
+- Follow the steps described in the [Set up Palette with AWS](./setup.md) guide to authenticate Palette for use with
+ your AWS cloud account.
+- Ensure that the [Palette Community Registry](../../registries-and-packs/registries/registries.md#default-registries)
+ is available in your Palette environment. Refer to the
+ [Add OCI Packs Registry](../../registries-and-packs/registries/oci-registry/add-oci-packs.md) guide for additional
+ guidance.
+
+## Create a Full Cluster Profile
+
+Log in to [Palette](https://console.spectrocloud.com) and navigate to the left **Main Menu**. Select **Profiles** to
+view the cluster profile page. You can view the list of available cluster profiles. To create a cluster profile, click
+on **Add Cluster Profile**.
+
+![View of the cluster Profiles page](/getting-started/getting-started_create-cluster-profile_profile_list_view.webp)
+
+Follow the wizard to create a new profile.
+
+In the **Basic Information** section, assign the name **aws-profile**, a brief profile description, select the type as
+**Full**, and assign the tag **env:aws**. You can leave the version empty if you want to. Just be aware that the version
+defaults to **1.0.0**. Click on **Next**.
+
+**Cloud Type** allows you to choose the infrastructure provider with which this cluster profile is associated. Select
+**AWS** and click on **Next**.
+
+The **Profile Layers** step is where you specify the packs that compose the profile. There are four required
+infrastructure packs and several optional add-on packs you can choose from. Every pack requires you to select the **Pack
+Type**, **Registry**, and **Pack Name**.
+
+For this tutorial, use the following packs:
+
+| Pack Name | Version | Layer |
+| -------------- | ------- | ---------------- |
+| ubuntu-aws LTS | 22.4.x | Operating System |
+| Kubernetes | 1.27.x | Kubernetes |
+| cni-calico | 3.26.x | Network |
+| csi-aws-ebs | 1.22.x | Storage |
+
+As you fill out the information for each layer, click on **Next** to proceed to the next layer.
+
+Click on **Confirm** after you have completed filling out all the core layers.
+
+![A view of the cluster profile stack](/getting-started/aws/getting-started_create-cluster-profile_clusters_parameters.webp)
+
+The review section gives an overview of the cluster profile configuration you selected. Click on **Finish
+Configuration** to create the cluster profile.
+
+## Add a Pack
+
+Navigate to the left **Main Menu** and select **Profiles**. Select the cluster profile you created earlier.
+
+Click on **Add New Pack** at the top of the page.
+
+Select the **Palette Community Registry** from the **Registry** dropdown. Then, click on the latest **Hello Universe**
+pack with version **v1.1.2**.
+
+![Screenshot of hello universe pack](/getting-started/aws/getting-started_create-cluster-profile_add-pack.webp)
+
+Once you have selected the pack, Palette will display its README, which provides you with additional guidance for usage
+and configuration options. The pack you added will deploy the
+[_hello-universe_](https://github.com/spectrocloud/hello-universe) application.
+
+![Screenshot of pack readme](/getting-started/aws/getting-started_create-cluster-profile_pack-readme.webp)
+
+Click on **Confirm & Create** to save the manifest. Click on **Save Changes** to save this new layer to the cluster
+profile.
+
+## Wrap-Up
+
+In this tutorial, you created a cluster profile, which is a template that contains the core layers required to deploy a
+host cluster using Amazon Web Services (AWS). You added a community pack to your profile to deploy a custom workload. We
+recommend that you continue to the [Deploy a Cluster](./deploy-k8s-cluster.md) tutorial to deploy this cluster profile
+to a host cluster onto AWS.
diff --git a/docs/docs-content/getting-started/terraform.md b/docs/docs-content/getting-started/aws/deploy-k8s-cluster-tf.md
similarity index 81%
rename from docs/docs-content/getting-started/terraform.md
rename to docs/docs-content/getting-started/aws/deploy-k8s-cluster-tf.md
index 62ecc5c573..d9065612c2 100644
--- a/docs/docs-content/getting-started/terraform.md
+++ b/docs/docs-content/getting-started/aws/deploy-k8s-cluster-tf.md
@@ -4,8 +4,8 @@ title: "Deploy a Cluster with Terraform"
description: "Learn to deploy a Palette host cluster with Terraform."
icon: ""
hide_table_of_contents: false
-sidebar_position: 70
-tags: ["getting-started"]
+sidebar_position: 50
+tags: ["getting-started", "aws"]
---
The [Spectro Cloud Terraform](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs) provider
@@ -23,9 +23,9 @@ notable reasons why you would want to utilize IaC are:
If want to become more familiar with Terraform, we recommend you check out the
[Terraform](https://developer.hashicorp.com/terraform/intro) learning resources from HashiCorp.
-This tutorial will teach you how to deploy a host cluster with Terraform using Amazon Web Services (AWS), Microsoft
-Azure, or Google Cloud Platform (GCP) cloud providers. You will learn about _Cluster Mode_ and _Cluster Profiles_ and
-how these components enable you to deploy customized applications to Kubernetes with minimal effort using the
+This tutorial will teach you how to deploy a host cluster with Terraform using Amazon Web Services (AWS). You will learn
+about _Cluster Mode_ and _Cluster Profiles_ and how these components enable you to deploy customized applications to
+Kubernetes with minimal effort using the
[Spectro Cloud Terraform](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs) provider.
## Prerequisites
@@ -35,18 +35,11 @@ To complete this tutorial, you will need the following items
- Basic knowledge of containers.
- [Docker Desktop](https://www.docker.com/products/docker-desktop/), [Podman](https://podman.io/docs/installation) or
another container management tool.
-- Create a Cloud account from one of the following providers.
+- A public cloud account from
+ [AWS](https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account).
- - [AWS](https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account)
- - [Azure](https://learn.microsoft.com/en-us/training/modules/create-an-azure-account)
- - [GCP](https://cloud.google.com/docs/get-started)
-
-- Register the [cloud account with Palette](https://console.spectrocloud.com/auth/signup). Use the following resource
- for additional guidance.
-
- - [Register and Manage AWS Accounts](../clusters/public-cloud/aws/add-aws-accounts.md)
- - [Register and Manage Azure Cloud Accounts](../clusters/public-cloud/azure/azure-cloud.md)
- - [Register and Manage GCP Accounts](../clusters/public-cloud/gcp/add-gcp-accounts.md)
+ - Follow the steps described in the [Set up Palette with AWS](./setup.md) guide to authenticate Palette for use with
+ your AWS cloud account.
## Set Up Local Environment
@@ -193,7 +186,7 @@ To help you get started with Terraform, the tutorial code is structured to suppo
GCP, or AWS. Before you deploy a host cluster to your target provider, take a few moments to review the following files
in the folder structure.
-- **providers.tf** - This file contains the Terraform providers that are used to support the deployment of the cluster.
+- **provider.tf** - This file contains the Terraform providers that are used to support the deployment of the cluster.
- **inputs.tf** - This file contains all the Terraform variables for the deployment logic.
@@ -201,7 +194,7 @@ in the folder structure.
- **cluster_profiles.tf** - This file contains the cluster profile definitions for each cloud provider.
-- **cluster.tf** - This file has all the required cluster configurations to deploy a host cluster to one of the cloud
+- **clusters.tf** - This file has all the required cluster configurations to deploy a host cluster to one of the cloud
providers.
- **terraform.tfvars** - Use this file to customize the deployment and target a specific cloud provider. This is the
@@ -336,10 +329,9 @@ data "spectrocloud_pack" "aws_k8s" {
Using the data resource, you avoid manually typing in the parameter values required by the cluster profile's `pack {}`
block.
-The **clusters.tf** file contains the definitions for deploying a host cluster to one of the cloud providers. To create
-a host cluster, you must use a cluster resource for the cloud provider you are targeting.
-
-In this tutorial, the following Terraform cluster resources are used.
+The **clusters.tf** file contains the definitions for deploying a host cluster to one of the public cloud providers. To
+create a host cluster, you must use a cluster resource for the cloud provider you are targeting. The following Terraform
+cluster resources are defined in this file.
| Terraform Resource | Platform |
| ------------------------------------------------------------------------------------------------------------------------------------- | -------- |
@@ -347,47 +339,43 @@ In this tutorial, the following Terraform cluster resources are used.
| [`spectrocloud_cluster_azure`](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/cluster_azure) | Azure |
| [`spectrocloud_cluster_gcp`](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/cluster_gcp) | GCP |
-Using the `spectrocloud_cluster_azure` resource in this tutorial as an example, note how the resource accepts a set of
+Using the `spectrocloud_cluster_aws` resource in this tutorial as an example, note how the resource accepts a set of
parameters. When deploying a cluster, you can change the same parameters in the Palette user interface (UI). You can
learn more about each parameter by reviewing the resource documentation page hosted in the Terraform registry.
```hcl
-resource "spectrocloud_cluster_azure" "cluster" {
- name = "azure-cluster"
- tags = concat(var.tags, ["env:azure"])
- cloud_account_id = data.spectrocloud_cloudaccount_azure.account[0].id
+resource "spectrocloud_cluster_aws" "aws-cluster" {
+ count = var.deploy-aws ? 1 : 0
+
+ name = "aws-cluster"
+ tags = concat(var.tags, ["env:aws"])
+ cloud_account_id = data.spectrocloud_cloudaccount_aws.account[0].id
cloud_config {
- subscription_id = var.azure_subscription_id
- resource_group = var.azure_resource_group
- region = var.azure-region
- ssh_key = tls_private_key.tutorial_ssh_key[0].public_key_openssh
+ region = var.aws-region
+ ssh_key_name = var.aws-key-pair-name
}
cluster_profile {
- id = spectrocloud_cluster_profile.azure-profile[0].id
+ id = spectrocloud_cluster_profile.aws-profile[0].id
}
machine_pool {
control_plane = true
control_plane_as_worker = true
- name = "control-plane-pool"
- count = var.azure_control_plane_nodes.count
- instance_type = var.azure_control_plane_nodes.instance_type
- azs = var.azure_control_plane_nodes.azs
- is_system_node_pool = var.azure_control_plane_nodes.is_system_node_pool
- disk {
- size_gb = var.azure_control_plane_nodes.disk_size_gb
- type = "Standard_LRS"
- }
+ name = "master-pool"
+ count = var.aws_master_nodes.count
+ instance_type = var.aws_master_nodes.instance_type
+ disk_size_gb = var.aws_master_nodes.disk_size_gb
+ azs = var.aws_master_nodes.availability_zones
}
machine_pool {
- name = "worker-basic"
- count = var.azure_worker_nodes.count
- instance_type = var.azure_worker_nodes.instance_type
- azs = var.azure_worker_nodes.azs
- is_system_node_pool = var.azure_worker_nodes.is_system_node_pool
+ name = "worker-pool"
+ count = var.aws_worker_nodes.count
+ instance_type = var.aws_worker_nodes.instance_type
+ disk_size_gb = var.aws_worker_nodes.disk_size_gb
+ azs = var.aws_worker_nodes.availability_zones
}
timeouts {
@@ -398,7 +386,7 @@ resource "spectrocloud_cluster_azure" "cluster" {
```
To deploy a cluster using Terraform, you must first modify the **terraform.tfvars** file. Open the **terraform.tfvars**
-file in the editor of your choice, and locate the cloud provider you will use to deploy a host cluster.
+file in the editor of your choice, and locate the AWS cloud provider.
To simplify the process, we added a toggle variable in the Terraform template, that you can use to select the deployment
environment. Each cloud provider has a section in the template that contains all the variables you must populate.
@@ -453,7 +441,7 @@ Output:
Plan: 2 to add, 0 to change, 0 to destroy.
```
-If you change the desired cloud provider's toggle variable to `true,` you will receive an output message that two new
+If you change the AWS cloud provider's toggle variable to `true,` you will receive an output message that two new
resources will be created. The two resources are your cluster profile and the host cluster.
To deploy all the resources, use the `apply` command.
@@ -463,14 +451,14 @@ terraform apply -auto-approve
```
To check out the cluster profile creation in Palette, log in to [Palette](https://console.spectrocloud.com), and from
-the left **Main Menu** click on **Profiles**. Locate the cluster profile with the name pattern
-`tf-[cloud provier]-profile`. Click on the cluster profile to review its details, such as layers, packs, and versions.
+the left **Main Menu** click on **Profiles**. Locate the cluster profile named `tf-aws-profile`. Click on the cluster
+profile to review its details, such as layers, packs, and versions.
-![A view of the cluster profile](/getting-started/aws/getting-started_deploy-k8s-cluster_profile_cluster_profile_review.webp)
+![A view of the cluster profile](/getting-started/aws/getting-started_deploy-k8s-cluster-tf_profile_review.webp)
You can also check the cluster creation process by navigating to the left **Main Menu** and selecting **Clusters**.
-![Update the cluster](/getting-started/aws/getting-started_deploy-k8s-cluster_create_cluster.webp)
+![Update the cluster](/getting-started/aws/getting-started_deploy-k8s-cluster-tf_create_cluster.webp)
Select your cluster to review its details page, which contains the status, cluster profile, event logs, and more.
@@ -478,7 +466,7 @@ The cluster deployment may take several minutes depending on the cloud provider,
cluster profile. You can learn more about the deployment progress by reviewing the event log. Click on the **Events**
tab to check the event log.
-![Update the cluster](/getting-started/getting-started_deploy-k8s-cluster_event_log.webp)
+![Update the cluster](/getting-started/aws/getting-started_deploy-k8s-cluster-tf_event_log.webp)
## Verify the Application
@@ -554,13 +542,13 @@ podman rmi --force ghcr.io/spectrocloud/tutorials:1.1.3
In this tutorial, you created a cluster profile, which is a template that contains the core layers required to deploy a
host cluster. You then deployed a host cluster onto your preferred cloud service provider using Terraform.
-We encourage you to check out the [Deploy an Application using Palette Dev Engine](../devx/apps/deploy-app.md) tutorial
-to learn more about Palette. Palette Dev Engine can help you deploy applications more quickly through the usage of
-[virtual clusters](../glossary-all.md#palette-virtual-cluster). Feel free to check out the reference links below to
-learn more about Palette.
+We encourage you to check out the [Deploy an Application using Palette Dev Engine](../../devx/apps/deploy-app.md)
+tutorial to learn more about Palette. Palette Dev Engine can help you deploy applications more quickly through the usage
+of [virtual clusters](../../glossary-all.md#palette-virtual-cluster). Feel free to check out the reference links below
+to learn more about Palette.
-- [Palette Modes](../introduction/palette-modes.md)
+- [Palette Modes](../../introduction/palette-modes.md)
-- [Palette Clusters](../clusters/clusters.md)
+- [Palette Clusters](../../clusters/clusters.md)
- [Hello Universe GitHub repository](https://github.com/spectrocloud/hello-universe)
diff --git a/docs/docs-content/getting-started/aws/deploy-k8s-cluster.md b/docs/docs-content/getting-started/aws/deploy-k8s-cluster.md
new file mode 100644
index 0000000000..7ccd5bb10c
--- /dev/null
+++ b/docs/docs-content/getting-started/aws/deploy-k8s-cluster.md
@@ -0,0 +1,175 @@
+---
+sidebar_label: "Deploy a Cluster"
+title: "Deploy a Cluster"
+description: "Learn to deploy a Palette host cluster."
+icon: ""
+hide_table_of_contents: false
+sidebar_position: 30
+tags: ["getting-started", "aws"]
+---
+
+This tutorial will teach you how to deploy a host cluster with Palette using Amazon Web Services (AWS). You will learn
+about _Cluster Mode_ and _Cluster Profiles_ and how these components enable you to deploy customized applications to
+Kubernetes with minimal effort.
+
+As you navigate the tutorial, refer to this diagram to help you understand how Palette uses a cluster profile as a
+blueprint for the host cluster you deploy. Palette clusters have the same node pools you may be familiar with: _control
+plane nodes_ and _worker nodes_ where you will deploy applications. The result is a host cluster that Palette manages.
+
+![A view of Palette managing the Kubernetes lifecycle](/getting-started/getting-started_deploy-k8s-cluster_application.webp)
+
+## Prerequisites
+
+To complete this tutorial, you will need the following.
+
+- Follow the steps described in the [Set up Palette with AWS](./setup.md) guide to authenticate Palette for use with
+ your AWS cloud account.
+
+- A Palette cluster profile. Follow the [Create a Cluster Profile](./create-cluster-profile.md) tutorial to create the
+ required AWS cluster profile.
+
+## Deploy a Cluster
+
+The following steps will guide you through deploying the cluster infrastructure.
+
+Navigate to the left **Main Menu** and select **Cluster**. From the clusters page, click on **Add New Cluster**.
+
+![Palette clusters overview page](/getting-started/getting-started_deploy-k8s-cluster_new_cluster.webp)
+
+Palette will prompt you to either deploy a new cluster or import an existing one. Click on **Deploy New Cluster** to
+access the cluster deployment wizard. Select **AWS** and click the **Start AWS Configuration** button. Use the following
+steps to create a host cluster in AWS.
+
+In the **Basic information** section, insert the general information about the cluster, such as the Cluster name,
+Description, Tags, and Cloud account. Click on **Next**.
+
+![Palette clusters basic information](/getting-started/aws/getting-started_deploy-k8s-cluster_clusters_basic_info.webp)
+
+A list is displayed of available profiles you can choose to deploy to AWS. Select the cluster profile you created in the
+[Create a Cluster Profile](./create-cluster-profile.md) tutorial, named **aws-profile**, and click on **Next**.
+
+The **Parameters** section displays all the layers in the cluster profile.
+
+![Palette clusters parameters](/getting-started/aws/getting-started_deploy-k8s-cluster_clusters_creation_parameters.webp)
+
+Each layer has a pack manifest file with the deploy configurations. The pack manifest file is in a YAML format. Each
+pack contains a set of default values. You can change the manifest values if needed. Click on **Next** to proceed.
+
+The **Cluster config** section allows you to select the **Region** in which to deploy the host cluster and specify other
+options such as the **SSH Key Pair** to assign to the cluster. All clusters require you to select an SSH key. After you
+have selected the **Region** and your **SSH Key Pair Name**, click on **Next**.
+
+The **Nodes config** section allows you to configure the nodes that make up the control plane and worker nodes of the
+host cluster.
+
+Before you proceed to next section, review the following parameters.
+
+- **Number of nodes in the pool** - This option sets the number of control plane or worker nodes in the control plane or
+ worker pool. For this tutorial, set the count to one for the control plane pool and two for the worker pool.
+
+- **Allow worker capability** - This option allows the control plane node to also accept workloads. This is useful when
+ spot instances are used as worker nodes. You can check this box if you want to.
+
+- **Instance Type** - Select the compute type for the node pool. Each instance type displays the amount of CPU, RAM, and
+ hourly cost of the instance. Select `m4.2xlarge`.
+
+- **Availability zones** - Used to specify the availability zones in which the node pool can place nodes. Select an
+ availability zone.
+
+- **Disk size** - Set the disk size to **60 GiB**.
+
+- **Instance Option** - This option allows you to choose
+ [on-demand instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-on-demand-instances.html) or
+ [spot instance](https://aws.amazon.com/ec2/spot/) for worker nodes. Select **On Demand**.
+
+![Palette clusters basic information](/getting-started/aws/getting-started_deploy-k8s-cluster_cluster_nodes_config.webp)
+
+Select **Next** to proceed with the cluster deployment.
+
+In the **Settings** section, you can configure advanced options such as when to patch the OS, enable security scans,
+manage backups, add role-based access control (RBAC) bindings, and more.
+
+For this tutorial, you can use the default settings. Click on **Validate** to continue.
+
+The **Review** section allows you to review the cluster configuration prior to deploying the cluster. Review all the
+settings and click on **Finish Configuration** to deploy the cluster.
+
+![Configuration overview of newly created AWS cluster](/getting-started/aws/getting-started_deploy-k8s-cluster_profile_cluster_profile_review.webp)
+
+Navigate to the left **Main Menu** and select **Clusters**.
+
+![Update the cluster](/getting-started/aws/getting-started_deploy-k8s-cluster_create_cluster.webp)
+
+The cluster deployment process can take 15 to 30 min. The deployment time varies depending on the cloud provider,
+cluster profile, cluster size, and the node pool configurations provided. You can learn more about the deployment
+progress by reviewing the event log. Click on the **Events** tab to view the log.
+
+![Update the cluster](/getting-started/aws/getting-started_deploy-k8s-cluster_event_log.webp)
+
+## Verify the Application
+
+Navigate to the left **Main Menu** and select **Clusters**.
+
+Select your cluster to view its **Overview** tab. When the application is deployed and ready for network traffic,
+indicated in the **Services** field, Palette exposes the service URL. Click on the URL for port **:8080** to access the
+Hello Universe application.
+
+![Cluster details page with service URL highlighted](/getting-started/aws/getting-started_deploy-k8s-cluster_service_url.webp)
+
+
+
+:::warning
+
+It can take up to three minutes for DNS to properly resolve the public load balancer URL. We recommend waiting a few
+moments before clicking on the service URL to prevent the browser from caching an unresolved DNS request.
+
+:::
+
+
+
+![Image that shows the cluster overview of the Hello Universe Frontend Cluster](/getting-started/getting-started_deploy-k8s-cluster_hello-universe-without-api.webp)
+
+Welcome to Hello Universe, a demo application to help you learn more about Palette and its features. Feel free to click
+on the logo to increase the counter and for a fun image change.
+
+You have deployed your first application to a cluster managed by Palette. Your first application is a single container
+application with no upstream dependencies.
+
+## Cleanup
+
+Use the following steps to remove all the resources you created for the tutorial.
+
+To remove the cluster, navigate to the left **Main Menu** and click on **Clusters**. Select the cluster you want to
+delete to access its details page.
+
+Click on **Settings** to expand the menu, and select **Delete Cluster**.
+
+![Delete cluster](/getting-started/aws/getting-started_deploy-k8s-cluster_delete-cluster-button.webp)
+
+You will be prompted to type in the cluster name to confirm the delete action. Type in the cluster name to proceed with
+the delete step. The deletion process takes several minutes to complete.
+
+
+
+:::info
+
+If a cluster remains in the delete phase for over 15 minutes, it becomes eligible for a force delete. To trigger a force
+delete, navigate to the cluster’s details page, click on **Settings**, then select **Force Delete Cluster**. Palette
+automatically removes clusters stuck in the cluster deletion phase for over 24 hours.
+
+:::
+
+
+
+Once the cluster is deleted, navigate to the left **Main Menu** and click on **Profiles**. Find the cluster profile you
+created and click on the **three-dot Menu** to display the **Delete** button. Select **Delete** and confirm the
+selection to remove the cluster profile.
+
+## Wrap-Up
+
+In this tutorial, you used the cluster profile you created in the previous
+[Create a Cluster Profile](./create-cluster-profile.md) tutorial to deploy a host cluster onto AWS. After the cluster
+deployed, you verified the Hello Universe application was successfully deployed.
+
+We recommend that you continue to the [Deploy Cluster Profile Updates](./update-k8s-cluster.md) tutorial to learn how to
+update your host cluster.
diff --git a/docs/docs-content/getting-started/aws/setup.md b/docs/docs-content/getting-started/aws/setup.md
new file mode 100644
index 0000000000..de937ac2aa
--- /dev/null
+++ b/docs/docs-content/getting-started/aws/setup.md
@@ -0,0 +1,59 @@
+---
+sidebar_label: "Set up Palette"
+title: "Set up Palette with AWS"
+description: "Learn how to set up Palette with AWS."
+icon: ""
+hide_table_of_contents: false
+sidebar_position: 10
+tags: ["getting-started", "aws"]
+---
+
+In this guide, you will learn how to set up Palette for use with your AWS cloud account. These steps are required in
+order to authenticate Palette and allow it to deploy host clusters.
+
+## Prerequisites
+
+The prerequisite steps to getting started with Palette on AWS are as follows.
+
+- Sign up to [Palette](https://www.spectrocloud.com/get-started).
+
+ - Your Palette account role must have the `clusterProfile.create` permission to create a cluster profile. Refer to the
+ [Roles and Permissions](../../user-management/palette-rbac/project-scope-roles-permissions.md#cluster-profile-admin)
+ documentation for more information.
+
+- Sign up to a public cloud account from
+ [AWS](https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account).
+
+- Access to a terminal window.
+
+- The utility `ssh-keygen` or similar SSH key generator software.
+
+## Enablement
+
+Palette needs access to your AWS cloud account in order to create and manage AWS clusters and resources.
+
+### Static Credentials Access
+
+
+
+### Create and Upload an SSH Key
+
+
+
+## Validate
+
+You can verify your account is added.
+
+1. Log in to [Palette](https://console.spectrocloud.com).
+
+2. From the left **Main Menu**, select **Tenant Settings**.
+
+3. Next, on the **Tenant Settings Menu**, select **Cloud Accounts**.
+
+4. The added cloud account is listed under **AWS** with all other available AWS cloud accounts.
+
+## Next Steps
+
+Now that you set up Palette for use with AWS, you can start deploying Kubernetes clusters to your AWS account. To learn
+how to get started with deploying Kubernetes clusters to AWS, we recommend that you continue to the
+[Create a Cluster Profile](./create-cluster-profile.md) tutorial to create a full cluster profile for your host cluster.
diff --git a/docs/docs-content/getting-started/aws/update-k8s-cluster.md b/docs/docs-content/getting-started/aws/update-k8s-cluster.md
new file mode 100644
index 0000000000..6e14bc2428
--- /dev/null
+++ b/docs/docs-content/getting-started/aws/update-k8s-cluster.md
@@ -0,0 +1,277 @@
+---
+sidebar_label: "Deploy Cluster Profile Updates"
+title: "Deploy Cluster Profile Updates"
+description: "Learn how to update your deployed clusters using Palette Cluster Profiles."
+icon: ""
+hide_table_of_contents: false
+sidebar_position: 40
+tags: ["getting-started", "aws"]
+---
+
+Palette provides cluster profiles, which allow you to specify layers for your workloads using packs, Helm charts, Zarf
+packages, or cluster manifests. Packs serve as blueprints to the provisioning and deployment process, as they contain
+the versions of the container images that Palette will install for you. Cluster profiles provide consistency across
+environments during the cluster creation process, as well as when maintaining your clusters. Check out the
+[cluster profiles](../cluster-profiles.md) page to learn more. Once provisioned, there are three main ways to update
+your Palette deployments.
+
+| Method | Description | Cluster application process |
+| ------------------------ | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Cluster profile versions | Create a new version of the cluster profile with your updates. | Select the new version of the cluster profile. Apply this new profile version to the clusters you want to update. |
+| Cluster profile updates | Change the cluster profile in place. | Palette detects the difference between the provisioned resources and this profile. A pending update is available to clusters using this profile. Apply pending updates to the clusters you want to update. |
+| Cluster overrides | Change the configuration of a single deployed cluster outside its cluster profile. | Save and apply the changes you've made to your cluster. |
+
+This tutorial will teach you how to update a cluster deployed with Palette to Amazon Web Services (AWS). You will
+explore each cluster update method and learn how to apply these changes using Palette.
+
+## Prerequisites
+
+To complete this tutorial, follow the steps described in the [Set up Palette with AWS](./setup.md) guide to authenticate
+Palette for use with your AWS cloud account.
+
+Follow the instructions of the [Deploy a Cluster](./deploy-k8s-cluster.md) tutorial to deploy a cluster with the
+[_hello-universe_](https://github.com/spectrocloud/hello-universe) application. Your cluster should be successfully
+provisioned and in a healthy state.
+
+The cluster profile name is `aws-profile` and the cluster name is `aws-cluster`.
+
+![Cluster details page with service URL highlighted](/getting-started/aws/getting-started_deploy-k8s-cluster_service_url.webp)
+
+## Tag and Filter Clusters
+
+Palette provides the ability to add tags to your cluster profiles and clusters. This helps you organize and categorize
+your clusters based on your custom criteria. You can add tags during the creation process or by editing the resource
+after it has been created.
+
+Adding tags to your clusters helps you find and identify your clusters, without having to rely on cluster naming. This
+is especially important when operating with many clusters or multiple cloud deployments.
+
+Navigate to the left **Main Menu** and select **Clusters** to view your deployed clusters. Find the `aws-cluster` you
+deployed with the _hello-universe_ application. Click on it to view its **Overview** tab.
+
+Click on the **Settings** drop-down Menu in the upper right corner and select **Cluster Settings**.
+
+Fill **service:hello-universe-frontend** in the **Tags (Optional)** input box. Click on **Save Changes**. Close the
+panel.
+
+![Image that shows how to add a cluster tag](/getting-started/aws/getting-started_update-k8s-cluster_add-service-tag.webp)
+
+Navigate to the left **Main Menu** and select **Clusters** to view your deployed clusters. Click on **Add Filter**, then
+select the **Add custom filter** option.
+
+Use the drop-down boxes to fill in the values of the filter. Select **Tags** in the left-hand **drop-down Menu**. Select
+**is** in the middle **drop-down Menu**. Fill in **service:hello-universe-frontend** in the right-hand input box.
+
+Click on **Apply Filter**.
+
+![Image that shows how to add a frontend service filter](/getting-started/aws/getting-started_update-k8s-cluster_apply-frontend-filter.webp)
+
+Once you apply the filter, only the `aws-cluster` with this tag is displayed.
+
+## Version Cluster Profiles
+
+Palette supports the creation of multiple cluster profile versions using the same profile name. This provides you with
+better change visibility and control over the layers in your host clusters. Profile versions are commonly used for
+adding or removing layers and pack configuration updates.
+
+The version number of a given profile must be unique and use the semantic versioning format `major.minor.patch`. If you
+do not specify a version for your cluster profile, it defaults to **1.0.0**.
+
+Navigate to the left **Main Menu** and select **Profiles** to view the cluster profile page. Find the cluster profile
+corresponding to your _hello-universe-frontend_ cluster. It should be named `aws-profile`. Select it to view its
+details.
+
+![Image that shows the frontend cluster profile with cluster linked to it](/getting-started/aws/getting-started_update-k8s-cluster_profile-with-cluster.webp)
+
+The current version is displayed in the **drop-down Menu** next to the profile name. This profile has the default value
+of **1.0.0**, as you did not specify another value when you created it. The cluster profile also shows the host clusters
+that are currently deployed with this cluster profile version.
+
+Click on the version **drop-down Menu**. Select the **Create new version** option.
+
+A dialog box appears. Fill in the **Version** input with **1.1.0**. Click on **Confirm**.
+
+Palette creates a new cluster profile version and opens it. The version dropdown displays the newly created **1.1.0**
+profile. This profile version is not deployed to any host clusters.
+
+![Image that shows cluster profile version 1.1.0](/getting-started/aws/getting-started_update-k8s-cluster_new-version-overview.webp)
+
+The version **1.1.0** has the same layers as the version **1.0.0** it was created from. Click on the **hello-universe**
+pack layer. The pack manifest appears.
+
+Click on **Presets** on the right-hand side. This pack has two configured presets:
+
+1. **Disable Hello Universe API** configures the [_hello-universe_](https://github.com/spectrocloud/hello-universe)
+ application as a standalone frontend application. This is the default preset selection.
+2. **Enable Hello Universe API** configures the [_hello-universe_](https://github.com/spectrocloud/hello-universe)
+ application as a three-tier application with a frontend, API server, and Postgres database.
+
+Select the **Enable Hello Universe API** preset. The pack manifest changes according to this preset.
+
+The pack manifest has requires two values to be replaced for the authorization token and for the database password.
+Replace these values with your own base64 encoded values. The
+[_hello-universe_](https://github.com/spectrocloud/hello-universe?tab=readme-ov-file#single-load-balancer) repository
+provides a token that you can use.
+
+Click on **Confirm Updates**. The manifest editor closes.
+
+Click on **Save Changes** to finish the configuration of this cluster profile version.
+
+Navigate to the left **Main Menu** and select **Clusters**. Filter for the cluster with the
+**service:hello-universe-frontend** tag. Select it to view its **Overview** tab.
+
+Select the **Profile** tab of this cluster. You can select a new version of your cluster profile by using the version
+dropdown.
+
+Select the **1.1.0** version.
+
+![Image that shows how to select a new profile version for the cluster](/getting-started/aws/getting-started_update-k8s-cluster_profile-version-selection.webp)
+
+Click on **Review & Save** to confirm your profile version selection.
+
+The **Changes Summary** dialog appears to show your cluster changes. Click on **Review changes in Editor**. The pack
+manifest changes appear in the editor. Click on **Apply Changes** to deploy the new profile version.
+
+![Image that shows the profile 1.1.0 differences](/getting-started/getting-started_update-k8s-cluster_profile-version-changes.webp)
+
+:::warning
+
+Palette has backup and restore capabilities available for your mission critical workloads. Ensure that you have adequate
+backups before you make any cluster profile version changes in your production environments. You can learn more in the
+[Backup and Restore](../../clusters/cluster-management/backup-restore/backup-restore.md) section.
+
+:::
+
+Palette now makes the required changes to your cluster according to the specifications of the configured cluster profile
+version. Once your changes have completed, Palette marks your layers with the green status indicator. The Hello Universe
+three-tier application will be successfully deployed.
+
+![Image that shows completed cluster profile updates](/getting-started/aws/getting-started_update-k8s-cluster_completed-cluster-updates.webp)
+
+Click on the URL for port **:8080** on the **ui** service to access the Hello Universe application. The landing page of
+the application indicates that it is connected to the API server.
+
+![Image that shows hello-universe with API server](/getting-started/getting-started_update-k8s-cluster_hello-universe-with-api.webp)
+
+## Roll Back Cluster Profiles
+
+One of the key advantages of using cluster profile versions is that they make it possible to maintain a copy of
+previously known working states. The ability to roll back to a previously working cluster profile in one action shortens
+the time to recovery in the event of an incident.
+
+The process to roll back to a previous version is identical to the process for applying a new version.
+
+Navigate to the left **Main Menu** and select **Clusters**. Filter for the cluster with the
+**service:hello-universe-frontend** tag. Select it to view its **Overview** tab.
+
+Select the **Profile** tab. This cluster is currently deployed using cluster profile version **1.1.0**. Select the
+option **1.0.0** in the version dropdown. This process is the reverse of what you have done in the previous section,
+[Version Cluster Profiles](#version-cluster-profiles).
+
+Click on **Review & Save** to confirm your changes. The **Changes Summary** dialog appears again.
+
+Click on **Review changes in Editor**. The editor shows that the incoming version no longer contains the three-tier
+application configuration.
+
+Click on **Apply Changes**. Select the **Overview** tab.
+
+Palette now makes the changes required for the cluster to return to the state specified in version **1.0.0** of your
+cluster profile. Once your changes have completed, Palette marks your layers with the green status indicator.
+
+Click on the URL for port **:8080** on **hello-universe-service** to access the Hello Universe application. The landing
+page indicates that the application is deployed as a standalone frontend.
+
+## Pending Updates
+
+Cluster profiles can also be updated in place, without the need to create a new cluster profile version. Palette
+monitors the state of your clusters and notifies you when updates are available for your host clusters. You may then
+choose to apply your changes at a convenient time.
+
+The previous state of the cluster profile will not be saved once it is overwritten.
+
+Navigate to the left **Main Menu** and select **Clusters**. Filter for the cluster with the tag
+**service:hello-universe-frontend**. Select it to view its **Overview** tab.
+
+Select the **Profile** tab. Then, select the **hello-universe** pack. Change the `replicas` field to `2` on line `14`.
+Click on **Save**. The editor closes.
+
+This cluster now contains an override over its cluster profile. Palette uses the configuration you have just provided
+for the single cluster over its cluster profile and begins making the appropriate changes.
+
+Once these changes are complete, select the **Workloads** tab. Then, select the **hello-universe** namespace.
+
+Two replicas of the **hello-universe-deployment** are available, instead of the one specified by your cluster profile.
+Your override has been successfully applied.
+
+Navigate to the left **Main Menu** and select **Profiles** to view the cluster profile page. Find the cluster profile
+corresponding to your _hello-universe-frontend_ cluster. It is named `aws-profile`.
+
+Click on it to view its details. Select **1.0.0** in the version dropdown.
+
+Select the **hello-universe** pack. The editor appears. Change the `replicas` field to `3` on line `14`. Click on
+**Confirm Updates**. The editor closes.
+
+Click on **Save Changes** to confirm the changes you have made to your profile.
+
+Navigate to the left **Main Menu** and select **Clusters**. Filter for the with the **service:hello-universe-frontend**
+tag. Palette indicates that the cluster associated with the cluster profile you updated has updates available.
+
+![Image that shows the pending updates ](/getting-started/aws/getting-started_update-k8s-cluster_pending-update-clusters-view.webp)
+
+Select this cluster to open its **Overview** tab. Click on **Updates** to begin the cluster update.
+
+![Image that shows the Updates Available button](/getting-started/aws/getting-started_update-k8s-cluster_updates-available-button-cluster-overview.webp)
+
+A dialog appears which shows the changes made in this update. Review the changes and ensure the only change is the
+`replicas` field value. The pending update removes your cluster override and sets the `replicas` field to `3`. At this
+point, you can choose to apply the pending changes or keep it by modifying the right-hand side of the dialog.
+
+![Image that shows the available updates dialog ](/getting-started/aws/getting-started_update-k8s-cluster_available-updates-dialog.webp)
+
+Click on **Confirm updates** once you have finished reviewing your changes.
+
+Palette updates your cluster according to cluster profile specifications. Once these changes are complete, select the
+**Workloads** tab. Then, select the **hello-universe** namespace.
+
+Three replicas of the **hello-universe-deployment** are available. The cluster profile update is now reflected by your
+cluster.
+
+## Cleanup
+
+Use the following steps to remove all the resources you created for the tutorial.
+
+To remove the cluster, navigate to the left **Main Menu** and click on **Clusters**. Select the cluster you want to
+delete to access its details page.
+
+Click on **Settings** to expand the menu, and select **Delete Cluster**.
+
+![Delete cluster](/getting-started/aws/getting-started_deploy-k8s-cluster_delete-cluster-button.webp)
+
+You will be prompted to type in the cluster name to confirm the delete action. Type in the cluster name `aws-cluster` to
+proceed with the delete step. The deletion process takes several minutes to complete.
+
+:::info
+
+If a cluster remains in the delete phase for over 15 minutes, it becomes eligible for a force delete. To trigger a force
+delete, navigate to the cluster’s details page, click on **Settings**, then select **Force Delete Cluster**. Palette
+automatically removes clusters stuck in the cluster deletion phase for over 24 hours.
+
+:::
+
+Once the cluster is deleted, navigate to the left **Main Menu** and click on **Profiles**. Find the cluster profile you
+created and click on the **three-dot Menu** to display the **Delete** button. Select **Delete** and confirm the
+selection to remove the cluster profile.
+
+## Wrap-Up
+
+In this tutorial, you created deployed cluster profile updates. After the cluster was deployed to AWS, you updated the
+cluster profile through three different methods: create a new cluster profile version, update a cluster profile in
+place, and cluster profile overrides. After you made your changes, the Hello Universe application functioned as a
+three-tier application with a REST API backend server.
+
+Cluster profiles provide consistency during the cluster creation process, as well as when maintaining your clusters.
+They can be versioned to keep a record of previously working cluster states, giving you visibility when updating or
+rolling back workloads across your environments.
+
+We recommend that you continue to the [Deploy a Cluster with Terraform](./deploy-k8s-cluster-tf.md) page to learn about
+how you can use Palette with Terraform.
diff --git a/docs/docs-content/getting-started/azure/_category_.json b/docs/docs-content/getting-started/azure/_category_.json
new file mode 100644
index 0000000000..ae9ddb024d
--- /dev/null
+++ b/docs/docs-content/getting-started/azure/_category_.json
@@ -0,0 +1,3 @@
+{
+ "position": 50
+}
diff --git a/docs/docs-content/getting-started/azure/azure.md b/docs/docs-content/getting-started/azure/azure.md
new file mode 100644
index 0000000000..931bd5fd20
--- /dev/null
+++ b/docs/docs-content/getting-started/azure/azure.md
@@ -0,0 +1,52 @@
+---
+sidebar_label: "Deploy a Cluster to Azure"
+title: "Deploy a Cluster to Microsoft Azure"
+description: "Spectro Cloud Getting Started with Azure"
+hide_table_of_contents: false
+sidebar_custom_props:
+ icon: ""
+tags: ["getting-started", "azure"]
+---
+
+Palette supports integration with [Microsoft Azure](https://azure.microsoft.com/en-us). You can deploy and manage
+[Host Clusters](../../glossary-all.md#host-cluster) in Azure or Azure Government.
+
+## Get Started
+
+In this section, you learn how to create a cluster profile. Then, you deploy a cluster to AWS by using Palette. Once
+your cluster is deployed, you can update it using cluster profile updates.
+
+
diff --git a/docs/docs-content/getting-started/azure/create-cluster-profile.md b/docs/docs-content/getting-started/azure/create-cluster-profile.md
new file mode 100644
index 0000000000..f651f3df80
--- /dev/null
+++ b/docs/docs-content/getting-started/azure/create-cluster-profile.md
@@ -0,0 +1,93 @@
+---
+sidebar_label: "Create a Cluster Profile"
+title: "Create a Cluster Profile"
+description: "Learn to create a full cluster profile in Palette."
+icon: ""
+hide_table_of_contents: false
+sidebar_position: 20
+tags: ["getting-started", "azure"]
+---
+
+Palette offers profile-based management for Kubernetes, enabling consistency, repeatability, and operational efficiency
+across multiple clusters. A cluster profile allows you to customize the cluster infrastructure stack, allowing you to
+choose the desired Operating System (OS), Kubernetes, Container Network Interfaces (CNI), Container Storage Interfaces
+(CSI). You can further customize the stack with add-on application layers. For more information about cluster profile
+types, refer to [Cluster Profiles](../cluster-profiles.md).
+
+In this tutorial, you create a full profile directly from the Palette dashboard. Then, you add a layer to your cluster
+profile by using a [community pack](../../integrations/community_packs.md) to deploy a web application.
+
+## Prerequisites
+
+- Follow the steps described in the [Set up Palette with Azure](./setup.md) guide to authenticate Palette for use with
+ your Azure cloud account.
+- Ensure that the [Palette Community Registry](../../registries-and-packs/registries/registries.md#default-registries)
+ is available in your Palette environment. Refer to the
+ [Add OCI Packs Registry](../../registries-and-packs/registries/oci-registry/add-oci-packs.md) guide for additional
+ guidance.
+
+## Create a Full Cluster Profile
+
+Log in to Palette and navigate to the left **Main Menu**. Select **Profiles** to view the cluster profile page. You can
+view the list of available cluster profiles. To create a cluster profile, click on **Add Cluster Profile**.
+
+![View of the cluster Profiles page](/getting-started/getting-started_create-cluster-profile_profile_list_view.webp)
+
+Follow the wizard to create a new profile.
+
+In the **Basic Information** section, assign the name **azure-profile**, a brief profile description, select the type as
+**Full**, and assign the tag **env:azure**. You can leave the version empty if you want to. Just be aware that the
+version defaults to **1.0.0**. Click on **Next**.
+
+**Cloud Type** allows you to choose the infrastructure provider with which this cluster profile is associated. Select
+**Azure** and click on **Next**.
+
+The **Profile Layers** step is where you specify the packs that compose the profile. There are four required
+infrastructure packs and several optional add-on packs you can choose from. Every pack requires you to select the **Pack
+Type**, **Registry**, and **Pack Name**.
+
+For this tutorial, use the following packs:
+
+| Pack Name | Version | Layer |
+| ---------------- | ------- | ---------------- |
+| ubuntu-azure LTS | 22.4.x | Operating System |
+| Kubernetes | 1.27.x | Kubernetes |
+| cni-calico-azure | 3.26.x | Network |
+| Azure Disk | 1.28.x | Storage |
+
+As you fill out the information for each layer, click on **Next** to proceed to the next layer.
+
+Click on **Confirm** after you have completed filling out all the core layers.
+
+![Azure cluster profile overview page](/getting-started/azure/getting-started_create-cluster-profile_cluster_profile_stack.webp)
+
+The review section gives an overview of the cluster profile configuration you selected. Click on **Finish
+Configuration** to finish creating the cluster profile.
+
+## Add a Pack
+
+Navigate to the left **Main Menu** and select **Profiles**. Select the cluster profile you created earlier.
+
+Click on **Add New Pack** at the top of the page.
+
+Select the **Palette Community Registry** from the **Registry** dropdown. Then, click on the latest **Hello Universe**
+pack with version **v1.1.2**.
+
+![Screenshot of hello universe pack](/getting-started/azure/getting-started_create-cluster-profile_add-pack.webp)
+
+Once you have selected the pack, Palette will display its README, which provides you with additional guidance for usage
+and configuration options. The pack you added will deploy the
+[_hello-universe_](https://github.com/spectrocloud/hello-universe) application.
+
+![Screenshot of pack readme](/getting-started/azure/getting-started_create-cluster-profile_pack-readme.webp)
+
+Click on **Confirm & Create** to save the manifest. Click on **Save Changes** to save this new layer to the cluster
+profile.
+
+## Wrap-Up
+
+In this tutorial, you created a cluster profile, which is a template that contains the core layers required to deploy a
+host cluster using Microsoft Azure. You added a community pack to your profile to deploy a custom workload.
+
+We recommend that you continue to the [Deploy a Cluster](./deploy-k8s-cluster.md) tutorial to deploy this cluster
+profile to a host cluster onto Azure.
diff --git a/docs/docs-content/getting-started/azure/deploy-k8s-cluster-tf.md b/docs/docs-content/getting-started/azure/deploy-k8s-cluster-tf.md
new file mode 100644
index 0000000000..41dde42eb9
--- /dev/null
+++ b/docs/docs-content/getting-started/azure/deploy-k8s-cluster-tf.md
@@ -0,0 +1,564 @@
+---
+sidebar_label: "Deploy a Cluster with Terraform"
+title: "Deploy a Cluster with Terraform"
+description: "Learn to deploy a Palette host cluster with Terraform."
+icon: ""
+hide_table_of_contents: false
+sidebar_position: 50
+tags: ["getting-started", "azure"]
+---
+
+The [Spectro Cloud Terraform](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs) provider
+enables you to create and manage Palette resources in a codified manner by leveraging Infrastructure as Code (IaC). Some
+notable reasons why you would want to utilize IaC are:
+
+- The ability to automate infrastructure.
+
+- Improved collaboration in making infrastructure changes.
+
+- Self-documentation of infrastructure through code.
+
+- Allows tracking all infrastructure in a single source of truth.
+
+If want to become more familiar with Terraform, we recommend you check out the
+[Terraform](https://developer.hashicorp.com/terraform/intro) learning resources from HashiCorp.
+
+This tutorial will teach you how to deploy a host cluster with Terraform using Amazon Web Services (AWS), Microsoft
+Azure, or Google Cloud Platform (GCP) cloud providers. You will learn about _Cluster Mode_ and _Cluster Profiles_ and
+how these components enable you to deploy customized applications to Kubernetes with minimal effort using the
+[Spectro Cloud Terraform](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs) provider.
+
+## Prerequisites
+
+To complete this tutorial, you will need the following items
+
+- Basic knowledge of containers.
+- [Docker Desktop](https://www.docker.com/products/docker-desktop/), [Podman](https://podman.io/docs/installation) or
+ another container management tool.
+
+- Follow the steps described in the [Set up Palette with Azure](./setup.md) guide to authenticate Palette for use with
+ your Azure cloud account.
+
+## Set Up Local Environment
+
+You can clone the tutorials repository locally or follow along by downloading a Docker image that contains the tutorial
+code and all dependencies.
+
+
+
+:::warning
+
+If you choose to clone the repository instead of using the tutorial container make sure you have Terraform v1.4.0 or
+greater installed.
+
+:::
+
+
+
+
+
+
+
+Ensure Docker Desktop on your local machine is available. Use the following command and ensure you receive an output
+displaying the version number.
+
+```bash
+docker version
+```
+
+Download the tutorial image to your local machine.
+
+```bash
+docker pull ghcr.io/spectrocloud/tutorials:1.1.3
+```
+
+Next, start the container, and open a bash session into it.
+
+```shell
+docker run --name tutorialContainer --interactive --tty ghcr.io/spectrocloud/tutorials:1.1.3 bash
+```
+
+Navigate to the tutorial code.
+
+```shell
+cd /terraform/iaas-cluster-deployment-tf
+```
+
+
+
+
+
+If you are not running a Linux operating system, create and start the Podman Machine in your local environment.
+Otherwise, skip this step.
+
+```bash
+podman machine init
+podman machine start
+```
+
+Use the following command and ensure you receive an output displaying the installation information.
+
+```bash
+podman info
+```
+
+Download the tutorial image to your local machine.
+
+```bash
+podman pull ghcr.io/spectrocloud/tutorials:1.1.3
+```
+
+Next, start the container, and open a bash session into it.
+
+```shell
+podman run --name tutorialContainer --interactive --tty ghcr.io/spectrocloud/tutorials:1.1.3 bash
+```
+
+Navigate to the tutorial code.
+
+```shell
+cd /terraform/iaas-cluster-deployment-tf
+```
+
+
+
+
+
+Open a terminal window and download the tutorial code from GitHub.
+
+```shell
+git@github.com:spectrocloud/tutorials.git
+```
+
+Change the directory to the tutorial folder.
+
+```shell
+cd tutorials/
+```
+
+Check out the following git tag.
+
+```shell
+git checkout v1.1.3
+```
+
+Change the directory to the tutorial code.
+
+```shell
+cd terraform/iaas-cluster-deployment-tf/
+```
+
+
+
+
+
+## Create an API Key
+
+Before you can get started with the Terraform code, you need a Spectro Cloud API key.
+
+To create an API key, log in to [Palette](https://console.spectrocloud.com) and click on the user **User Menu** and
+select **My API Keys**.
+
+![Image that points to the user drop-down Menu and points to the API key link](/tutorials/deploy-clusters/clusters_public-cloud_deploy-k8s-cluster_create_api_key.webp)
+
+Next, click on **Add New API Key**. Fill out the required input field, **API Key Name**, and the **Expiration Date**.
+Click on **Confirm** to create the API key. Copy the key value to your clipboard, as you will use it shortly.
+
+
+
+In your terminal session, issue the following command to export the API key as an environment variable.
+
+
+
+```shell
+export SPECTROCLOUD_APIKEY=YourAPIKeyHere
+```
+
+The [Spectro Cloud Terraform](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs) provider
+requires credentials to interact with the Palette API. The Spectro Cloud Terraform provider will use the environment
+variable to authenticate with the Spectro Cloud API endpoint.
+
+## Resources Review
+
+To help you get started with Terraform, the tutorial code is structured to support deploying a cluster to either Azure,
+GCP, or AWS. Before you deploy a host cluster to your target provider, take a few moments to review the following files
+in the folder structure.
+
+- **provider.tf** - This file contains the Terraform providers that are used to support the deployment of the cluster.
+
+- **inputs.tf** - This file contains all the Terraform variables for the deployment logic.
+
+- **data.tf** - This file contains all the query resources that perform read actions.
+
+- **cluster_profiles.tf** - This file contains the cluster profile definitions for each cloud provider.
+
+- **clusters.tf** - This file has all the required cluster configurations to deploy a host cluster to one of the cloud
+ providers.
+
+- **terraform.tfvars** - Use this file to customize the deployment and target a specific cloud provider. This is the
+ primary file you will modify.
+
+- **outputs.tf** - This file contains content that will be output in the terminal session upon a successful Terraform
+ `apply` action.
+
+The following section allows you to review the core Terraform resources more closely.
+
+#### Provider
+
+The **provider.tf** file contains the Terraform providers and their respective versions. The tutorial uses two
+providers - the Spectro Cloud Terraform provider and the TLS Terraform provider. Note how the project name is specified
+in the `provider "spectrocloud" {}` block. You can change the target project by changing the value specified in the
+`project_name` parameter.
+
+```hcl
+terraform {
+ required_providers {
+ spectrocloud = {
+ version = ">= 0.13.1"
+ source = "spectrocloud/spectrocloud"
+ }
+ tls = {
+ source = "hashicorp/tls"
+ version = "4.0.4"
+ }
+ }
+}
+
+provider "spectrocloud" {
+ project_name = "Default"
+}
+```
+
+The next file you should become familiar with is the **cluster-profiles.tf** file.
+
+The Spectro Cloud Terraform provider has several resources available for use. When creating a cluster profile, use
+`spectrocloud_cluster_profile`. This resource can be used to customize all layers of a cluster profile. You can specify
+all the different packs and versions to use and add a manifest or Helm chart.
+
+In the **cluster-profiles.tf** file, the cluster profile resource is declared three times. Each instance of the resource
+is for a specific cloud provider. Using the Azure cluster profile as an example, note how the **cluster-profiles.tf**
+file uses `pack {}` blocks to specify each layer of the profile. The order in which you arrange contents of the
+`pack {}` blocks plays an important role, as each layer maps to the core infrastructure in a cluster profile.
+
+The first listed `pack {}` block must be the OS, followed by Kubernetes, the container network interface, and the
+container storage interface. The first `pack {}` block in the list equates to the bottom layer of the cluster profile.
+Ensure you define the bottom layer of the cluster profile - the OS layer - first in the list of `pack {}` blocks.
+
+```hcl
+resource "spectrocloud_cluster_profile" "azure-profile" {
+ count = var.deploy-azure ? 1 : 0
+
+ name = "tf-azure-profile"
+ description = "A basic cluster profile for Azure"
+ tags = concat(var.tags, ["env:azure"])
+ cloud = "azure"
+ type = "cluster"
+
+ pack {
+ name = data.spectrocloud_pack.azure_ubuntu.name
+ tag = data.spectrocloud_pack.azure_ubuntu.version
+ uid = data.spectrocloud_pack.azure_ubuntu.id
+ values = data.spectrocloud_pack.azure_ubuntu.values
+ }
+
+ pack {
+ name = data.spectrocloud_pack.azure_k8s.name
+ tag = data.spectrocloud_pack.azure_k8s.version
+ uid = data.spectrocloud_pack.azure_k8s.id
+ values = data.spectrocloud_pack.azure_k8s.values
+ }
+
+ pack {
+ name = data.spectrocloud_pack.azure_cni.name
+ tag = data.spectrocloud_pack.azure_cni.version
+ uid = data.spectrocloud_pack.azure_cni.id
+ values = data.spectrocloud_pack.azure_cni.values
+ }
+
+ pack {
+ name = data.spectrocloud_pack.azure_csi.name
+ tag = data.spectrocloud_pack.azure_csi.version
+ uid = data.spectrocloud_pack.azure_csi.id
+ values = data.spectrocloud_pack.azure_csi.values
+ }
+
+ pack {
+ name = "hello-universe"
+ type = "manifest"
+ tag = "1.0.0"
+ values = ""
+ manifest {
+ name = "hello-universe"
+ content = file("manifests/hello-universe.yaml")
+ }
+ }
+}
+```
+
+The last `pack {}` block contains a manifest file with all the Kubernetes configurations for the
+[Hello Universe](https://github.com/spectrocloud/hello-universe) application. Including the application in the profile
+ensures the application is installed during cluster deployment. If you wonder what all the data resources are for, head
+to the next section to review them.
+
+You may have noticed that each `pack {}` block contains references to a data resource.
+
+```hcl
+ pack {
+ name = data.spectrocloud_pack.azure_csi.name
+ tag = data.spectrocloud_pack.azure_csi.version
+ uid = data.spectrocloud_pack.azure_csi.id
+ values = data.spectrocloud_pack.azure_csi.values
+ }
+```
+
+[Data resources](https://developer.hashicorp.com/terraform/language/data-sources) are used to perform read actions in
+Terraform. The Spectro Cloud Terraform provider exposes several data resources to help you make your Terraform code more
+dynamic. The data resource used in the cluster profile is `spectrocloud_pack`. This resource enables you to query
+Palette for information about a specific pack. You can get information about the pack using the data resource such as
+unique ID, registry ID, available versions, and the pack's YAML values.
+
+Below is the data resource used to query Palette for information about the Kubernetes pack for version `1.27.5`.
+
+```hcl
+data "spectrocloud_pack" "azure_k8s" {
+ name = "kubernetes"
+ version = "1.27.5"
+ registry_uid = data.spectrocloud_registry.public_registry.id
+}
+```
+
+Using the data resource, you avoid manually typing in the parameter values required by the cluster profile's `pack {}`
+block.
+
+The **clusters.tf** file contains the definitions for deploying a host cluster to one of the cloud providers. To create
+a host cluster, you must use a cluster resource for the cloud provider you are targeting. The following Terraform
+cluster resources are defined in this file.
+
+| Terraform Resource | Platform |
+| ------------------------------------------------------------------------------------------------------------------------------------- | -------- |
+| [`spectrocloud_cluster_aws`](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/cluster_aws) | AWS |
+| [`spectrocloud_cluster_azure`](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/cluster_azure) | Azure |
+| [`spectrocloud_cluster_gcp`](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/cluster_gcp) | GCP |
+
+Using the `spectrocloud_cluster_azure` resource in this tutorial as an example, note how the resource accepts a set of
+parameters. When deploying a cluster, you can change the same parameters in the Palette user interface (UI). You can
+learn more about each parameter by reviewing the resource documentation page hosted in the Terraform registry.
+
+```hcl
+resource "spectrocloud_cluster_azure" "cluster" {
+ name = "azure-cluster"
+ tags = concat(var.tags, ["env:azure"])
+ cloud_account_id = data.spectrocloud_cloudaccount_azure.account[0].id
+
+ cloud_config {
+ subscription_id = var.azure_subscription_id
+ resource_group = var.azure_resource_group
+ region = var.azure-region
+ ssh_key = tls_private_key.tutorial_ssh_key[0].public_key_openssh
+ }
+
+ cluster_profile {
+ id = spectrocloud_cluster_profile.azure-profile[0].id
+ }
+
+ machine_pool {
+ control_plane = true
+ control_plane_as_worker = true
+ name = "control-plane-pool"
+ count = var.azure_control_plane_nodes.count
+ instance_type = var.azure_control_plane_nodes.instance_type
+ azs = var.azure_control_plane_nodes.azs
+ is_system_node_pool = var.azure_control_plane_nodes.is_system_node_pool
+ disk {
+ size_gb = var.azure_control_plane_nodes.disk_size_gb
+ type = "Standard_LRS"
+ }
+ }
+
+ machine_pool {
+ name = "worker-basic"
+ count = var.azure_worker_nodes.count
+ instance_type = var.azure_worker_nodes.instance_type
+ azs = var.azure_worker_nodes.azs
+ is_system_node_pool = var.azure_worker_nodes.is_system_node_pool
+ }
+
+ timeouts {
+ create = "30m"
+ delete = "15m"
+ }
+}
+```
+
+To deploy a cluster using Terraform, you must first modify the **terraform.tfvars** file. Open the **terraform.tfvars**
+file in the editor of your choice, and locate the cloud provider you will use to deploy a host cluster.
+
+To simplify the process, we added a toggle variable in the Terraform template, that you can use to select the deployment
+environment. Each cloud provider has a section in the template that contains all the variables you must populate.
+Variables to populate are identified with `REPLACE_ME`.
+
+In the example Azure section below, you would change `deploy-azure = false` to `deploy-azure = true` to deploy to Azure.
+Additionally, you would replace all the variables with a value `REPLACE_ME`. You can also update the values for nodes in
+the control plane pool or worker pool.
+
+```hcl
+###########################
+# Azure Deployment Settings
+############################
+deploy-azure = false # Set to true to deploy to Azure
+azure-use-azs = true # Set to false when you deploy to a region without AZs
+
+azure-cloud-account-name = "REPLACE_ME"
+azure-region = "REPLACE_ME"
+azure_subscription_id = "REPLACE_ME"
+azure_resource_group = "REPLACE_ME"
+
+
+azure_master_nodes = {
+ count = "1"
+ control_plane = true
+ instance_type = "Standard_A8_v2"
+ disk_size_gb = "60"
+ azs = ["1"] # If you want to deploy to multiple AZs, add them here.
+ is_system_node_pool = false
+}
+
+azure_worker_nodes = {
+ count = "1"
+ control_plane = false
+ instance_type = "Standard_A8_v2"
+ disk_size_gb = "60"
+ azs = ["1"] # If you want to deploy to multiple AZs, add them here.
+ is_system_node_pool = false
+}
+```
+
+When you are done making the required changes, issue the following command to initialize Terraform.
+
+```shell
+terraform init
+```
+
+Next, issue the `plan` command to preview the changes.
+
+```shell
+terraform plan
+```
+
+Output:
+
+```shell
+Plan: 2 to add, 0 to change, 0 to destroy.
+```
+
+If you change the desired cloud provider's toggle variable to `true,` you will receive an output message that two new
+resources will be created. The two resources are your cluster profile and the host cluster.
+
+To deploy all the resources, use the `apply` command.
+
+```shell
+terraform apply -auto-approve
+```
+
+To check out the cluster profile creation in Palette, log in to [Palette](https://console.spectrocloud.com), and from
+the left **Main Menu** click on **Profiles**. Locate the cluster profile with the name `tf-azure-profile`. Click on the
+cluster profile to review its details, such as layers, packs, and versions.
+
+![A view of the cluster profile](/getting-started/azure/getting-started_deploy-k8s-cluster-tf_profile_review.webp)
+
+You can also check the cluster creation process by navigating to the left **Main Menu** and selecting **Clusters**.
+
+![Update the cluster](/getting-started/azure/getting-started_deploy-k8s-cluster_create_cluster.webp)
+
+Select your cluster to review its details page, which contains the status, cluster profile, event logs, and more.
+
+The cluster deployment may take several minutes depending on the cloud provider, node count, node sizes used, and the
+cluster profile. You can learn more about the deployment progress by reviewing the event log. Click on the **Events**
+tab to check the event log.
+
+![Update the cluster](/getting-started/azure/getting-started_deploy-k8s-cluster_event_log.webp)
+
+## Verify the Application
+
+When the cluster deploys, you can access the Hello Universe application. From the cluster's **Overview** page, click on
+the URL for port **:8080** next to the **hello-universe-service** in the **Services** row. This URL will take you to the
+application landing page.
+
+:::warning
+
+It can take up to three minutes for DNS to properly resolve the public load balancer URL. We recommend waiting a few
+moments before clicking on the service URL to prevent the browser from caching an unresolved DNS request.
+
+:::
+
+![Deployed application](/getting-started/getting-started_deploy-k8s-cluster_hello-universe-without-api.webp)
+
+Welcome to Hello Universe, a demo application to help you learn more about Palette and its features. Feel free to click
+on the logo to increase the counter and for a fun image change.
+
+You have deployed your first application to a cluster managed by Palette through Terraform. Your first application is a
+single container application with no upstream dependencies.
+
+## Cleanup
+
+Use the following steps to clean up the resources you created for the tutorial. Use the `destroy` command to remove all
+the resources you created through Terraform.
+
+```shell
+terraform destroy --auto-approve
+```
+
+Output:
+
+```shell
+Destroy complete! Resources: 2 destroyed.
+```
+
+:::info
+
+If a cluster remains in the delete phase for over 15 minutes, it becomes eligible for force delete. To trigger a force
+delete, navigate to the cluster’s details page and click on **Settings**. Click on **Force Delete Cluster** to delete
+the cluster. Palette automatically removes clusters stuck in the cluster deletion phase for over 24 hours.
+
+:::
+
+If you are using the tutorial container and want to exit the container, type `exit` in your terminal session and press
+the **Enter** key. Next, issue the following command to stop the container.
+
+
+
+
+
+```shell
+docker stop tutorialContainer && \
+docker rmi --force ghcr.io/spectrocloud/tutorials:1.1.3
+```
+
+
+
+
+
+```shell
+podman stop tutorialContainer && \
+podman rmi --force ghcr.io/spectrocloud/tutorials:1.1.3
+```
+
+
+
+
+
+## Wrap-Up
+
+In this tutorial, you created a cluster profile, which is a template that contains the core layers required to deploy a
+host cluster. You then deployed a host cluster onto your preferred cloud service provider using Terraform.
+
+We encourage you to check out the [Deploy an Application using Palette Dev Engine](../../devx/apps/deploy-app.md)
+tutorial to learn more about Palette. Palette Dev Engine can help you deploy applications more quickly through the usage
+of [virtual clusters](../../glossary-all.md#palette-virtual-cluster). Feel free to check out the reference links below
+to learn more about Palette.
+
+- [Palette Modes](../../introduction/palette-modes.md)
+
+- [Palette Clusters](../../clusters/clusters.md)
+
+- [Hello Universe GitHub repository](https://github.com/spectrocloud/hello-universe)
diff --git a/docs/docs-content/getting-started/azure/deploy-k8s-cluster.md b/docs/docs-content/getting-started/azure/deploy-k8s-cluster.md
new file mode 100644
index 0000000000..6008fbd39f
--- /dev/null
+++ b/docs/docs-content/getting-started/azure/deploy-k8s-cluster.md
@@ -0,0 +1,173 @@
+---
+sidebar_label: "Deploy a Cluster"
+title: "Deploy a Cluster"
+description: "Learn to deploy a Palette host cluster."
+icon: ""
+hide_table_of_contents: false
+sidebar_position: 30
+tags: ["getting-started", "azure"]
+---
+
+This tutorial will teach you how to deploy a host cluster with Palette using Microsoft Azure. You will learn about
+_Cluster Mode_ and _Cluster Profiles_ and how these components enable you to deploy customized applications to
+Kubernetes with minimal effort.
+
+As you navigate the tutorial, refer to this diagram to help you understand how Palette uses a cluster profile as a
+blueprint for the host cluster you deploy. Palette clusters have the same node pools you may be familiar with: _control
+plane nodes_ and _worker nodes_ where you will deploy applications. The result is a host cluster that Palette manages.
+
+![A view of Palette managing the Kubernetes lifecycle](/getting-started/getting-started_deploy-k8s-cluster_application.webp)
+
+## Prerequisites
+
+To complete this tutorial, you will need the following.
+
+- Follow the steps described in the [Set up Palette with Azure](./setup.md) guide to authenticate Palette for use with
+ your Azure cloud account.
+
+- A Palette cluster profile. Follow the [Create a Cluster Profile](./create-cluster-profile.md) tutorial to create the
+ required Azure cluster profile.
+
+## Deploy a Cluster
+
+The following steps will guide you through deploying the cluster infrastructure.
+
+Navigate to the left **Main Menu** and select **Clusters**. Click on **Add New Cluster**.
+
+![Palette clusters overview page](/getting-started/getting-started_deploy-k8s-cluster_new_cluster.webp)
+
+Click on **Deploy New Cluster** to access the cluster deployment wizard. Select **Azure** and click the **Start Azure
+Configuration** button. Use the following steps to create a host cluster in Azure.
+
+In the **Basic information** section, insert the general information about the cluster, such as the Cluster name,
+Description, Tags, and Cloud account. Click on **Next**.
+
+![Palette clusters basic information](/getting-started/azure/getting-started_deploy-k8s-cluster_clusters_basic_info.webp)
+
+A list is displayed of available profiles you can choose to deploy to Azure. Select the cluster profile you created in
+the [Create a Cluster Profile](./create-cluster-profile.md) tutorial, named **azure-profile**, and click on **Next**.
+
+The **Parameters** section displays all the layers in the cluster profile.
+
+![palette clusters basic information](/getting-started/azure/getting-started_deploy-k8s-cluster_parameters.webp)
+
+Each layer has a pack manifest file with the deploy configurations. The pack manifest file is in a YAML format. Each
+pack contains a set of default values. You can change the manifest values if needed. Click on **Next** to proceed.
+
+The **Cluster config** section allows you to select the **Subscription**, **Region**, **Resource Group**, **Storage
+account**, and **SSH Key** to apply to the host cluster. All clusters require you to assign an SSH key. Refer to the
+[SSH Keys](../../clusters/cluster-management/ssh-keys.md) guide for information about uploading an SSH key.
+
+When you are done selecting a **Subscription**, **Region**, **Resource Group**, **Storage account** and **SSH Key**,
+click on **Next**.
+
+The **Nodes config** section allows you to configure the nodes that compose the control plane nodes and worker nodes of
+the Kubernetes cluster.
+
+Refer to the [Node Pool](../../clusters/cluster-management/node-pool.md) guide for a list and description of parameters.
+
+Before you proceed to next section, review the following parameters.
+
+- **Number of nodes in the pool** - This option sets the number of control plane or worker nodes in the control plane or
+ worker pool. For this tutorial, set the count to one for both the control plane and worker pools.
+
+- **Allow worker capability** - This option allows the control plane node to also accept workloads. This is useful when
+ spot instances are used as worker nodes. You can check this box if you want to.
+
+- **Instance Type** - Select the compute type for the node pool. Each instance type displays the amount of CPU, RAM, and
+ hourly cost of the instance. Select **Standard_A8_v2**.
+
+- **Managed disk** - Used to select the storage class. Select **Standard LRS** and set the disk size to **60**.
+
+- **Availability zones** - Used to specify the availability zones in which the node pool can place nodes. Select an
+ availability zone.
+
+![Palette clusters nodes configuration](/getting-started/azure/getting-started_deploy-k8s-cluster_cluster_nodes_config.webp)
+
+In the **Settings** section, you can configure advanced options such as when to patch the OS, enable security scans,
+manage backups, add Role-Based Access Control (RBAC) bindings, and more.
+
+For this tutorial, you can use the default settings. Click on **Validate** to continue.
+
+The Review section allows you to review the cluster configuration before deploying the cluster. Review all the settings
+and click on **Finish Configuration** to deploy the cluster.
+
+![Configuration overview of newly created Azure cluster](/getting-started/azure/getting-started_deploy-k8s-cluster_profile_review.webp)
+
+Navigate to the left **Main Menu** and select **Clusters**.
+
+![Update the cluster](/getting-started/azure/getting-started_deploy-k8s-cluster_create_cluster.webp)
+
+The cluster deployment process can take 15 to 30 min. The deployment time varies depending on the cloud provider,
+cluster profile, cluster size, and the node pool configurations provided. You can learn more about the deployment
+progress by reviewing the event log. Click on the **Events** tab to view the log.
+
+![Update the cluster](/getting-started/azure/getting-started_deploy-k8s-cluster_event_log.webp)
+
+## Verify the Application
+
+Navigate to the left **Main Menu** and select **Clusters**.
+
+Select your cluster to view its **Overview** tab. When the application is deployed and ready for network traffic,
+indicated in the **Services** field, Palette exposes the service URL. Click on the URL for port **:8080** to access the
+Hello Universe application.
+
+![Cluster details page with service URL highlighted](/getting-started/azure/getting-started_deploy-k8s-cluster_service_url.webp)
+
+
+
+:::warning
+
+It can take up to three minutes for DNS to properly resolve the public load balancer URL. We recommend waiting a few
+moments before clicking on the service URL to prevent the browser from caching an unresolved DNS request.
+
+:::
+
+
+
+![Image that shows the cluster overview of the Hello Universe Frontend Cluster](/getting-started/getting-started_deploy-k8s-cluster_hello-universe-without-api.webp)
+
+Welcome to Hello Universe, a demo application to help you learn more about Palette and its features. Feel free to click
+on the logo to increase the counter and for a fun image change.
+
+You have deployed your first application to a cluster managed by Palette. Your first application is a single container
+application with no upstream dependencies.
+
+## Cleanup
+
+Use the following steps to remove all the resources you created for the tutorial.
+
+To remove the cluster, navigate to the left **Main Menu** and click on **Clusters**. Select the cluster you want to
+delete to access its details page.
+
+Click on **Settings** to expand the menu, and select **Delete Cluster**.
+
+![Delete cluster](/getting-started/azure/getting-started_deploy-k8s-cluster_delete-cluster-button.webp)
+
+You will be prompted to type in the cluster name to confirm the delete action. Type in the cluster name to proceed with
+the delete step. The deletion process takes several minutes to complete.
+
+
+
+:::info
+
+If a cluster remains in the delete phase for over 15 minutes, it becomes eligible for a force delete. To trigger a force
+delete, navigate to the cluster’s details page, click on **Settings**, then select **Force Delete Cluster**. Palette
+automatically removes clusters stuck in the cluster deletion phase for over 24 hours.
+
+:::
+
+
+
+Once the cluster is deleted, navigate to the left **Main Menu** and click on **Profiles**. Find the cluster profile you
+created and click on the **three-dot Menu** to display the **Delete** button. Select **Delete** and confirm the
+selection to remove the cluster profile.
+
+## Wrap-Up
+
+In this tutorial, you used the cluster profile you created in the previous
+[Create a Cluster Profile](./create-cluster-profile.md) tutorial to deploy a host cluster onto your preferred cloud
+service provider. After the cluster deployed, you verified the Hello Universe application was successfully deployed.
+
+We recommend that you continue to the [Deploy Cluster Profile Updates](./update-k8s-cluster.md) tutorial to learn how to
+update your host cluster.
diff --git a/docs/docs-content/getting-started/azure/setup.md b/docs/docs-content/getting-started/azure/setup.md
new file mode 100644
index 0000000000..e8cf3a4ff7
--- /dev/null
+++ b/docs/docs-content/getting-started/azure/setup.md
@@ -0,0 +1,60 @@
+---
+sidebar_label: "Set up Palette"
+title: "Set up Palette with Azure"
+description: "Learn how to set up Palette with Azure."
+icon: ""
+hide_table_of_contents: false
+sidebar_position: 10
+tags: ["getting-started", "azure"]
+---
+
+In this guide, you will learn how to set up Palette for use with your AWS cloud account. These steps are required in
+order to authenticate Palette and allow it to deploy host clusters.
+
+## Prerequisites
+
+The prerequisite steps to getting started with Palette on AWS are as follows.
+
+- Sign up to [Palette](https://www.spectrocloud.com/get-started).
+
+ - Your Palette account role must have the `clusterProfile.create` permission to create a cluster profile. Refer to the
+ [Roles and Permissions](../../user-management/palette-rbac/project-scope-roles-permissions.md#cluster-profile-admin)
+ documentation for more information.
+
+- Sign up to a public cloud account from
+ [Azure](https://learn.microsoft.com/en-us/training/modules/create-an-azure-account).
+
+- Access to a terminal window.
+
+- The utility `ssh-keygen` or similar SSH key generator software.
+
+## Enablement
+
+Palette needs access to your Azure cloud account in order to create and manage Azure clusters and resources.
+
+### Add Azure Cloud Account
+
+
+
+### Create and Upload an SSH Key
+
+
+
+## Validate
+
+You can verify your account is added.
+
+1. Log in to [Palette](https://console.spectrocloud.com).
+
+2. From the left **Main Menu**, select **Tenant Settings**.
+
+3. Next, on the **Tenant Settings Menu**, select **Cloud Accounts**.
+
+4. The added cloud account is listed under **Azure** with all other available Azure cloud accounts.
+
+## Next Steps
+
+Now that you set up Palette for use with Azure, you can start deploying Kubernetes clusters to your Azure account. To
+learn how to get started with deploying Kubernetes clusters to AWS, we recommend that you continue to the
+[Create a Cluster Profile](./create-cluster-profile.md) tutorial to create a full cluster profile for your s host
+cluster.
diff --git a/docs/docs-content/getting-started/update-k8s-cluster.md b/docs/docs-content/getting-started/azure/update-k8s-cluster.md
similarity index 51%
rename from docs/docs-content/getting-started/update-k8s-cluster.md
rename to docs/docs-content/getting-started/azure/update-k8s-cluster.md
index 049b85f25f..12d5e3f299 100644
--- a/docs/docs-content/getting-started/update-k8s-cluster.md
+++ b/docs/docs-content/getting-started/azure/update-k8s-cluster.md
@@ -4,16 +4,16 @@ title: "Deploy Cluster Profile Updates"
description: "Learn how to update your deployed clusters using Palette Cluster Profiles."
icon: ""
hide_table_of_contents: false
-sidebar_position: 60
-tags: ["getting-started"]
+sidebar_position: 40
+tags: ["getting-started", "azure"]
---
Palette provides cluster profiles, which allow you to specify layers for your workloads using packs, Helm charts, Zarf
packages, or cluster manifests. Packs serve as blueprints to the provisioning and deployment process, as they contain
the versions of the container images that Palette will install for you. Cluster profiles provide consistency across
environments during the cluster creation process, as well as when maintaining your clusters. Check out the
-[cluster profiles](./cluster-profiles.md) page to learn more. Once provisioned, there are three main ways to update your
-Palette deployments.
+[cluster profiles](../cluster-profiles.md) page to learn more. Once provisioned, there are three main ways to update
+your Palette deployments.
| Method | Description | Cluster application process |
| ------------------------ | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -21,152 +21,21 @@ Palette deployments.
| Cluster profile updates | Change the cluster profile in place. | Palette detects the difference between the provisioned resources and this profile. A pending update is available to clusters using this profile. Apply pending updates to the clusters you want to update. |
| Cluster overrides | Change the configuration of a single deployed cluster outside its cluster profile. | Save and apply the changes you've made to your cluster. |
-This tutorial will teach you how to update a cluster deployed with Palette to Amazon Web Services (AWS), Microsoft
-Azure, or Google Cloud Platform (GCP) cloud providers. You will explore each cluster update method and learn how to
-apply these changes using Palette.
+This tutorial will teach you how to update a cluster deployed with Palette to Microsoft Azure. You will explore each
+cluster update method and learn how to apply these changes using Palette.
## Prerequisites
-This tutorial builds upon the resources and steps outlined in the [Deploy a Cluster](./deploy-k8s-cluster.md) tutorial
-for creating initial clusters. To complete it, you will need the following items.
+To complete this tutorial, follow the steps described in the [Set up Palette with AWS](./setup.md) guide to authenticate
+Palette for use with your AWS cloud account.
-- A public cloud account from one of these providers:
+Follow the instructions of the [Deploy a Cluster](./deploy-k8s-cluster.md) tutorial to deploy a cluster with the
+[_hello-universe_](https://github.com/spectrocloud/hello-universe) application. Your cluster should be successfully
+provisioned and in a healthy state.
- - [AWS](https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account)
- - [Azure](https://learn.microsoft.com/en-us/training/modules/create-an-azure-account)
- - [GCP](https://cloud.google.com/docs/get-started)
+The cluster profile name is `azure-profile` and the cluster name is `azure-cluster`.
-- Register the [cloud account with Palette](https://console.spectrocloud.com/auth/signup). Use the following resource
- for additional guidance.
-
- - [Register and Manage AWS Accounts](../clusters/public-cloud/aws/add-aws-accounts.md)
- - [Register and Manage Azure Cloud Accounts](../clusters/public-cloud/azure/azure-cloud.md)
- - [Register and Manage GCP Accounts](../clusters/public-cloud/gcp/add-gcp-accounts.md)
-
-- An SSH Key Pair. Use the [Create and Upload an SSH Key](../clusters/cluster-management/ssh-keys.md) guide to learn how
- to create an SSH key and upload it to Palette.
-
- - AWS users must create an AWS Key pair before starting the tutorial. If you need additional guidance, check out the
- [Create EC2 SSH Key Pair](https://docs.aws.amazon.com/ground-station/latest/ug/create-ec2-ssh-key-pair.html)
- tutorial.
-
-## Set Up Clusters
-
-Follow the instructions of the [Deploy a Cluster](./deploy-k8s-cluster.md) tutorial to create a cluster profile and
-cluster with the [_hello-universe_](https://github.com/spectrocloud/hello-universe) application. Your cluster should be
-successfully provisioned and in a healthy state in the cloud of your choosing.
-
-The cluster profile name follows the pattern `[cloud provider]-profile`. The cluster name follows the pattern
-`[cloud provider]-cluster`. This tutorial uses Azure for illustration purposes.
-
-Navigate to the left **Main Menu** and select **Profiles** to view the cluster profile page. Find the cluster profile
-corresponding to your cluster in the list of profiles. Click on the **three-dot Menu** and select **Clone**.
-
-A dialog appears to confirm the details of the cloned cluster profile. Fill in the **Name** input using the pattern
-`[cloud provider]-profile-api`. Click on **Confirm** to create the profile.
-
-The list of cluster profiles appears. Select the cloned cluster profile to view its details.
-
-Select the **hello-universe** manifest. The editor appears. In the manifest editor, replace the existing code with the
-following content.
-
-```yaml
-apiVersion: v1
-kind: Namespace
-metadata:
- name: hello-universe-api
----
-apiVersion: v1
-kind: Service
-metadata:
- name: hello-universe-api-service
- namespace: hello-universe-api
-spec:
- type: LoadBalancer
- ports:
- - protocol: TCP
- port: 3000
- targetPort: 3000
- selector:
- app: hello-universe-api
----
-apiVersion: v1
-kind: Service
-metadata:
- name: hello-universe-db-service
- namespace: hello-universe-api
-spec:
- type: ClusterIP
- ports:
- - protocol: TCP
- port: 5432
- targetPort: 5432
- selector:
- app: hello-universe-db
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: hello-universe-api-deployment
- namespace: hello-universe-api
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: hello-universe-api
- template:
- metadata:
- labels:
- app: hello-universe-api
- spec:
- containers:
- - name: hello-universe-api
- image: ghcr.io/spectrocloud/hello-universe-api:1.0.9
- imagePullPolicy: IfNotPresent
- ports:
- - containerPort: 3000
- env:
- - name: DB_HOST
- value: "hello-universe-db-service.hello-universe-api.svc.cluster.local"
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: hello-universe-db-deployment
- namespace: hello-universe-api
-spec:
- replicas: 1
- selector:
- matchLabels:
- app: hello-universe-db
- template:
- metadata:
- labels:
- app: hello-universe-db
- spec:
- containers:
- - name: hello-universe-db
- image: ghcr.io/spectrocloud/hello-universe-db:1.0.0
- imagePullPolicy: IfNotPresent
- ports:
- - containerPort: 5432
-```
-
-The code snippet you added deploys the [_hello-universe-api_](https://github.com/spectrocloud/hello-universe-api) and
-[_hello-universe-db_](https://github.com/spectrocloud/hello-universe-db) applications. These applications serve as the
-API server and database for the [_hello-universe_](https://github.com/spectrocloud/hello-universe) application.
-
-Click on **Confirm Updates** and close the editor.
-
-Click on **Save Changes** to confirm your updates.
-
-Deploy this cluster profile to a new cluster using the same steps outlined in the
-[Deploy a Cluster](./deploy-k8s-cluster.md) tutorial.
-
-Once you have completed these steps and the host cluster creation process has finished, navigate to the left **Main
-Menu** and select **Clusters** to view your deployed clusters. You should have two healthy clusters.
-
-![Image that shows the two clusters in the clusters list](/getting-started/getting-started_update-k8s-cluster_deployed-clusters-start-setup.webp)
+![Cluster details page with service URL highlighted](/getting-started/azure/getting-started_deploy-k8s-cluster_service_url.webp)
## Tag and Filter Clusters
@@ -177,18 +46,15 @@ after it has been created.
Adding tags to your clusters helps you find and identify your clusters, without having to rely on cluster naming. This
is especially important when operating with many clusters or multiple cloud deployments.
-Navigate to the left **Main Menu** and select **Clusters** to view your deployed clusters. Find the
-`[cloud provider]-cluster` you deployed with the _hello-universe_ application. Click on it to view its **Overview** tab.
+Navigate to the left **Main Menu** and select **Clusters** to view your deployed clusters. Find the `azure-cluster` you
+deployed with the _hello-universe_ application. Click on it to view its **Overview** tab.
Click on the **Settings** drop-down Menu in the upper right corner and select **Cluster Settings**.
Fill **service:hello-universe-frontend** in the **Tags (Optional)** input box. Click on **Save Changes**. Close the
panel.
-![Image that shows how to add a cluster tag](/getting-started/getting-started_update-k8s-cluster_add-service-tag.webp)
-
-Repeat the steps above for the `[cloud provider]-cluster-api` cluster you deployed with the _hello-universe-api_. Add
-the **service:hello-universe-backend** tag to it.
+![Image that shows how to add a cluster tag](/getting-started/azure/getting-started_update-k8s-cluster_add-service-tag.webp)
Navigate to the left **Main Menu** and select **Clusters** to view your deployed clusters. Click on **Add Filter**, then
select the **Add custom filter** option.
@@ -198,9 +64,9 @@ Use the drop-down boxes to fill in the values of the filter. Select **Tags** in
Click on **Apply Filter**.
-![Image that shows how to add a frontend service filter](/getting-started/getting-started_update-k8s-cluster_apply-frontend-filter.webp)
+![Image that shows how to add a frontend service filter](/getting-started/azure/getting-started_update-k8s-cluster_apply-frontend-filter.webp)
-Once you apply the filter, only the `[cloud provider]-cluster` with this tag is displayed.
+Once you apply the filter, only the `azure-cluster` with this tag is displayed.
## Version Cluster Profiles
@@ -211,18 +77,11 @@ adding or removing layers and pack configuration updates.
The version number of a given profile must be unique and use the semantic versioning format `major.minor.patch`. If you
do not specify a version for your cluster profile, it defaults to **1.0.0**.
-Navigate to the left **Main Menu** and select **Clusters**. Filter for the cluster with the
-**service:hello-universe-backend** tag. You can review how to filter your clusters in the
-[Tag and Filter Clusters](#tag-and-filter-clusters) section.
-
-Select cluster to open its **Overview** tab. Make a note of the IP address of the **hello-universe-api-service** present
-in this cluster. You can find it by opening the **:3000** URL.
-
Navigate to the left **Main Menu** and select **Profiles** to view the cluster profile page. Find the cluster profile
-corresponding to your _hello-universe-frontend_ cluster. It should be named using the pattern
-`[cloud provider]-profile`. Select it to view its details.
+corresponding to your _hello-universe-frontend_ cluster. It should be named `azure-profile`. Select it to view its
+details.
-![Image that shows the frontend cluster profile with cluster linked to it](/getting-started/getting-started_update-k8s-cluster_profile-with-cluster.webp)
+![Image that shows the frontend cluster profile with cluster linked to it](/getting-started/azure/getting-started_update-k8s-cluster_profile-with-cluster.webp)
The current version is displayed in the **drop-down Menu** next to the profile name. This profile has the default value
of **1.0.0**, as you did not specify another value when you created it. The cluster profile also shows the host clusters
@@ -235,67 +94,27 @@ A dialog box appears. Fill in the **Version** input with **1.1.0**. Click on **C
Palette creates a new cluster profile version and opens it. The version dropdown displays the newly created **1.1.0**
profile. This profile version is not deployed to any host clusters.
-![Image that shows cluster profile version 1.1.0](/getting-started/getting-started_update-k8s-cluster_new-version-overview.webp)
+![Image that shows cluster profile version 1.1.0](/getting-started/azure/getting-started_update-k8s-cluster_new-version-overview.webp)
The version **1.1.0** has the same layers as the version **1.0.0** it was created from. Click on the **hello-universe**
manifest layer. The manifest editor appears.
-Replace the code in the editor with the following content.
+The version **1.1.0** has the same layers as the version **1.0.0** it was created from. Click on the **hello-universe**
+pack layer. The pack manifest appears.
-```yaml {41,42,43}
-apiVersion: v1
-kind: Namespace
-metadata:
- name: hello-universe
----
-apiVersion: v1
-kind: Service
-metadata:
- name: hello-universe-service
- namespace: hello-universe
-spec:
- type: LoadBalancer
- ports:
- - protocol: TCP
- port: 8080
- targetPort: 8080
- selector:
- app: hello-universe
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: hello-universe-deployment
- namespace: hello-universe
-spec:
- replicas: 2
- selector:
- matchLabels:
- app: hello-universe
- template:
- metadata:
- labels:
- app: hello-universe
- spec:
- containers:
- - name: hello-universe
- image: ghcr.io/spectrocloud/hello-universe:1.1.0
- imagePullPolicy: IfNotPresent
- ports:
- - containerPort: 8080
- env:
- - name: API_URI
- value: "http://REPLACE_ME:3000"
-```
-
-The code snippet you added deploys the [_hello-universe_](https://github.com/spectrocloud/hello-universe) application
-with the extra environment variable `API_URI`. This environment variable allows you to specify a hostname and port for
-the _hello-universe_ API server. Check out the
-[_hello-universe_ readme](https://github.com/spectrocloud/hello-universe?tab=readme-ov-file#connecting-to-api-server) to
-learn more about how to expand the capabilities of the _hello-universe_ application with an API Server.
-
-Replace the _REPLACE_ME_ placeholder in the code snippet provided with the IP address of the
-_hello-universe-api-service_ that you made a note of earlier.
+Click on **Presets** on the right-hand side. This pack has two configured presets:
+
+1. **Disable Hello Universe API** configures the [_hello-universe_](https://github.com/spectrocloud/hello-universe)
+ application as a standalone frontend application. This is the default preset selection.
+2. **Enable Hello Universe API** configures the [_hello-universe_](https://github.com/spectrocloud/hello-universe)
+ application as a three-tier application with a frontend, API server, and Postgres database.
+
+Select the **Enable Hello Universe API** preset. The pack manifest changes according to this preset.
+
+The pack manifest has requires two values to be replaced for the authorization token and for the database password.
+Replace these values with your own base64 encoded values. The
+[_hello-universe_](https://github.com/spectrocloud/hello-universe?tab=readme-ov-file#single-load-balancer) repository
+provides a token that you can use.
Click on **Confirm Updates**. The manifest editor closes.
@@ -309,7 +128,7 @@ dropdown.
Select the **1.1.0** version.
-![Image that shows how to select a new profile version for the cluster](/tutorials/deploy-cluster-profile-updates/clusters_cluster-management_deploy-cluster-profile-updates_profile-version-selection.webp)
+![Image that shows how to select a new profile version for the cluster](/getting-started/azure/getting-started_update-k8s-cluster_profile-version-selection.webp)
Click **Review & Save**. Palette prompts you to preview the change summary.
@@ -318,23 +137,24 @@ incoming configuration on the right.
Click **Apply Changes**.
-![Palette Editor that displays changes coming from the profile version update.](/getting-started/getting-started_update-k8s-cluster_editor-changes.webp)
+![Image that shows the profile 1.1.0 differences](/getting-started/getting-started_update-k8s-cluster_profile-version-changes.webp)
:::warning
Palette has backup and restore capabilities available for your mission critical workloads. Ensure that you have adequate
backups before you make any cluster profile version changes in your production environments. You can learn more in the
-[Backup and Restore](../clusters/cluster-management/backup-restore/backup-restore.md) section.
+[Backup and Restore](../../clusters/cluster-management/backup-restore/backup-restore.md) section.
:::
Palette now makes the required changes to your cluster according to the specifications of the configured cluster profile
-version. Once your changes have completed, Palette marks your layers with the green status indicator.
+version. Once your changes have completed, Palette marks your layers with the green status indicator. The Hello Universe
+three-tier application will be successfully deployed.
-![Image that shows completed cluster profile updates](/getting-started/getting-started_update-k8s-cluster_completed-cluster-updates.webp)
+![Image that shows completed cluster profile updates](/getting-started/azure/getting-started_update-k8s-cluster_completed-cluster-updates.webp)
-Click on the URL for port **:8080** to access the Hello Universe application. The landing page of the application
-indicates that it is connected to the API server.
+Click on the URL for port **:8080** on the **ui** service to access the Hello Universe application. The landing page of
+the application indicates that it is connected to the API server.
![Image that shows hello-universe with API server](/getting-started/getting-started_update-k8s-cluster_hello-universe-with-api.webp)
@@ -351,13 +171,20 @@ Navigate to the left **Main Menu** and select **Clusters**. Filter for the clust
Select the **Profile** tab. This cluster is currently deployed using cluster profile version **1.1.0**. Select the
option **1.0.0** in the version dropdown. This process is the reverse of what you have done in the previous section,
-[Version Cluster Profiles](#version-cluster-profiles). Click on **Save** to confirm your changes.
+[Version Cluster Profiles](#version-cluster-profiles).
+
+Click on **Review & Save** to confirm your changes. The **Changes Summary** dialog appears again.
+
+Click on **Review changes in Editor**. The editor shows that the incoming version no longer contains the three-tier
+application configuration.
+
+Click on **Apply Changes**. Select the **Overview** tab.
Palette now makes the changes required for the cluster to return to the state specified in version **1.0.0** of your
cluster profile. Once your changes have completed, Palette marks your layers with the green status indicator.
-Click on the URL for port **:8080** to access the Hello Universe application. The landing page of the application
-indicates that the application has returned to its original state and is no longer connected to the API server.
+Click on the URL for port **:8080** on **hello-universe-service** to access the Hello Universe application. The landing
+page indicates that the application is deployed as a standalone frontend.
## Pending Updates
@@ -370,36 +197,35 @@ The previous state of the cluster profile will not be saved once it is overwritt
Navigate to the left **Main Menu** and select **Clusters**. Filter for the cluster with the tag
**service:hello-universe-frontend**. Select it to view its **Overview** tab.
-Select the **Profile** tab. Then, select the **hello-universe** manifest. Change the `replicas` field to `1` on line
-`26`. Click on **Save**. The editor closes.
+Select the **Profile** tab. Then, select the **hello-universe** pack. Change the `replicas` field to `2` on line `14`.
+Click on **Save**. The editor closes.
This cluster now contains an override over its cluster profile. Palette uses the configuration you have just provided
for the single cluster over its cluster profile and begins making the appropriate changes.
Once these changes are complete, select the **Workloads** tab. Then, select the **hello-universe** namespace.
-One replica of the **hello-universe-deployment** is available, instead of the two specified by your cluster profile.
+Two replicas of the **hello-universe-deployment** are available, instead of the one specified by your cluster profile.
Your override has been successfully applied.
Navigate to the left **Main Menu** and select **Profiles** to view the cluster profile page. Find the cluster profile
-corresponding to your _hello-universe-frontend_ cluster. Its name follows the pattern `[cloud provider]-profile`.
+corresponding to your _hello-universe-frontend_ cluster, named `azure-profile`.
Click on it to view its details. Select **1.0.0** in the version dropdown.
-Select the **hello-universe** manifest. The editor appears. Change the `replicas` field to `3` on line `26`. Click on
+Select the **hello-universe** pack. The editor appears. Change the `replicas` field to `3` on line `14`. Click on
**Confirm Updates**. The editor closes.
Click on **Save Changes** to confirm the changes you have made to your profile.
-Navigate to the left **Main Menu** and select **Clusters**. Filter for the clusters with the **service** tag. Both of
-your clusters match this filter. Palette indicates that the cluster associated with the cluster profile you updated has
-updates available.
+Navigate to the left **Main Menu** and select **Clusters**. Filter for the with the **service:hello-universe-frontend**
+tag. Palette indicates that the cluster associated with the cluster profile you updated has updates available.
-![Image that shows the pending updates ](/getting-started/getting-started_update-k8s-cluster_pending-update-clusters-view.webp)
+![Image that shows the pending updates ](/getting-started/azure/getting-started_update-k8s-cluster_pending-update-clusters-view.webp)
Select this cluster to open its **Overview** tab. Click on **Updates** to begin the cluster update.
-![Image that shows the Updates button](/getting-started/getting-started_update-k8s-cluster_updates-available-button-cluster-overview.webp)
+![Image that shows the Updates button](/getting-started/azure/getting-started_update-k8s-cluster_updates-available-button-cluster-overview.webp)
A dialog appears which shows the changes made in this update. Click on **Review changes in Editor**. As previously,
Palette displays the changes, with the current configuration on the left and the incoming configuration on the right.
@@ -407,7 +233,7 @@ Palette displays the changes, with the current configuration on the left and the
Review the changes and ensure the only change is the `replicas` field value. You can choose to maintain your cluster
override or apply the incoming cluster profile update.
-![Image that shows the available updates dialog ](/getting-started/getting-started_update-k8s-cluster_available-updates-dialog.webp)
+![Image that shows the available updates dialog ](/getting-started/azure/getting-started_update-k8s-cluster_available-updates-dialog.webp)
Click on **Apply Changes** once you have finished reviewing your changes. This removes your cluster override.
@@ -426,13 +252,11 @@ delete to access its details page.
Click on **Settings** to expand the menu, and select **Delete Cluster**.
-![Delete cluster](/getting-started/getting-started_deploy-k8s-cluster_delete-cluster-button.webp)
+![Delete cluster](/getting-started/azure/getting-started_deploy-k8s-cluster_delete-cluster-button.webp)
You will be prompted to type in the cluster name to confirm the delete action. Type in the cluster name to proceed with
the delete step. The deletion process takes several minutes to complete.
-Repeat the same steps for the other cluster.
-
:::info
If a cluster remains in the delete phase for over 15 minutes, it becomes eligible for a force delete. To trigger a force
@@ -445,18 +269,16 @@ Once the cluster is deleted, navigate to the left **Main Menu** and click on **P
created and click on the **three-dot Menu** to display the **Delete** button. Select **Delete** and confirm the
selection to remove the cluster profile.
-Repeat the same steps to the delete the cluster profile named with the pattern `[cloud provider]-profile-api`.
-
## Wrap-Up
-In this tutorial, you created two clusters and cluster profiles. After the clusters deployed to your chosen cloud
-provider, you updated one cluster profile in through three different methods: create a new cluster profile version,
-update a cluster profile in place, and cluster profile overrides. After you made your changes, the Hello Universe
-application functioned as a three-tier application with a REST API backend server.
+In this tutorial, you created deployed cluster profile updates. After the cluster was deployed to Azure, you updated the
+cluster profile through three different methods: create a new cluster profile version, update a cluster profile in
+place, and cluster profile overrides. After you made your changes, the Hello Universe application functioned as a
+three-tier application with a REST API backend server.
Cluster profiles provide consistency during the cluster creation process, as well as when maintaining your clusters.
They can be versioned to keep a record of previously working cluster states, giving you visibility when updating or
rolling back workloads across your environments.
-We recommend that you continue to the [Terraform Support](./terraform.md) page to learn about how you can use Palette
-with Terraform.
+We recommend that you continue to the [Deploy a Cluster with Terraform](./deploy-k8s-cluster-tf.md) page to learn about
+how you can use Palette with Terraform.
diff --git a/docs/docs-content/getting-started/create-cluster-profile.md b/docs/docs-content/getting-started/create-cluster-profile.md
deleted file mode 100644
index 06b407e3ff..0000000000
--- a/docs/docs-content/getting-started/create-cluster-profile.md
+++ /dev/null
@@ -1,224 +0,0 @@
----
-sidebar_label: "Create a Cluster Profile"
-title: "Create a Cluster Profile"
-description: "Learn to create a full cluster profile in Palette."
-icon: ""
-hide_table_of_contents: false
-sidebar_position: 40
-tags: ["getting-started"]
----
-
-Palette offers profile-based management for Kubernetes, enabling consistency, repeatability, and operational efficiency
-across multiple clusters. A cluster profile allows you to customize the cluster infrastructure stack, allowing you to
-choose the desired Operating System (OS), Kubernetes, Container Network Interfaces (CNI), Container Storage Interfaces
-(CSI). You can further customize the stack with add-on application layers. For more information about cluster profile
-types, refer to [Cluster Profiles](./cluster-profiles.md).
-
-In this tutorial, you create a full profile directly from the Palette dashboard. Then, you add a layer to your cluster
-profile by using a manifest to deploy a web application. Adding custom manifests to your cluster profile allows you to
-customize and configure clusters based on specific requirements.
-
-## Prerequisites
-
-- Your Palette account role must have the `clusterProfile.create` permission to create a cluster profile. Refer to the
- [Roles and Permissions](../user-management/palette-rbac/project-scope-roles-permissions.md#cluster-profile-admin)
- documentation for more information.
-
-## Create a Full Cluster Profile
-
-
-
-
-Log in to [Palette](https://console.spectrocloud.com) and navigate to the left **Main Menu**. Select **Profiles** to
-view the cluster profile page. You can view the list of available cluster profiles. To create a cluster profile, click
-on **Add Cluster Profile**.
-
-![View of the cluster Profiles page](/getting-started/getting-started_create-cluster-profile_profile_list_view.webp)
-
-Follow the wizard to create a new profile.
-
-In the **Basic Information** section, assign the name **aws-profile**, a brief profile description, select the type as
-**Full**, and assign the tag **env:aws**. You can leave the version empty if you want to. Just be aware that the version
-defaults to **1.0.0**. Click on **Next**.
-
-**Cloud Type** allows you to choose the infrastructure provider with which this cluster profile is associated. Select
-**AWS** and click on **Next**.
-
-The **Profile Layers** step is where you specify the packs that compose the profile. There are four required
-infrastructure packs and several optional add-on packs you can choose from. Every pack requires you to select the **Pack
-Type**, **Registry**, and **Pack Name**.
-
-For this tutorial, use the following packs:
-
-| Pack Name | Version | Layer |
-| -------------- | ------- | ---------------- |
-| ubuntu-aws LTS | 22.4.x | Operating System |
-| Kubernetes | 1.27.x | Kubernetes |
-| cni-calico | 3.26.x | Network |
-| csi-aws-ebs | 1.22.x | Storage |
-
-As you fill out the information for each layer, click on **Next** to proceed to the next layer.
-
-Click on **Confirm** after you have completed filling out all the core layers.
-
-![A view of the cluster profile stack](/getting-started/aws/getting-started_create-cluster-profile_clusters_parameters.webp)
-
-The review section gives an overview of the cluster profile configuration you selected. Click on **Finish
-Configuration** to create the cluster profile.
-
-
-
-
-
-Log in to Palette and navigate to the left **Main Menu**. Select **Profiles** to view the cluster profile page. You can
-view the list of available cluster profiles. To create a cluster profile, click on **Add Cluster Profile**.
-
-![View of the cluster Profiles page](/getting-started/getting-started_create-cluster-profile_profile_list_view.webp)
-
-Follow the wizard to create a new profile.
-
-In the **Basic Information** section, assign the name **azure-profile**, a brief profile description, select the type as
-**Full**, and assign the tag **env:azure**. You can leave the version empty if you want to. Just be aware that the
-version defaults to **1.0.0**. Click on **Next**.
-
-**Cloud Type** allows you to choose the infrastructure provider with which this cluster profile is associated. Select
-**Azure** and click on **Next**.
-
-The **Profile Layers** step is where you specify the packs that compose the profile. There are four required
-infrastructure packs and several optional add-on packs you can choose from. Every pack requires you to select the **Pack
-Type**, **Registry**, and **Pack Name**.
-
-For this tutorial, use the following packs:
-
-| Pack Name | Version | Layer |
-| ---------------- | ------- | ---------------- |
-| ubuntu-azure LTS | 22.4.x | Operating System |
-| Kubernetes | 1.27.x | Kubernetes |
-| cni-calico-azure | 3.26.x | Network |
-| Azure Disk | 1.28.x | Storage |
-
-As you fill out the information for each layer, click on **Next** to proceed to the next layer.
-
-Click on **Confirm** after you have completed filling out all the core layers.
-
-![Azure cluster profile overview page](/getting-started/azure/getting-started_create-cluster-profile_cluster_profile_stack.webp)
-
-The review section gives an overview of the cluster profile configuration you selected. Click on **Finish
-Configuration** to finish creating the cluster profile.
-
-
-
-
-Log in to [Palette](https://console.spectrocloud.com) and navigate to the left **Main Menu**. Select **Profiles** to
-view the cluster profile page. You can view the list of available cluster profiles. To create a cluster profile, click
-on **Add Cluster Profile**.
-
-![View of the cluster Profiles page](/getting-started/getting-started_create-cluster-profile_profile_list_view.webp)
-
-Follow the wizard to create a new profile.
-
-In the **Basic Information** section, assign the name **gcp-profile**, provide a profile description, select the type as
-**Full**, and assign the tag **env:gcp**. You can leave the version empty if you want to. Just be aware that the version
-defaults to **1.0.0**. Click on **Next**.
-
-Cloud Type allows you to choose the infrastructure provider with which this cluster profile is associated. Select
-**Google Cloud** and click on **Next**.
-
-The **Profile Layers** step is where you specify the packs that compose the profile. There are four required
-infrastructure packs and several optional add-on packs you can choose from. Every pack requires you to select the **Pack
-Type**, **Registry**, and **Pack Name**.
-
-For this tutorial, use the following packs:
-
-| Pack Name | Version | Layer |
-| -------------- | ------- | ---------------- |
-| ubuntu-gcp LTS | 22.4.x | Operating System |
-| Kubernetes | 1.27.x | Kubernetes |
-| cni-calico | 3.26.x | Network |
-| csi-gcp-driver | 1.8.x | Storage |
-
-As you fill out the information for each layer, click on **Next** to proceed to the next layer.
-
-Click on **Confirm** after you have completed filling out all the core layers.
-
-![GCP cluster profile view](/getting-started/gcp/getting-started_create-cluster-profile_cluster_profile_stack.webp)
-
-The review section gives an overview of the cluster profile configuration you selected. Click on **Finish
-Configuration** to create the cluster profile.
-
-
-
-
-
-## Add a Manifest
-
-Navigate to the left **Main Menu** and select **Profiles**. Select the cluster profile you created earlier.
-
-Click on **Add Manifest** at the top of the page and fill out the following input fields.
-
-- **Layer name** - The name of the layer. Assign the name **application**.
-- **Manifests** - Add your manifest by giving it a name and clicking the **New Manifest** button. Assign a name to the
- internal manifest and click on the blue button. An empty editor will be displayed on the right side of the screen.
-
-![Screenshot of unopened manifest editor](/getting-started/getting-started_create-cluster-profile_manifest_blue_btn.webp)
-
-In the manifest editor, insert the following content.
-
-```yaml
-apiVersion: v1
-kind: Service
-metadata:
- name: hello-universe-service
-spec:
- type: LoadBalancer
- ports:
- - protocol: TCP
- port: 8080
- targetPort: 8080
- selector:
- app: hello-universe
----
-apiVersion: apps/v1
-kind: Deployment
-metadata:
- name: hello-universe-deployment
-spec:
- replicas: 2
- selector:
- matchLabels:
- app: hello-universe
- template:
- metadata:
- labels:
- app: hello-universe
- spec:
- containers:
- - name: hello-universe
- image: ghcr.io/spectrocloud/hello-universe:1.1.0
- imagePullPolicy: IfNotPresent
- ports:
- - containerPort: 8080
-```
-
-The code snippet you added will deploy the [_hello-universe_](https://github.com/spectrocloud/hello-universe)
-application. You may have noticed that the code snippet you added is a Kubernetes configuration. Manifest files are a
-method you can use to achieve more granular customization of your Kubernetes cluster. You can add any valid Kubernetes
-configuration to a manifest file.
-
-![Screenshot of manifest in the editor](/getting-started/getting-started_create-cluster-profile_manifest.webp)
-
-The manifest defines a replica set for the application to simulate a distributed environment with a web application
-deployed to Kubernetes. The application is assigned a load balancer. Using a load balancer, you can expose a single
-access point and distribute the workload to both containers.
-
-Click on **Confirm & Create** to save the manifest. Click on **Save Changes** to save this new layer to the cluster
-profile.
-
-## Wrap-Up
-
-In this tutorial, you created a cluster profile, which is a template that contains the core layers required to deploy a
-host cluster using Amazon Web Services (AWS), Microsoft Azure, or Google Cloud Platform (GCP) cloud providers. You added
-a custom manifest to your profile to deploy a custom workload.
-
-We recommend that you continue to the [Deploy a Cluster](./deploy-k8s-cluster.md) tutorial to deploy this cluster
-profile to a host cluster onto your preferred cloud service provider.
diff --git a/docs/docs-content/getting-started/deploy-k8s-cluster.md b/docs/docs-content/getting-started/deploy-k8s-cluster.md
deleted file mode 100644
index 6f75358448..0000000000
--- a/docs/docs-content/getting-started/deploy-k8s-cluster.md
+++ /dev/null
@@ -1,354 +0,0 @@
----
-sidebar_label: "Deploy a Cluster"
-title: "Deploy a Cluster"
-description: "Learn to deploy a Palette host cluster."
-icon: ""
-hide_table_of_contents: false
-sidebar_position: 50
-tags: ["getting-started"]
----
-
-This tutorial will teach you how to deploy a host cluster with Palette using Amazon Web Services (AWS), Microsoft Azure,
-or Google Cloud Platform (GCP) cloud providers. You will learn about _Cluster Mode_ and _Cluster Profiles_ and how these
-components enable you to deploy customized applications to Kubernetes with minimal effort.
-
-As you navigate the tutorial, refer to this diagram to help you understand how Palette uses a cluster profile as a
-blueprint for the host cluster you deploy. Palette clusters have the same node pools you may be familiar with: _control
-plane nodes_ and _worker nodes_ where you will deploy applications. The result is a host cluster that Palette manages.
-
-![A view of Palette managing the Kubernetes lifecycle](/getting-started/getting-started_deploy-k8s-cluster_application.webp)
-
-## Prerequisites
-
-To complete this tutorial, you will need the following.
-
-- A public cloud account from one of these providers:
-
- - [AWS](https://aws.amazon.com/premiumsupport/knowledge-center/create-and-activate-aws-account)
- - [Azure](https://learn.microsoft.com/en-us/training/modules/create-an-azure-account)
- - [GCP](https://cloud.google.com/docs/get-started)
-
-- Register the cloud account in Palette. The following resources provide additional guidance.
-
- - [Register and Manage AWS Accounts](../clusters/public-cloud/aws/add-aws-accounts.md)
- - [Register and Manage Azure Cloud Accounts](../clusters/public-cloud/azure/azure-cloud.md)
- - [Register and Manage GCP Accounts](../clusters/public-cloud/gcp/add-gcp-accounts.md)
-
-- An SSH Key Pair. Use the [Create and Upload an SSH Key](../clusters/cluster-management/ssh-keys.md) guide to learn how
- to create an SSH key and upload it to Palette.
-
- - AWS users must create an AWS Key pair before starting the tutorial. If you need additional guidance, check out the
- [Create EC2 SSH Key Pair](https://docs.aws.amazon.com/ground-station/latest/ug/create-ec2-ssh-key-pair.html)
- tutorial.
-
-- A Palette cluster profile. Follow the [Create a Cluster Profile](./create-cluster-profile.md) tutorial to create the
- required cluster profile for your chosen cloud provider.
-
-## Deploy a Cluster
-
-The following steps will guide you through deploying the cluster infrastructure.
-
-
-
-
-
-Navigate to the left **Main Menu** and select **Cluster**. From the clusters page, click on **Add New Cluster**.
-
-![Palette clusters overview page](/getting-started/getting-started_deploy-k8s-cluster_new_cluster.webp)
-
-Palette will prompt you to either deploy a new cluster or import an existing one. Click on **Deploy New Cluster** to
-access the cluster deployment wizard. Select **AWS** and click the **Start AWS Configuration** button. Use the following
-steps to create a host cluster in AWS.
-
-In the **Basic information** section, insert the general information about the cluster, such as the Cluster name,
-Description, Tags, and Cloud account. Click on **Next**.
-
-![Palette clusters basic information](/getting-started/aws/getting-started_deploy-k8s-cluster_clusters_basic_info.webp)
-
-A list is displayed of available profiles you can choose to deploy to AWS. Select the cluster profile you created in the
-[Create a Cluster Profile](./create-cluster-profile.md) tutorial, named **aws-profile**, and click on **Next**.
-
-The **Parameters** section displays all the layers in the cluster profile.
-
-![Palette clusters parameters](/getting-started/aws/getting-started_deploy-k8s-cluster_clusters_creation_parameters.webp)
-
-Each layer has a pack manifest file with the deploy configurations. The pack manifest file is in a YAML format. Each
-pack contains a set of default values. You can change the manifest values if needed. Click on **Next** to proceed.
-
-The **Cluster config** section allows you to select the **Region** in which to deploy the host cluster and specify other
-options such as the **SSH Key Pair** to assign to the cluster. All clusters require you to select an SSH key. After you
-have selected the **Region** and your **SSH Key Pair Name**, click on **Next**.
-
-The **Nodes config** section allows you to configure the nodes that make up the control plane and worker nodes of the
-host cluster.
-
-Before you proceed to next section, review the following parameters.
-
-- **Number of nodes in the pool** - This option sets the number of control plane or worker nodes in the control plane or
- worker pool. For this tutorial, set the count to one for the control plane pool and two for the worker pool.
-
-- **Allow worker capability** - This option allows the control plane node to also accept workloads. This is useful when
- spot instances are used as worker nodes. You can check this box if you want to.
-
-- **Instance Type** - Select the compute type for the node pool. Each instance type displays the amount of CPU, RAM, and
- hourly cost of the instance. Select `m4.2xlarge`.
-
-- **Availability zones** - Used to specify the availability zones in which the node pool can place nodes. Select an
- availability zone.
-
-- **Disk size** - Set the disk size to **60 GiB**.
-
-- **Instance Option** - This option allows you to choose
- [on-demand instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-on-demand-instances.html) or
- [spot instance](https://aws.amazon.com/ec2/spot/) for worker nodes. Select **On Demand**.
-
-![Palette clusters basic information](/getting-started/aws/getting-started_deploy-k8s-cluster_cluster_nodes_config.webp)
-
-Select **Next** to proceed with the cluster deployment.
-
-In the **Settings** section, you can configure advanced options such as when to patch the OS, enable security scans,
-manage backups, add role-based access control (RBAC) bindings, and more.
-
-For this tutorial, you can use the default settings. Click on **Validate** to continue.
-
-The **Review** section allows you to review the cluster configuration prior to deploying the cluster. Review all the
-settings and click on **Finish Configuration** to deploy the cluster.
-
-![Configuration overview of newly created AWS cluster](/getting-started/aws/getting-started_deploy-k8s-cluster_profile_cluster_profile_review.webp)
-
-Navigate to the left **Main Menu** and select **Clusters**.
-
-![Update the cluster](/getting-started/aws/getting-started_deploy-k8s-cluster_create_cluster.webp)
-
-
-
-
-
-Navigate to the left **Main Menu** and select **Clusters**. Click on **Add New Cluster**.
-
-![Palette clusters overview page](/getting-started/getting-started_deploy-k8s-cluster_new_cluster.webp)
-
-Click on **Deploy New Cluster** to access the cluster deployment wizard. Select **Azure** and click the **Start Azure
-Configuration** button. Use the following steps to create a host cluster in Azure.
-
-In the **Basic information** section, insert the general information about the cluster, such as the Cluster name,
-Description, Tags, and Cloud account. Click on **Next**.
-
-![Palette clusters basic information](/getting-started/azure/getting-started_deploy-k8s-cluster_clusters_basic_info.webp)
-
-A list is displayed of available profiles you can choose to deploy to Azure. Select the cluster profile you created in
-the [Create a Cluster Profile](./create-cluster-profile.md) tutorial, named **azure-profile**, and click on **Next**.
-
-The **Parameters** section displays all the layers in the cluster profile.
-
-![palette clusters basic information](/getting-started/azure/getting-started_deploy-k8s-cluster_parameters.webp)
-
-Each layer has a pack manifest file with the deploy configurations. The pack manifest file is in a YAML format. Each
-pack contains a set of default values. You can change the manifest values if needed. Click on **Next** to proceed.
-
-The **Cluster config** section allows you to select the **Subscription**, **Region**, **Resource Group**, **Storage
-account**, and **SSH Key** to apply to the host cluster. All clusters require you to assign an SSH key. Refer to the
-[SSH Keys](../clusters/cluster-management/ssh-keys.md) guide for information about uploading an SSH key.
-
-When you are done selecting a **Subscription**, **Region**, **Resource Group**, **Storage account** and **SSH Key**,
-click on **Next**.
-
-The **Nodes config** section allows you to configure the nodes that compose the control plane nodes and worker nodes of
-the Kubernetes cluster.
-
-Refer to the [Node Pool](../clusters/cluster-management/node-pool.md) guide for a list and description of parameters.
-
-Before you proceed to next section, review the following parameters.
-
-- **Number of nodes in the pool** - This option sets the number of control plane or worker nodes in the control plane or
- worker pool. For this tutorial, set the count to one for both the control plane and worker pools.
-
-- **Allow worker capability** - This option allows the control plane node to also accept workloads. This is useful when
- spot instances are used as worker nodes. You can check this box if you want to.
-
-- **Instance Type** - Select the compute type for the node pool. Each instance type displays the amount of CPU, RAM, and
- hourly cost of the instance. Select **Standard_A8_v2**.
-
-- **Managed disk** - Used to select the storage class. Select **Standard LRS** and set the disk size to **60**.
-
-- **Availability zones** - Used to specify the availability zones in which the node pool can place nodes. Select an
- availability zone.
-
-![Palette clusters nodes configuration](/getting-started/azure/getting-started_deploy-k8s-cluster_cluster_nodes_config.webp)
-
-In the **Settings** section, you can configure advanced options such as when to patch the OS, enable security scans,
-manage backups, add Role-Based Access Control (RBAC) bindings, and more.
-
-For this tutorial, you can use the default settings. Click on **Validate** to continue.
-
-The Review section allows you to review the cluster configuration before deploying the cluster. Review all the settings
-and click on **Finish Configuration** to deploy the cluster.
-
-![Configuration overview of newly created Azure cluster](/getting-started/azure/getting-started_deploy-k8s-cluster_profile_review.webp)
-
-Navigate to the left **Main Menu** and select **Clusters**.
-
-![Update the cluster](/getting-started/azure/getting-started_deploy-k8s-cluster_create_cluster.webp)
-
-
-
-
-
-Navigate to the left **Main Menu** and select **Cluster**. Click on **Add New Cluster**.
-
-![Palette clusters overview page](/getting-started/getting-started_deploy-k8s-cluster_new_cluster.webp)
-
-Click on **Deploy New Cluster** to access the cluster deployment wizard. Select **Google Cloud** and click the **Start
-Google Cloud Configuration** button. Use the following steps to create a host cluster in Google Cloud.
-
-In the **Basic information** section, insert the general information about the cluster, such as the **Cluster name**,
-**Description**, **Tags**, and **Cloud account**. Click on **Next**.
-
-![Palette clusters basic information](/getting-started/gcp/getting-started_deploy-k8s-cluster_basic_info.webp)
-
-A list is displayed of available profiles you can choose to deploy to GCP. Select the cluster profile you created in the
-[Create a Cluster Profile](./create-cluster-profile.md) tutorial, named **gcp-profile**, and click on **Next**.
-
-The **Parameters** section displays all the layers in the cluster profile.
-
-![Palette clusters basic information](/getting-started/gcp/getting-started_deploy-k8s-cluster_clusters_parameters.webp)
-
-Each layer has a pack manifest file with the deploy configurations. The pack manifest file is in a YAML format. Each
-pack contains a set of default values. You can change the manifest values if needed. Click on **Next** to proceed.
-
-The **Cluster config** section allows you to select the **Project**, **Region**, and **SSH Key** to apply to the host
-cluster. All clusters require you to assign an SSH key. Refer to the [SSH Keys](/clusters/cluster-management/ssh-keys)
-guide for information about uploading an SSH key.
-
-After selecting a **Project**, **Region**, and **SSH Key**, click on **Next**.
-
-The **Nodes config** section allows you to configure the nodes that make up the control plane and worker nodes of the
-host cluster.
-
-Before you proceed to the next section, review the following parameters.
-
-Refer to the [Node Pool](../clusters/cluster-management/node-pool.md) guide for a list and description of parameters.
-
-Before you proceed to next section, review the following parameters.
-
-- **Number of nodes in the pool** - This option sets the number of control plane or worker nodes in the control plane or
- worker pool. For this tutorial, set the count to one for the control plane pool and two for the worker pool.
-
-- **Allow worker capability** - This option allows the control plane node to also accept workloads. This is useful when
- spot instances are used as worker nodes. You can check this box if you want to.
-
-- **Instance Type** - Select the compute type for the node pool. Each instance type displays the amount of CPU, RAM, and
- hourly cost of the instance. Select **n1-standard-4**.
-
-- **Disk size** - Set the disk size to **60**.
-
-- **Availability zones** - Used to specify the availability zones in which the node pool can place nodes. Select an
- availability zone.
-
-![Palette clusters nodes configuration](/getting-started/gcp/getting-started_deploy-k8s-cluster_cluster_nodes_config.webp)
-
-Select **Next** to proceed with the cluster deployment.
-
-In the **Settings** section, you can configure advanced options such as when to patch the OS, enable security scans,
-manage backups, add Role-Based Access Control (RBAC) bindings, and more.
-
-For this tutorial, you can use the default settings. Click on **Validate** to continue.
-
-The **Review** section allows you to review the cluster configuration before deploying the cluster. Review all the
-settings and click on **Finish Configuration** to deploy the cluster.
-
-![Newly created GCP cluster](/getting-started/gcp/getting-started_deploy-k8s-cluster_profile_review.webp)
-
-Navigate to the left **Main Menu** and select **Clusters**.
-
-![Update the cluster](/getting-started/gcp/getting-started_deploy-k8s-cluster_new_cluster.webp)
-
-
-
-
-
-The cluster deployment process can take 15 to 30 min. The deployment time varies depending on the cloud provider,
-cluster profile, cluster size, and the node pool configurations provided. You can learn more about the deployment
-progress by reviewing the event log. Click on the **Events** tab to view the log.
-
-![Update the cluster](/getting-started/getting-started_deploy-k8s-cluster_event_log.webp)
-
-
-
-While you wait for the cluster deployment process to complete, feel free to check out a video where we discuss the
-growing pains of using Kubernetes and how Palette can help your address these pain points.
-
-
-
-
-
-## Verify the Application
-
-Navigate to the left **Main Menu** and select **Clusters**.
-
-Select your cluster to view its **Overview** tab. When the application is deployed and ready for network traffic,
-indicated in the **Services** field, Palette exposes the service URL. Click on the URL for port **:8080** to access the
-Hello Universe application.
-
-![Cluster details page with service URL highlighted](/getting-started/getting-started_deploy-k8s-cluster_service_url.webp)
-
-
-
-:::warning
-
-It can take up to three minutes for DNS to properly resolve the public load balancer URL. We recommend waiting a few
-moments before clicking on the service URL to prevent the browser from caching an unresolved DNS request.
-
-:::
-
-
-
-![Image that shows the cluster overview of the Hello Universe Frontend Cluster](/getting-started/getting-started_deploy-k8s-cluster_hello-universe-without-api.webp)
-
-Welcome to Hello Universe, a demo application to help you learn more about Palette and its features. Feel free to click
-on the logo to increase the counter and for a fun image change.
-
-You have deployed your first application to a cluster managed by Palette. Your first application is a single container
-application with no upstream dependencies.
-
-## Cleanup
-
-Use the following steps to remove all the resources you created for the tutorial.
-
-To remove the cluster, navigate to the left **Main Menu** and click on **Clusters**. Select the cluster you want to
-delete to access its details page.
-
-Click on **Settings** to expand the menu, and select **Delete Cluster**.
-
-![Delete cluster](/getting-started/getting-started_deploy-k8s-cluster_delete-cluster-button.webp)
-
-You will be prompted to type in the cluster name to confirm the delete action. Type in the cluster name to proceed with
-the delete step. The deletion process takes several minutes to complete.
-
-
-
-:::info
-
-If a cluster remains in the delete phase for over 15 minutes, it becomes eligible for a force delete. To trigger a force
-delete, navigate to the cluster’s details page, click on **Settings**, then select **Force Delete Cluster**. Palette
-automatically removes clusters stuck in the cluster deletion phase for over 24 hours.
-
-:::
-
-
-
-Once the cluster is deleted, navigate to the left **Main Menu** and click on **Profiles**. Find the cluster profile you
-created and click on the **three-dot Menu** to display the **Delete** button. Select **Delete** and confirm the
-selection to remove the cluster profile.
-
-## Wrap-Up
-
-In this tutorial, you used the cluster profile you created in the previous
-[Create a Cluster Profile](./create-cluster-profile.md) tutorial to deploy a host cluster onto your preferred cloud
-service provider. After the cluster deployed, you verified the Hello Universe application was successfully deployed.
-
-We recommend that you continue to the [Deploy Cluster Profile Updates](./update-k8s-cluster.md) tutorial to learn how to
-update your host cluster.
diff --git a/docs/docs-content/getting-started/gcp/_category_.json b/docs/docs-content/getting-started/gcp/_category_.json
new file mode 100644
index 0000000000..c82af61e53
--- /dev/null
+++ b/docs/docs-content/getting-started/gcp/_category_.json
@@ -0,0 +1,3 @@
+{
+ "position": 60
+}
diff --git a/docs/docs-content/getting-started/gcp/create-cluster-profile.md b/docs/docs-content/getting-started/gcp/create-cluster-profile.md
new file mode 100644
index 0000000000..5b0c8975a1
--- /dev/null
+++ b/docs/docs-content/getting-started/gcp/create-cluster-profile.md
@@ -0,0 +1,95 @@
+---
+sidebar_label: "Create a Cluster Profile"
+title: "Create a Cluster Profile"
+description: "Learn to create a full cluster profile in Palette."
+icon: ""
+hide_table_of_contents: false
+sidebar_position: 20
+tags: ["getting-started", "gcp"]
+---
+
+Palette offers profile-based management for Kubernetes, enabling consistency, repeatability, and operational efficiency
+across multiple clusters. A cluster profile allows you to customize the cluster infrastructure stack, allowing you to
+choose the desired Operating System (OS), Kubernetes, Container Network Interfaces (CNI), Container Storage Interfaces
+(CSI). You can further customize the stack with add-on application layers. For more information about cluster profile
+types, refer to [Cluster Profiles](../cluster-profiles.md).
+
+In this tutorial, you create a full profile directly from the Palette dashboard. Then, you add a layer to your cluster
+profile by using a [community pack](../../integrations/community_packs.md) to deploy a web application.
+
+## Prerequisites
+
+- Follow the steps described in the [Set up Palette with GCP](./setup.md) guide to authenticate Palette for use with
+ your GCP cloud account.
+- Ensure that the [Palette Community Registry](../../registries-and-packs/registries/registries.md#default-registries)
+ is available in your Palette environment. Refer to the
+ [Add OCI Packs Registry](../../registries-and-packs/registries/oci-registry/add-oci-packs.md) guide for additional
+ guidance.
+
+## Create a Full Cluster Profile
+
+Log in to [Palette](https://console.spectrocloud.com) and navigate to the left **Main Menu**. Select **Profiles** to
+view the cluster profile page. You can view the list of available cluster profiles. To create a cluster profile, click
+on **Add Cluster Profile**.
+
+![View of the cluster Profiles page](/getting-started/getting-started_create-cluster-profile_profile_list_view.webp)
+
+Follow the wizard to create a new profile.
+
+In the **Basic Information** section, assign the name **gcp-profile**, provide a profile description, select the type as
+**Full**, and assign the tag **env:gcp**. You can leave the version empty if you want to. Just be aware that the version
+defaults to **1.0.0**. Click on **Next**.
+
+Cloud Type allows you to choose the infrastructure provider with which this cluster profile is associated. Select
+**Google Cloud** and click on **Next**.
+
+The **Profile Layers** step is where you specify the packs that compose the profile. There are four required
+infrastructure packs and several optional add-on packs you can choose from. Every pack requires you to select the **Pack
+Type**, **Registry**, and **Pack Name**.
+
+For this tutorial, use the following packs:
+
+| Pack Name | Version | Layer |
+| -------------- | ------- | ---------------- |
+| ubuntu-gcp LTS | 22.4.x | Operating System |
+| Kubernetes | 1.27.x | Kubernetes |
+| cni-calico | 3.26.x | Network |
+| csi-gcp-driver | 1.8.x | Storage |
+
+As you fill out the information for each layer, click on **Next** to proceed to the next layer.
+
+Click on **Confirm** after you have completed filling out all the core layers.
+
+![GCP cluster profile view](/getting-started/gcp/getting-started_create-cluster-profile_cluster_profile_stack.webp)
+
+The review section gives an overview of the cluster profile configuration you selected. Click on **Finish
+Configuration** to create the cluster profile.
+
+## Add a Pack
+
+Navigate to the left **Main Menu** and select **Profiles**. Select the cluster profile you created earlier.
+
+Click on **Add New Pack** at the top of the page.
+
+Select the **Palette Community Registry** from the **Registry** dropdown. Then, click on the latest **Hello Universe**
+pack with version **v1.1.2**.
+
+![Screenshot of hello universe pack](/getting-started/gcp/getting-started_create-cluster-profile_add-pack.webp)
+
+Once you have selected the pack, Palette will display its README, which provides you with additional guidance for usage
+and configuration options. The pack you added will deploy the
+[_hello-universe_](https://github.com/spectrocloud/hello-universe) application.
+
+![Screenshot of pack readme](/getting-started/gcp/getting-started_create-cluster-profile_pack-readme.webp)
+
+Click on **Confirm & Create** to save the manifest. Click on **Save Changes** to save this new layer to the cluster
+profile.
+
+## Wrap-Up
+
+In this tutorial, you created a cluster profile, which is a template that contains the core layers required to deploy a
+host cluster using Amazon Web Services (AWS), Microsoft Azure, or Google Cloud Platform (GCP) cloud providers. You added
+a community pack to your profile to deploy a custom workload.
+
+We recommend that you continue to the [Deploy a Cluster](./deploy-k8s-cluster.md) tutorial to deploy this cluster
+profile to a host cluster onto your preferred cloud service provider.
diff --git a/docs/docs-content/getting-started/gcp/deploy-k8s-cluster-tf.md b/docs/docs-content/getting-started/gcp/deploy-k8s-cluster-tf.md
new file mode 100644
index 0000000000..91cb37031d
--- /dev/null
+++ b/docs/docs-content/getting-started/gcp/deploy-k8s-cluster-tf.md
@@ -0,0 +1,555 @@
+---
+sidebar_label: "Deploy a Cluster with Terraform"
+title: "Deploy a Cluster with Terraform"
+description: "Learn to deploy a Palette host cluster with Terraform."
+icon: ""
+hide_table_of_contents: false
+sidebar_position: 50
+tags: ["getting-started", "gcp"]
+---
+
+The [Spectro Cloud Terraform](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs) provider
+enables you to create and manage Palette resources in a codified manner by leveraging Infrastructure as Code (IaC). Some
+notable reasons why you would want to utilize IaC are:
+
+- The ability to automate infrastructure.
+
+- Improved collaboration in making infrastructure changes.
+
+- Self-documentation of infrastructure through code.
+
+- Allows tracking all infrastructure in a single source of truth.
+
+If want to become more familiar with Terraform, we recommend you check out the
+[Terraform](https://developer.hashicorp.com/terraform/intro) learning resources from HashiCorp.
+
+This tutorial will teach you how to deploy a host cluster with Terraform using Google Cloud Platform (GCP). You will
+learn about _Cluster Mode_ and _Cluster Profiles_ and how these components enable you to deploy customized applications
+to Kubernetes with minimal effort using the
+[Spectro Cloud Terraform](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs) provider.
+
+## Prerequisites
+
+To complete this tutorial, you will need the following items
+
+- Basic knowledge of containers.
+- [Docker Desktop](https://www.docker.com/products/docker-desktop/), [Podman](https://podman.io/docs/installation) or
+ another container management tool.
+
+- Follow the steps described in the [Set up Palette with GCP](./setup.md) guide to authenticate Palette for use with
+ your GCP cloud account.
+
+## Set Up Local Environment
+
+You can clone the tutorials repository locally or follow along by downloading a Docker image that contains the tutorial
+code and all dependencies.
+
+
+
+:::warning
+
+If you choose to clone the repository instead of using the tutorial container make sure you have Terraform v1.4.0 or
+greater installed.
+
+:::
+
+
+
+
+
+
+
+Ensure Docker Desktop on your local machine is available. Use the following command and ensure you receive an output
+displaying the version number.
+
+```bash
+docker version
+```
+
+Download the tutorial image to your local machine.
+
+```bash
+docker pull ghcr.io/spectrocloud/tutorials:1.1.3
+```
+
+Next, start the container, and open a bash session into it.
+
+```shell
+docker run --name tutorialContainer --interactive --tty ghcr.io/spectrocloud/tutorials:1.1.3 bash
+```
+
+Navigate to the tutorial code.
+
+```shell
+cd /terraform/iaas-cluster-deployment-tf
+```
+
+
+
+
+
+If you are not running a Linux operating system, create and start the Podman Machine in your local environment.
+Otherwise, skip this step.
+
+```bash
+podman machine init
+podman machine start
+```
+
+Use the following command and ensure you receive an output displaying the installation information.
+
+```bash
+podman info
+```
+
+Download the tutorial image to your local machine.
+
+```bash
+podman pull ghcr.io/spectrocloud/tutorials:1.1.3
+```
+
+Next, start the container, and open a bash session into it.
+
+```shell
+podman run --name tutorialContainer --interactive --tty ghcr.io/spectrocloud/tutorials:1.1.3 bash
+```
+
+Navigate to the tutorial code.
+
+```shell
+cd /terraform/iaas-cluster-deployment-tf
+```
+
+
+
+
+
+Open a terminal window and download the tutorial code from GitHub.
+
+```shell
+git@github.com:spectrocloud/tutorials.git
+```
+
+Change the directory to the tutorial folder.
+
+```shell
+cd tutorials/
+```
+
+Check out the following git tag.
+
+```shell
+git checkout v1.1.3
+```
+
+Change the directory to the tutorial code.
+
+```shell
+cd terraform/iaas-cluster-deployment-tf/
+```
+
+
+
+
+
+## Create an API Key
+
+Before you can get started with the Terraform code, you need a Spectro Cloud API key.
+
+To create an API key, log in to [Palette](https://console.spectrocloud.com) and click on the user **User Menu** and
+select **My API Keys**.
+
+![Image that points to the user drop-down Menu and points to the API key link](/tutorials/deploy-clusters/clusters_public-cloud_deploy-k8s-cluster_create_api_key.webp)
+
+Next, click on **Add New API Key**. Fill out the required input field, **API Key Name**, and the **Expiration Date**.
+Click on **Confirm** to create the API key. Copy the key value to your clipboard, as you will use it shortly.
+
+
+
+In your terminal session, issue the following command to export the API key as an environment variable.
+
+
+
+```shell
+export SPECTROCLOUD_APIKEY=YourAPIKeyHere
+```
+
+The [Spectro Cloud Terraform](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs) provider
+requires credentials to interact with the Palette API. The Spectro Cloud Terraform provider will use the environment
+variable to authenticate with the Spectro Cloud API endpoint.
+
+## Resources Review
+
+To help you get started with Terraform, the tutorial code is structured to support deploying a cluster to either Azure,
+GCP, or AWS. Before you deploy a host cluster to your target provider, take a few moments to review the following files
+in the folder structure.
+
+- **provider.tf** - This file contains the Terraform providers that are used to support the deployment of the cluster.
+
+- **inputs.tf** - This file contains all the Terraform variables for the deployment logic.
+
+- **data.tf** - This file contains all the query resources that perform read actions.
+
+- **cluster_profiles.tf** - This file contains the cluster profile definitions for each cloud provider.
+
+- **clusters.tf** - This file has all the required cluster configurations to deploy a host cluster to one of the cloud
+ providers.
+
+- **terraform.tfvars** - Use this file to customize the deployment and target a specific cloud provider. This is the
+ primary file you will modify.
+
+- **outputs.tf** - This file contains content that will be output in the terminal session upon a successful Terraform
+ `apply` action.
+
+The following section allows you to review the core Terraform resources more closely.
+
+#### Provider
+
+The **provider.tf** file contains the Terraform providers and their respective versions. The tutorial uses two
+providers - the Spectro Cloud Terraform provider and the TLS Terraform provider. Note how the project name is specified
+in the `provider "spectrocloud" {}` block. You can change the target project by changing the value specified in the
+`project_name` parameter.
+
+```hcl
+terraform {
+ required_providers {
+ spectrocloud = {
+ version = ">= 0.13.1"
+ source = "spectrocloud/spectrocloud"
+ }
+ tls = {
+ source = "hashicorp/tls"
+ version = "4.0.4"
+ }
+ }
+}
+
+provider "spectrocloud" {
+ project_name = "Default"
+}
+```
+
+The next file you should become familiar with is the **cluster-profiles.tf** file.
+
+The Spectro Cloud Terraform provider has several resources available for use. When creating a cluster profile, use
+`spectrocloud_cluster_profile`. This resource can be used to customize all layers of a cluster profile. You can specify
+all the different packs and versions to use and add a manifest or Helm chart.
+
+In the **cluster-profiles.tf** file, the cluster profile resource is declared three times. Each instance of the resource
+is for a specific cloud provider. Using the AWS cluster profile as an example, note how the **cluster-profiles.tf** file
+uses `pack {}` blocks to specify each layer of the profile. The order in which you arrange contents of the `pack {}`
+blocks plays an important role, as each layer maps to the core infrastructure in a cluster profile.
+
+The first listed `pack {}` block must be the OS, followed by Kubernetes, the container network interface, and the
+container storage interface. The first `pack {}` block in the list equates to the bottom layer of the cluster profile.
+Ensure you define the bottom layer of the cluster profile - the OS layer - first in the list of `pack {}` blocks.
+
+```hcl
+resource "spectrocloud_cluster_profile" "gcp-profile" {
+ count = var.deploy-gcp ? 1 : 0
+
+ name = "tf-gcp-profile"
+ description = "A basic cluster profile for GCP"
+ tags = concat(var.tags, ["env:azure"])
+ cloud = "gcp"
+ type = "cluster"
+
+ pack {
+ name = data.spectrocloud_pack.gcp_ubuntu.name
+ tag = data.spectrocloud_pack.gcp_ubuntu.version
+ uid = data.spectrocloud_pack.gcp_ubuntu.id
+ values = data.spectrocloud_pack.gcp_ubuntu.values
+ }
+
+ pack {
+ name = data.spectrocloud_pack.gcp_k8s.name
+ tag = data.spectrocloud_pack.gcp_k8s.version
+ uid = data.spectrocloud_pack.gcp_k8s.id
+ values = data.spectrocloud_pack.gcp_k8s.values
+ }
+
+ pack {
+ name = data.spectrocloud_pack.gcp_cni.name
+ tag = data.spectrocloud_pack.gcp_cni.version
+ uid = data.spectrocloud_pack.gcp_cni.id
+ values = data.spectrocloud_pack.gcp_cni.values
+ }
+
+ pack {
+ name = data.spectrocloud_pack.gcp_csi.name
+ tag = data.spectrocloud_pack.gcp_csi.version
+ uid = data.spectrocloud_pack.gcp_csi.id
+ values = data.spectrocloud_pack.gcp_csi.values
+ }
+
+ pack {
+ name = "hello-universe"
+ type = "manifest"
+ tag = "1.0.0"
+ values = ""
+ manifest {
+ name = "hello-universe"
+ content = file("manifests/hello-universe.yaml")
+ }
+ }
+}
+```
+
+The last `pack {}` block contains a manifest file with all the Kubernetes configurations for the
+[Hello Universe](https://github.com/spectrocloud/hello-universe) application. Including the application in the profile
+ensures the application is installed during cluster deployment. If you wonder what all the data resources are for, head
+to the next section to review them.
+
+You may have noticed that each `pack {}` block contains references to a data resource.
+
+```hcl
+ pack {
+ name = data.spectrocloud_pack.gcp_csi.name
+ tag = data.spectrocloud_pack.gcp_csi.version
+ uid = data.spectrocloud_pack.gcp_csi.id
+ values = data.spectrocloud_pack.gcp_csi.values
+ }
+```
+
+[Data resources](https://developer.hashicorp.com/terraform/language/data-sources) are used to perform read actions in
+Terraform. The Spectro Cloud Terraform provider exposes several data resources to help you make your Terraform code more
+dynamic. The data resource used in the cluster profile is `spectrocloud_pack`. This resource enables you to query
+Palette for information about a specific pack. You can get information about the pack using the data resource such as
+unique ID, registry ID, available versions, and the pack's YAML values.
+
+Below is the data resource used to query Palette for information about the Kubernetes pack for version `1.27.5`.
+
+```hcl
+data "spectrocloud_pack" "gcp_k8s" {
+ name = "kubernetes"
+ version = "1.27.5"
+ registry_uid = data.spectrocloud_registry.public_registry.id
+}
+```
+
+Using the data resource, you avoid manually typing in the parameter values required by the cluster profile's `pack {}`
+block.
+
+The **clusters.tf** file contains the definitions for deploying a host cluster to one of the cloud providers. To create
+a host cluster, you must use a cluster resource for the cloud provider you are targeting.
+
+In this tutorial, the following Terraform cluster resources are used.
+
+| Terraform Resource | Platform |
+| ------------------------------------------------------------------------------------------------------------------------------------- | -------- |
+| [`spectrocloud_cluster_aws`](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/cluster_aws) | AWS |
+| [`spectrocloud_cluster_azure`](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/cluster_azure) | Azure |
+| [`spectrocloud_cluster_gcp`](https://registry.terraform.io/providers/spectrocloud/spectrocloud/latest/docs/resources/cluster_gcp) | GCP |
+
+Using the `spectrocloud_cluster_gcp` resource in this tutorial as an example, note how the resource accepts a set of
+parameters. When deploying a cluster, you can change the same parameters in the Palette user interface (UI). You can
+learn more about each parameter by reviewing the resource documentation page hosted in the Terraform registry.
+
+```hcl
+resource "spectrocloud_cluster_gcp" "gcp-cluster" {
+ count = var.deploy-gcp ? 1 : 0
+
+ name = "gcp-cluster"
+ tags = concat(var.tags, ["env:gcp"])
+ cloud_account_id = data.spectrocloud_cloudaccount_gcp.account[0].id
+
+ cloud_config {
+ project = var.gcp_project_name
+ region = var.gcp-region
+ }
+
+ cluster_profile {
+ id = spectrocloud_cluster_profile.gcp-profile[0].id
+ }
+
+ machine_pool {
+ control_plane = true
+ control_plane_as_worker = true
+ name = "master-pool"
+ count = var.gcp_master_nodes.count
+ instance_type = var.gcp_master_nodes.instance_type
+ disk_size_gb = var.gcp_master_nodes.disk_size_gb
+ azs = var.gcp_master_nodes.availability_zones
+ }
+
+ machine_pool {
+ name = "worker-pool"
+ count = var.gcp_worker_nodes.count
+ instance_type = var.gcp_worker_nodes.instance_type
+ disk_size_gb = var.gcp_worker_nodes.disk_size_gb
+ azs = var.gcp_worker_nodes.availability_zones
+ }
+
+ timeouts {
+ create = "30m"
+ delete = "15m"
+ }
+}
+```
+
+To deploy a cluster using Terraform, you must first modify the **terraform.tfvars** file. Open the **terraform.tfvars**
+file in the editor of your choice, and locate the cloud provider you will use to deploy a host cluster.
+
+To simplify the process, we added a toggle variable in the Terraform template, that you can use to select the deployment
+environment. Each cloud provider has a section in the template that contains all the variables you must populate.
+Variables to populate are identified with `REPLACE_ME`.
+
+In the example GCP section below, you would change `deploy-gcp = false` to `deploy-gcp = true` to deploy to GCP.
+Additionally, you would replace all the variables with a value `REPLACE_ME`. You can also update the values for nodes in
+the control plane pool or worker pool.
+
+```hcl
+###########################
+# GCP Deployment Settings
+############################
+deploy-gcp = false # Set to true to deploy to GCP
+
+gcp-cloud-account-name = "REPLACE_ME"
+gcp-region = "REPLACE_ME"
+gcp_project_name = "REPLACE_ME"
+gcp_master_nodes = {
+ count = "1"
+ control_plane = true
+ instance_type = "n1-standard-4"
+ disk_size_gb = "60"
+ availability_zones = ["REPLACE_ME"] # If you want to deploy to multiple AZs, add them here. Example: ["us-central1-a", "us-central1-b"]
+}
+
+gcp_worker_nodes = {
+ count = "1"
+ control_plane = false
+ instance_type = "n1-standard-4"
+ disk_size_gb = "60"
+ availability_zones = ["REPLACE_ME"] # If you want to deploy to multiple AZs, add them here. Example: ["us-central1-a", "us-central1-b"]
+}
+```
+
+When you are done making the required changes, issue the following command to initialize Terraform.
+
+```shell
+terraform init
+```
+
+Next, issue the `plan` command to preview the changes.
+
+```shell
+terraform plan
+```
+
+Output:
+
+```shell
+Plan: 2 to add, 0 to change, 0 to destroy.
+```
+
+If you change the desired cloud provider's toggle variable to `true,` you will receive an output message that two new
+resources will be created. The two resources are your cluster profile and the host cluster.
+
+To deploy all the resources, use the `apply` command.
+
+```shell
+terraform apply -auto-approve
+```
+
+To check out the cluster profile creation in Palette, log in to [Palette](https://console.spectrocloud.com), and from
+the left **Main Menu** click on **Profiles**. Locate the cluster profile with the name `tf-gcp-profile`. Click on the
+cluster profile to review its details, such as layers, packs, and versions.
+
+![A view of the cluster profile](/getting-started/gcp/getting-started_deploy-k8s-cluster-tf_profile_review.webp)
+
+You can also check the cluster creation process by navigating to the left **Main Menu** and selecting **Clusters**.
+
+![Update the cluster](/getting-started/gcp/getting-started_deploy-k8s-cluster_new_cluster.webp)
+
+Select your cluster to review its details page, which contains the status, cluster profile, event logs, and more.
+
+The cluster deployment may take several minutes depending on the cloud provider, node count, node sizes used, and the
+cluster profile. You can learn more about the deployment progress by reviewing the event log. Click on the **Events**
+tab to check the event log.
+
+![Update the cluster](/getting-started/gcp/getting-started_deploy-k8s-cluster_event_log.webp)
+
+## Verify the Application
+
+When the cluster deploys, you can access the Hello Universe application. From the cluster's **Overview** page, click on
+the URL for port **:8080** next to the **hello-universe-service** in the **Services** row. This URL will take you to the
+application landing page.
+
+:::warning
+
+It can take up to three minutes for DNS to properly resolve the public load balancer URL. We recommend waiting a few
+moments before clicking on the service URL to prevent the browser from caching an unresolved DNS request.
+
+:::
+
+![Deployed application](/getting-started/getting-started_deploy-k8s-cluster_hello-universe-without-api.webp)
+
+Welcome to Hello Universe, a demo application to help you learn more about Palette and its features. Feel free to click
+on the logo to increase the counter and for a fun image change.
+
+You have deployed your first application to a cluster managed by Palette through Terraform. Your first application is a
+single container application with no upstream dependencies.
+
+## Cleanup
+
+Use the following steps to clean up the resources you created for the tutorial. Use the `destroy` command to remove all
+the resources you created through Terraform.
+
+```shell
+terraform destroy --auto-approve
+```
+
+Output:
+
+```shell
+Destroy complete! Resources: 2 destroyed.
+```
+
+:::info
+
+If a cluster remains in the delete phase for over 15 minutes, it becomes eligible for force delete. To trigger a force
+delete, navigate to the cluster’s details page and click on **Settings**. Click on **Force Delete Cluster** to delete
+the cluster. Palette automatically removes clusters stuck in the cluster deletion phase for over 24 hours.
+
+:::
+
+If you are using the tutorial container and want to exit the container, type `exit` in your terminal session and press
+the **Enter** key. Next, issue the following command to stop the container.
+
+
+
+
+
+```shell
+docker stop tutorialContainer && \
+docker rmi --force ghcr.io/spectrocloud/tutorials:1.1.3
+```
+
+
+
+
+
+```shell
+podman stop tutorialContainer && \
+podman rmi --force ghcr.io/spectrocloud/tutorials:1.1.3
+```
+
+
+
+
+
+## Wrap-Up
+
+In this tutorial, you created a cluster profile, which is a template that contains the core layers required to deploy a
+host cluster. You then deployed a host cluster to GCP using Terraform.
+
+We encourage you to check out the [Deploy an Application using Palette Dev Engine](../../devx/apps/deploy-app.md)
+tutorial to learn more about Palette. Palette Dev Engine can help you deploy applications more quickly through the usage
+of [virtual clusters](../../glossary-all.md#palette-virtual-cluster). Feel free to check out the reference links below
+to learn more about Palette.
+
+- [Palette Modes](../../introduction/palette-modes.md)
+
+- [Palette Clusters](../../clusters/clusters.md)
+
+- [Hello Universe GitHub repository](https://github.com/spectrocloud/hello-universe)
diff --git a/docs/docs-content/getting-started/gcp/deploy-k8s-cluster.md b/docs/docs-content/getting-started/gcp/deploy-k8s-cluster.md
new file mode 100644
index 0000000000..8fcd5543ba
--- /dev/null
+++ b/docs/docs-content/getting-started/gcp/deploy-k8s-cluster.md
@@ -0,0 +1,176 @@
+---
+sidebar_label: "Deploy a Cluster"
+title: "Deploy a Cluster"
+description: "Learn to deploy a Palette host cluster."
+icon: ""
+hide_table_of_contents: false
+sidebar_position: 30
+tags: ["getting-started", "gcp"]
+---
+
+This tutorial will teach you how to deploy a host cluster with Palette using Google Cloud Platform (GCP). You will learn
+about _Cluster Mode_ and _Cluster Profiles_ and how these components enable you to deploy customized applications to
+Kubernetes with minimal effort.
+
+As you navigate the tutorial, refer to this diagram to help you understand how Palette uses a cluster profile as a
+blueprint for the host cluster you deploy. Palette clusters have the same node pools you may be familiar with: _control
+plane nodes_ and _worker nodes_ where you will deploy applications. The result is a host cluster that Palette manages.
+
+![A view of Palette managing the Kubernetes lifecycle](/getting-started/getting-started_deploy-k8s-cluster_application.webp)
+
+## Prerequisites
+
+To complete this tutorial, you will need the following.
+
+- Follow the steps described in the [Set up Palette with GCP](./setup.md) guide to authenticate Palette for use with
+ your GCP cloud account.
+
+- A Palette cluster profile. Follow the [Create a Cluster Profile](./create-cluster-profile.md) tutorial to create the
+ required GCP cluster profile.
+
+## Deploy a Cluster
+
+The following steps will guide you through deploying the cluster infrastructure.
+
+Navigate to the left **Main Menu** and select **Cluster**. Click on **Add New Cluster**.
+
+![Palette clusters overview page](/getting-started/getting-started_deploy-k8s-cluster_new_cluster.webp)
+
+Click on **Deploy New Cluster** to access the cluster deployment wizard. Select **Google Cloud** and click the **Start
+Google Cloud Configuration** button. Use the following steps to create a host cluster in Google Cloud.
+
+In the **Basic information** section, insert the general information about the cluster, such as the **Cluster name**,
+**Description**, **Tags**, and **Cloud account**. Click on **Next**.
+
+![Palette clusters basic information](/getting-started/gcp/getting-started_deploy-k8s-cluster_basic_info.webp)
+
+A list is displayed of available profiles you can choose to deploy to GCP. Select the cluster profile you created in the
+[Create a Cluster Profile](./create-cluster-profile.md) tutorial, named **gcp-profile**, and click on **Next**.
+
+The **Parameters** section displays all the layers in the cluster profile.
+
+![Palette clusters basic information](/getting-started/gcp/getting-started_deploy-k8s-cluster_clusters_parameters.webp)
+
+Each layer has a pack manifest file with the deploy configurations. The pack manifest file is in a YAML format. Each
+pack contains a set of default values. You can change the manifest values if needed. Click on **Next** to proceed.
+
+The **Cluster config** section allows you to select the **Project**, **Region**, and **SSH Key** to apply to the host
+cluster. All clusters require you to assign an SSH key. Refer to the [SSH Keys](/clusters/cluster-management/ssh-keys)
+guide for information about uploading an SSH key.
+
+After selecting a **Project**, **Region**, and **SSH Key**, click on **Next**.
+
+The **Nodes config** section allows you to configure the nodes that make up the control plane and worker nodes of the
+host cluster.
+
+Before you proceed to the next section, review the following parameters.
+
+Refer to the [Node Pool](../../clusters/cluster-management/node-pool.md) guide for a list and description of parameters.
+
+Before you proceed to next section, review the following parameters.
+
+- **Number of nodes in the pool** - This option sets the number of control plane or worker nodes in the control plane or
+ worker pool. For this tutorial, set the count to one for the control plane pool and two for the worker pool.
+
+- **Allow worker capability** - This option allows the control plane node to also accept workloads. This is useful when
+ spot instances are used as worker nodes. You can check this box if you want to.
+
+- **Instance Type** - Select the compute type for the node pool. Each instance type displays the amount of CPU, RAM, and
+ hourly cost of the instance. Select **n1-standard-4**.
+
+- **Disk size** - Set the disk size to **60**.
+
+- **Availability zones** - Used to specify the availability zones in which the node pool can place nodes. Select an
+ availability zone.
+
+![Palette clusters nodes configuration](/getting-started/gcp/getting-started_deploy-k8s-cluster_cluster_nodes_config.webp)
+
+Select **Next** to proceed with the cluster deployment.
+
+In the **Settings** section, you can configure advanced options such as when to patch the OS, enable security scans,
+manage backups, add Role-Based Access Control (RBAC) bindings, and more.
+
+For this tutorial, you can use the default settings. Click on **Validate** to continue.
+
+The **Review** section allows you to review the cluster configuration before deploying the cluster. Review all the
+settings and click on **Finish Configuration** to deploy the cluster.
+
+![Newly created GCP cluster](/getting-started/gcp/getting-started_deploy-k8s-cluster_profile_review.webp)
+
+Navigate to the left **Main Menu** and select **Clusters**.
+
+![Update the cluster](/getting-started/gcp/getting-started_deploy-k8s-cluster_new_cluster.webp)
+
+The cluster deployment process can take 15 to 30 min. The deployment time varies depending on the cloud provider,
+cluster profile, cluster size, and the node pool configurations provided. You can learn more about the deployment
+progress by reviewing the event log. Click on the **Events** tab to view the log.
+
+![Update the cluster](/getting-started/gcp/getting-started_deploy-k8s-cluster_event_log.webp)
+
+## Verify the Application
+
+Navigate to the left **Main Menu** and select **Clusters**.
+
+Select your cluster to view its **Overview** tab. When the application is deployed and ready for network traffic,
+indicated in the **Services** field, Palette exposes the service URL. Click on the URL for port **:8080** to access the
+Hello Universe application.
+
+![Cluster details page with service URL highlighted](/getting-started/gcp/getting-started_deploy-k8s-cluster_service_url.webp)
+
+
+
+:::warning
+
+It can take up to three minutes for DNS to properly resolve the public load balancer URL. We recommend waiting a few
+moments before clicking on the service URL to prevent the browser from caching an unresolved DNS request.
+
+:::
+
+
+
+![Image that shows the cluster overview of the Hello Universe Frontend Cluster](/getting-started/getting-started_deploy-k8s-cluster_hello-universe-without-api.webp)
+
+Welcome to Hello Universe, a demo application to help you learn more about Palette and its features. Feel free to click
+on the logo to increase the counter and for a fun image change.
+
+You have deployed your first application to a cluster managed by Palette. Your first application is a single container
+application with no upstream dependencies.
+
+## Cleanup
+
+Use the following steps to remove all the resources you created for the tutorial.
+
+To remove the cluster, navigate to the left **Main Menu** and click on **Clusters**. Select the cluster you want to
+delete to access its details page.
+
+Click on **Settings** to expand the menu, and select **Delete Cluster**.
+
+![Delete cluster](/getting-started/gcp/getting-started_deploy-k8s-cluster_delete-cluster-button.webp)
+
+You will be prompted to type in the cluster name to confirm the delete action. Type in the cluster name to proceed with
+the delete step. The deletion process takes several minutes to complete.
+
+
+
+:::info
+
+If a cluster remains in the delete phase for over 15 minutes, it becomes eligible for a force delete. To trigger a force
+delete, navigate to the cluster’s details page, click on **Settings**, then select **Force Delete Cluster**. Palette
+automatically removes clusters stuck in the cluster deletion phase for over 24 hours.
+
+:::
+
+
+
+Once the cluster is deleted, navigate to the left **Main Menu** and click on **Profiles**. Find the cluster profile you
+created and click on the **three-dot Menu** to display the **Delete** button. Select **Delete** and confirm the
+selection to remove the cluster profile.
+
+## Wrap-Up
+
+In this tutorial, you used the cluster profile you created in the previous
+[Create a Cluster Profile](./create-cluster-profile.md) tutorial to deploy a host cluster onto your preferred cloud
+service provider. After the cluster deployed, you verified the Hello Universe application was successfully deployed.
+
+We recommend that you continue to the [Deploy Cluster Profile Updates](./update-k8s-cluster.md) tutorial to learn how to
+update your host cluster.
diff --git a/docs/docs-content/getting-started/gcp/gcp.md b/docs/docs-content/getting-started/gcp/gcp.md
new file mode 100644
index 0000000000..b77bbd6592
--- /dev/null
+++ b/docs/docs-content/getting-started/gcp/gcp.md
@@ -0,0 +1,52 @@
+---
+sidebar_label: "Deploy a Cluster to GCP"
+title: "Deploy a Cluster to Google Cloud Platform (GCP)"
+description: "Spectro Cloud Getting Started with GCP"
+hide_table_of_contents: false
+sidebar_custom_props:
+ icon: ""
+tags: ["getting-started", "gcp"]
+---
+
+Palette supports integration with [Google Cloud Platform](https://cloud.google.com/). You can deploy and manage
+[Host Clusters](../../glossary-all.md#host-cluster) in GCP.
+
+## Get Started
+
+In this section, you learn how to create a cluster profile. Then, you deploy a cluster to AWS by using Palette. Once
+your cluster is deployed, you can update it using cluster profile updates.
+
+
diff --git a/docs/docs-content/getting-started/gcp/setup.md b/docs/docs-content/getting-started/gcp/setup.md
new file mode 100644
index 0000000000..d14f6cd2eb
--- /dev/null
+++ b/docs/docs-content/getting-started/gcp/setup.md
@@ -0,0 +1,58 @@
+---
+sidebar_label: "Set up Palette"
+title: "Set up Palette with GCP"
+description: "Learn how to set up Palette with GCP."
+icon: ""
+hide_table_of_contents: false
+sidebar_position: 10
+tags: ["getting-started", "gcp"]
+---
+
+In this guide, you will learn how to set up Palette for use with your AWS cloud account. These steps are required in
+order to authenticate Palette and allow it to deploy host clusters.
+
+## Prerequisites
+
+The prerequisite steps to getting started with Palette on GCP are as follows.
+
+- Sign up to [Palette](https://www.spectrocloud.com/get-started).
+
+ - Your Palette account role must have the `clusterProfile.create` permission to create a cluster profile. Refer to the
+ [Roles and Permissions](../../user-management/palette-rbac/project-scope-roles-permissions.md#cluster-profile-admin)
+ documentation for more information.
+
+- Sign up to a public cloud account from [GCP](https://cloud.google.com/docs/get-started).
+
+- Access to a terminal window.
+
+- The utility `ssh-keygen` or similar SSH key generator software.
+
+## Enablement
+
+Palette needs access to your GCP cloud account in order to create and manage GCP clusters and resources.
+
+### Add Cloud Account
+
+
+
+### Create and Upload an SSH Key
+
+
+
+## Validate
+
+You can verify your account is added.
+
+1. Log in to [Palette](https://console.spectrocloud.com).
+
+2. From the left **Main Menu**, select **Tenant Settings**.
+
+3. Next, on the **Tenant Settings Menu**, select **Cloud Accounts**.
+
+4. The added cloud account is listed under **GCP** with all other available GCP cloud accounts.
+
+## Next Steps
+
+Now that you set up Palette for use with Google Cloud, you can start deploying Kubernetes clusters to your GCP account.
+To learn how to get started with deploying Kubernetes clusters to GCP, we recommend that you continue to the
+[Create a Cluster Profile](./create-cluster-profile.md) tutorial to create a full cluster profile for your host cluster.
diff --git a/docs/docs-content/getting-started/gcp/update-k8s-cluster.md b/docs/docs-content/getting-started/gcp/update-k8s-cluster.md
new file mode 100644
index 0000000000..f819e58512
--- /dev/null
+++ b/docs/docs-content/getting-started/gcp/update-k8s-cluster.md
@@ -0,0 +1,278 @@
+---
+sidebar_label: "Deploy Cluster Profile Updates"
+title: "Deploy Cluster Profile Updates"
+description: "Learn how to update your deployed clusters using Palette Cluster Profiles."
+icon: ""
+hide_table_of_contents: false
+sidebar_position: 40
+tags: ["getting-started", "gcp"]
+---
+
+Palette provides cluster profiles, which allow you to specify layers for your workloads using packs, Helm charts, Zarf
+packages, or cluster manifests. Packs serve as blueprints to the provisioning and deployment process, as they contain
+the versions of the container images that Palette will install for you. Cluster profiles provide consistency across
+environments during the cluster creation process, as well as when maintaining your clusters. Check out the
+[cluster profiles](../cluster-profiles.md) page to learn more. Once provisioned, there are three main ways to update
+your Palette deployments.
+
+| Method | Description | Cluster application process |
+| ------------------------ | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Cluster profile versions | Create a new version of the cluster profile with your updates. | Select the new version of the cluster profile. Apply this new profile version to the clusters you want to update. |
+| Cluster profile updates | Change the cluster profile in place. | Palette detects the difference between the provisioned resources and this profile. A pending update is available to clusters using this profile. Apply pending updates to the clusters you want to update. |
+| Cluster overrides | Change the configuration of a single deployed cluster outside its cluster profile. | Save and apply the changes you've made to your cluster. |
+
+This tutorial will teach you how to update a cluster deployed with Palette to Google Cloud Platform (GCP). You will
+explore each cluster update method and learn how to apply these changes using Palette.
+
+## Prerequisites
+
+To complete this tutorial, follow the steps described in the [Set up Palette with AWS](./setup.md) guide to authenticate
+Palette for use with your AWS cloud account.
+
+Follow the instructions of the [Deploy a Cluster](./deploy-k8s-cluster.md) tutorial to deploy a cluster with the
+[_hello-universe_](https://github.com/spectrocloud/hello-universe) application. Your cluster should be successfully
+provisioned and in a healthy state.
+
+The cluster profile name is `gcp-profile` and the cluster name is `gcp-cluster`.
+
+![Cluster details page with service URL highlighted](/getting-started/gcp/getting-started_deploy-k8s-cluster_service_url.webp)
+
+## Tag and Filter Clusters
+
+Palette provides the ability to add tags to your cluster profiles and clusters. This helps you organize and categorize
+your clusters based on your custom criteria. You can add tags during the creation process or by editing the resource
+after it has been created.
+
+Adding tags to your clusters helps you find and identify your clusters, without having to rely on cluster naming. This
+is especially important when operating with many clusters or multiple cloud deployments.
+
+Navigate to the left **Main Menu** and select **Clusters** to view your deployed clusters. Find the `gcp-cluster` you
+deployed with the _hello-universe_ application. Click on it to view its **Overview** tab.
+
+Click on the **Settings** drop-down Menu in the upper right corner and select **Cluster Settings**.
+
+Fill **service:hello-universe-frontend** in the **Tags (Optional)** input box. Click on **Save Changes**. Close the
+panel.
+
+![Image that shows how to add a cluster tag](/getting-started/gcp/getting-started_update-k8s-cluster_add-service-tag.webp)
+
+Navigate to the left **Main Menu** and select **Clusters** to view your deployed clusters. Click on **Add Filter**, then
+select the **Add custom filter** option.
+
+Use the drop-down boxes to fill in the values of the filter. Select **Tags** in the left-hand **drop-down Menu**. Select
+**is** in the middle **drop-down Menu**. Fill in **service:hello-universe-frontend** in the right-hand input box.
+
+Click on **Apply Filter**.
+
+![Image that shows how to add a frontend service filter](/getting-started/gcp/getting-started_update-k8s-cluster_apply-frontend-filter.webp)
+
+Once you apply the filter, only the `gcp-cluster` with this tag is displayed.
+
+## Version Cluster Profiles
+
+Palette supports the creation of multiple cluster profile versions using the same profile name. This provides you with
+better change visibility and control over the layers in your host clusters. Profile versions are commonly used for
+adding or removing layers and pack configuration updates.
+
+The version number of a given profile must be unique and use the semantic versioning format `major.minor.patch`. If you
+do not specify a version for your cluster profile, it defaults to **1.0.0**.
+
+Navigate to the left **Main Menu** and select **Profiles** to view the cluster profile page. Find the cluster profile
+corresponding to your _hello-universe-frontend_ cluster. It should be named `gcp-profile`. Select it to view its
+details.
+
+![Image that shows the frontend cluster profile with cluster linked to it](/getting-started/gcp/getting-started_update-k8s-cluster_profile-with-cluster.webp)
+
+The current version is displayed in the **drop-down Menu** next to the profile name. This profile has the default value
+of **1.0.0**, as you did not specify another value when you created it. The cluster profile also shows the host clusters
+that are currently deployed with this cluster profile version.
+
+Click on the version **drop-down Menu**. Select the **Create new version** option.
+
+A dialog box appears. Fill in the **Version** input with **1.1.0**. Click on **Confirm**.
+
+Palette creates a new cluster profile version and opens it. The version dropdown displays the newly created **1.1.0**
+profile. This profile version is not deployed to any host clusters.
+
+![Image that shows cluster profile version 1.1.0](/getting-started/gcp/getting-started_update-k8s-cluster_new-version-overview.webp)
+
+The version **1.1.0** has the same layers as the version **1.0.0** it was created from. Click on the **hello-universe**
+pack layer. The pack manifest appears.
+
+Click on **Presets** on the right-hand side. This pack has two configured presets:
+
+1. **Disable Hello Universe API** configures the [_hello-universe_](https://github.com/spectrocloud/hello-universe)
+ application as a standalone frontend application. This is the default preset selection.
+2. **Enable Hello Universe API** configures the [_hello-universe_](https://github.com/spectrocloud/hello-universe)
+ application as a three-tier application with a frontend, API server, and Postgres database.
+
+Select the **Enable Hello Universe API** preset. The pack manifest changes according to this preset.
+
+The pack manifest has requires two values to be replaced for the authorization token and for the database password.
+Replace these values with your own base64 encoded values. The
+[_hello-universe_](https://github.com/spectrocloud/hello-universe?tab=readme-ov-file#single-load-balancer) repository
+provides a token that you can use.
+
+Click on **Confirm Updates**. The manifest editor closes.
+
+Click on **Save Changes** to finish the configuration of this cluster profile version.
+
+Navigate to the left **Main Menu** and select **Clusters**. Filter for the cluster with the
+**service:hello-universe-frontend** tag. Select it to view its **Overview** tab.
+
+Select the **Profile** tab of this cluster. You can select a new version of your cluster profile by using the version
+dropdown.
+
+Select the **1.1.0** version.
+
+![Image that shows how to select a new profile version for the cluster](/getting-started/gcp/getting-started_update-k8s-cluster_profile-version-selection.webp)
+
+Click on **Review & Save** to confirm your profile version selection.
+
+The **Changes Summary** dialog appears to show your cluster changes. Click on **Review changes in Editor**. The pack
+manifest changes appear in the editor. Click on **Apply Changes** to deploy the new profile version.
+
+![Image that shows the profile 1.1.0 differences](/getting-started/getting-started_update-k8s-cluster_profile-version-changes.webp)
+
+:::warning
+
+Palette has backup and restore capabilities available for your mission critical workloads. Ensure that you have adequate
+backups before you make any cluster profile version changes in your production environments. You can learn more in the
+[Backup and Restore](../../clusters/cluster-management/backup-restore/backup-restore.md) section.
+
+:::
+
+Palette now makes the required changes to your cluster according to the specifications of the configured cluster profile
+version. Once your changes have completed, Palette marks your layers with the green status indicator. The Hello Universe
+three-tier application will be successfully deployed.
+
+![Image that shows completed cluster profile updates](/getting-started/gcp/getting-started_update-k8s-cluster_completed-cluster-updates.webp)
+
+Click on the URL for port **:8080** on the **ui** service to access the Hello Universe application. The landing page of
+the application indicates that it is connected to the API server.
+
+![Image that shows hello-universe with API server](/getting-started/getting-started_update-k8s-cluster_hello-universe-with-api.webp)
+
+## Roll Back Cluster Profiles
+
+One of the key advantages of using cluster profile versions is that they make it possible to maintain a copy of
+previously known working states. The ability to roll back to a previously working cluster profile in one action shortens
+the time to recovery in the event of an incident.
+
+The process to roll back to a previous version is identical to the process for applying a new version.
+
+Navigate to the left **Main Menu** and select **Clusters**. Filter for the cluster with the
+**service:hello-universe-frontend** tag. Select it to view its **Overview** tab.
+
+Select the **Profile** tab. This cluster is currently deployed using cluster profile version **1.1.0**. Select the
+option **1.0.0** in the version dropdown. This process is the reverse of what you have done in the previous section,
+[Version Cluster Profiles](#version-cluster-profiles).
+
+Click on **Review & Save** to confirm your changes. The **Changes Summary** dialog appears again.
+
+Click on **Review changes in Editor**. The editor shows that the incoming version no longer contains the three-tier
+application configuration.
+
+Click on **Apply Changes**. Select the **Overview** tab.
+
+Palette now makes the changes required for the cluster to return to the state specified in version **1.0.0** of your
+cluster profile. Once your changes have completed, Palette marks your layers with the green status indicator.
+
+Click on the URL for port **:8080** on **hello-universe-service** to access the Hello Universe application. The landing
+page indicates that the application is deployed as a standalone frontend.
+
+## Pending Updates
+
+Cluster profiles can also be updated in place, without the need to create a new cluster profile version. Palette
+monitors the state of your clusters and notifies you when updates are available for your host clusters. You may then
+choose to apply your changes at a convenient time.
+
+The previous state of the cluster profile will not be saved once it is overwritten.
+
+Navigate to the left **Main Menu** and select **Clusters**. Filter for the cluster with the tag
+**service:hello-universe-frontend**. Select it to view its **Overview** tab.
+
+Select the **Profiles** tab. Then, select the **hello-universe** pack. Change the `replicas` field to `2` on line `14`.
+Click on **Save**. The editor closes.
+
+This cluster now contains an override over its cluster profile. Palette uses the configuration you have just provided
+for the single cluster over its cluster profile and begins making the appropriate changes.
+
+Once these changes are complete, select the **Workloads** tab. Then, select the **hello-universe** namespace.
+
+Two replicas of the **hello-universe-deployment** are available, instead of the one specified by your cluster profile.
+Your override has been successfully applied.
+
+Navigate to the left **Main Menu** and select **Profiles** to view the cluster profile page. Find the cluster profile
+corresponding to your _hello-universe-frontend_ cluster, named `gcp-profile`.
+
+Click on it to view its details. Select **1.0.0** in the version dropdown.
+
+Select the **hello-universe** pack. The editor appears. Change the `replicas` field to `3` on line `14`. Click on
+**Confirm Updates**. The editor closes.
+
+Click on **Save Changes** to confirm the changes you have made to your profile.
+
+Navigate to the left **Main Menu** and select **Clusters**. Filter for the clusters with the **service** tag. Both of
+your clusters match this filter. Palette indicates that the cluster associated with the cluster profile you updated has
+updates available.
+
+![Image that shows the pending updates ](/getting-started/gcp/getting-started_update-k8s-cluster_pending-update-clusters-view.webp)
+
+Select this cluster to open its **Overview** tab. Click on **Updates** to begin the cluster update.
+
+![Image that shows the Updates button](/getting-started/gcp/getting-started_update-k8s-cluster_updates-available-button-cluster-overview.webp)
+
+A dialog appears which shows the changes made in this update. Review the changes and ensure the only change is the
+`replicas` field value. The pending update removes your cluster override and sets the `replicas` field to `3`. At this
+point, you can choose to apply the pending changes or keep it by modifying the right-hand side of the dialog.
+
+![Image that shows the available updates dialog ](/getting-started/gcp/getting-started_update-k8s-cluster_available-updates-dialog.webp)
+
+Click on **Confirm updates** once you have finished reviewing your changes.
+
+Palette updates your cluster according to cluster profile specifications. Once these changes are complete, select the
+**Workloads** tab. Then, select the **hello-universe** namespace.
+
+Three replicas of the **hello-universe-deployment** are available. The cluster profile update is now reflected by your
+cluster.
+
+## Cleanup
+
+Use the following steps to remove all the resources you created for the tutorial.
+
+To remove the cluster, navigate to the left **Main Menu** and click on **Clusters**. Select the cluster you want to
+delete to access its details page.
+
+Click on **Settings** to expand the menu, and select **Delete Cluster**.
+
+![Delete cluster](/getting-started/gcp/getting-started_deploy-k8s-cluster_delete-cluster-button.webp)
+
+You will be prompted to type in the cluster name to confirm the delete action. Type in the cluster name to proceed with
+the delete step. The deletion process takes several minutes to complete.
+
+:::info
+
+If a cluster remains in the delete phase for over 15 minutes, it becomes eligible for a force delete. To trigger a force
+delete, navigate to the cluster’s details page, click on **Settings**, then select **Force Delete Cluster**. Palette
+automatically removes clusters stuck in the cluster deletion phase for over 24 hours.
+
+:::
+
+Once the cluster is deleted, navigate to the left **Main Menu** and click on **Profiles**. Find the cluster profile you
+created and click on the **three-dot Menu** to display the **Delete** button. Select **Delete** and confirm the
+selection to remove the cluster profile.
+
+## Wrap-Up
+
+In this tutorial, you created deployed cluster profile updates. After the cluster was deployed to AWS, you updated the
+cluster profile through three different methods: create a new cluster profile version, update a cluster profile in
+place, and cluster profile overrides. After you made your changes, the Hello Universe application functioned as a
+three-tier application with a REST API backend server.
+
+Cluster profiles provide consistency during the cluster creation process, as well as when maintaining your clusters.
+They can be versioned to keep a record of previously working cluster states, giving you visibility when updating or
+rolling back workloads across your environments.
+
+We recommend that you continue to the [Deploy a Cluster with Terraform](./deploy-k8s-cluster-tf.md) page to learn about
+how you can use Palette with Terraform.
diff --git a/docs/docs-content/getting-started/getting-started.md b/docs/docs-content/getting-started/getting-started.md
index a3383a9a59..65dbf7b452 100644
--- a/docs/docs-content/getting-started/getting-started.md
+++ b/docs/docs-content/getting-started/getting-started.md
@@ -57,12 +57,6 @@ Explore more through the following pages.
buttonText: "Learn more",
relativeURL: "./introduction",
},
- {
- title: "Palette Dashboard",
- description: "Tour the Palette Project and Tenant Admin dashboards.",
- buttonText: "Learn more",
- relativeURL: "./dashboard",
- },
{
title: "Cluster Profiles",
description: "Learn about Palette Cluster Profiles and Packs.",
@@ -70,28 +64,22 @@ Explore more through the following pages.
relativeURL: "./cluster-profiles",
},
{
- title: "Create a Cluster Profile",
- description: "Create a full cluster profile in Palette.",
- buttonText: "Learn more",
- relativeURL: "./create-cluster-profile",
- },
- {
- title: "Deploy a Cluster",
- description: "Deploy a Palette host cluster in AWS, Azure or Google Cloud.",
+ title: "Deploy a Cluster to Amazon Web Services (AWS)",
+ description: "Deploy and update a Palette host cluster to AWS.",
buttonText: "Learn more",
- relativeURL: "./deploy-k8s-cluster",
+ relativeURL: "./aws",
},
{
- title: "Deploy Cluster Profile Updates",
- description: "Update your deployed clusters using Palette Cluster Profiles.",
+ title: "Deploy a Cluster to Microsoft Azure",
+ description: "Deploy and update a Palette host cluster to Azure.",
buttonText: "Learn more",
- relativeURL: "./update-k8s-cluster",
+ relativeURL: "./azure",
},
{
- title: "Deploy a Cluster with Terraform",
- description: "Deploy a Palette host cluster with Terraform.",
+ title: "Deploy a Cluster to Google Cloud Platform (GCP)",
+ description: "Deploy and update a Palette host cluster to Google Cloud.",
buttonText: "Learn more",
- relativeURL: "./terraform",
+ relativeURL: "./gcp",
},
{
title: "Additional Capabilities",
diff --git a/docs/docs-content/getting-started/dashboard.md b/docs/docs-content/introduction/dashboard.md
similarity index 99%
rename from docs/docs-content/getting-started/dashboard.md
rename to docs/docs-content/introduction/dashboard.md
index 8736f6c7c9..2c9011ae8c 100644
--- a/docs/docs-content/getting-started/dashboard.md
+++ b/docs/docs-content/introduction/dashboard.md
@@ -4,7 +4,7 @@ title: "Palette Dashboard"
description: "Explore the Spectro Cloud Palette Dashboard."
icon: ""
hide_table_of_contents: false
-sidebar_position: 20
+sidebar_position: 10
tags: ["getting-started"]
---
diff --git a/docs/docs-content/introduction/palette-modes.md b/docs/docs-content/introduction/palette-modes.md
index 9c06d8c402..eef2f4a8a5 100644
--- a/docs/docs-content/introduction/palette-modes.md
+++ b/docs/docs-content/introduction/palette-modes.md
@@ -4,7 +4,7 @@ title: "App Mode and Cluster Mode"
description: "Learn about the two modes available in Palette and how they benefit your Kubernetes experience."
icon: ""
hide_table_of_contents: false
-sidebar_position: 0
+sidebar_position: 20
tags: ["app mode", "cluster mode"]
---
diff --git a/docs/docs-content/introduction/resource-usage-estimation.md b/docs/docs-content/introduction/resource-usage-estimation.md
index d90401fa45..895df64ca3 100644
--- a/docs/docs-content/introduction/resource-usage-estimation.md
+++ b/docs/docs-content/introduction/resource-usage-estimation.md
@@ -3,7 +3,7 @@ sidebar_label: "Resource Usage Calculation"
title: "How Palette Calculates Your Resource Usage"
description: "Learn what kCh is and how Palette measures your resource usage."
hide_table_of_contents: false
-sidebar_position: 20
+sidebar_position: 30
tags: ["usage", "kCh"]
---
diff --git a/docs/docs-content/tenant-settings/projects/projects.md b/docs/docs-content/tenant-settings/projects/projects.md
index ffe46b8820..3a4d156b0c 100644
--- a/docs/docs-content/tenant-settings/projects/projects.md
+++ b/docs/docs-content/tenant-settings/projects/projects.md
@@ -42,7 +42,7 @@ The following resources are scoped to a project by default:
## Project Dashboard
-When a user logs in to Palette, the [project dashboard](../../getting-started/dashboard.md) is displayed by default. The
+When a user logs in to Palette, the [project dashboard](../../introduction/dashboard.md) is displayed by default. The
project dashboard displays a map containing all the clusters deployed in the project. A summary of the clusters deployed
in the project, deleted, failed deployments, and the number of clusters pending an update is also displayed.
diff --git a/docs/docs-content/vertex/system-management/ssl-certificate-management.md b/docs/docs-content/vertex/system-management/ssl-certificate-management.md
index 601a84ec31..40bde2ac0e 100644
--- a/docs/docs-content/vertex/system-management/ssl-certificate-management.md
+++ b/docs/docs-content/vertex/system-management/ssl-certificate-management.md
@@ -12,8 +12,8 @@ keywords: ["self-hosted", "vertex"]
Palette VerteX uses Secure Sockets Layer (SSL) certificates to secure internal and external communication with Hypertext
Transfer Protocol Secure (HTTPS). External VerteX endpoints, such as the
[system console](../system-management/system-management.md#system-console),
-[VerteX dashboard](../../getting-started/dashboard.md), the VerteX API, and the gRPC endpoint, are enabled by default
-with HTTPS using an auto-generated self-signed certificate. You can replace the self-signed certificate with your SSL
+[VerteX dashboard](../../introduction/dashboard.md), the VerteX API, and the gRPC endpoint, are enabled by default with
+HTTPS using an auto-generated self-signed certificate. You can replace the self-signed certificate with your SSL
certificate to secure these endpoints.
:::info
diff --git a/redirects.js b/redirects.js
index 8775d78f96..3ee25c7952 100644
--- a/redirects.js
+++ b/redirects.js
@@ -76,8 +76,12 @@ const redirects = [
to: `/getting-started/`,
},
{
- from: `/clusters/public-cloud/eks/`,
- to: `/clusters/public-cloud/aws/eks/`,
+ from: `/getting-started/dashboard`,
+ to: `/introduction/dashboard`,
+ },
+ {
+ from: `/clusters/public-cloud/eks`,
+ to: `/clusters/public-cloud/aws/eks`,
},
{
from: `/clusters/public-cloud/aks/`,
diff --git a/static/assets/docs/images/getting-started/aws/getting-started_create-cluster-profile_add-pack.webp b/static/assets/docs/images/getting-started/aws/getting-started_create-cluster-profile_add-pack.webp
new file mode 100644
index 0000000000..e5212652c8
Binary files /dev/null and b/static/assets/docs/images/getting-started/aws/getting-started_create-cluster-profile_add-pack.webp differ
diff --git a/static/assets/docs/images/getting-started/getting-started_create-cluster-profile_manifest.webp b/static/assets/docs/images/getting-started/aws/getting-started_create-cluster-profile_manifest.webp
similarity index 100%
rename from static/assets/docs/images/getting-started/getting-started_create-cluster-profile_manifest.webp
rename to static/assets/docs/images/getting-started/aws/getting-started_create-cluster-profile_manifest.webp
diff --git a/static/assets/docs/images/getting-started/getting-started_create-cluster-profile_manifest_blue_btn.webp b/static/assets/docs/images/getting-started/aws/getting-started_create-cluster-profile_manifest_blue_btn.webp
similarity index 100%
rename from static/assets/docs/images/getting-started/getting-started_create-cluster-profile_manifest_blue_btn.webp
rename to static/assets/docs/images/getting-started/aws/getting-started_create-cluster-profile_manifest_blue_btn.webp
diff --git a/static/assets/docs/images/getting-started/aws/getting-started_create-cluster-profile_pack-readme.webp b/static/assets/docs/images/getting-started/aws/getting-started_create-cluster-profile_pack-readme.webp
new file mode 100644
index 0000000000..a97fb1c79f
Binary files /dev/null and b/static/assets/docs/images/getting-started/aws/getting-started_create-cluster-profile_pack-readme.webp differ
diff --git a/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster-tf_create_cluster.webp b/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster-tf_create_cluster.webp
new file mode 100644
index 0000000000..cb3d75ab18
Binary files /dev/null and b/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster-tf_create_cluster.webp differ
diff --git a/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster-tf_event_log.webp b/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster-tf_event_log.webp
new file mode 100644
index 0000000000..7469124440
Binary files /dev/null and b/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster-tf_event_log.webp differ
diff --git a/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster-tf_profile_review.webp b/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster-tf_profile_review.webp
new file mode 100644
index 0000000000..5d865446d4
Binary files /dev/null and b/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster-tf_profile_review.webp differ
diff --git a/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster_clusters_creation_parameters.webp b/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster_clusters_creation_parameters.webp
index 97d810712e..942b665213 100644
Binary files a/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster_clusters_creation_parameters.webp and b/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster_clusters_creation_parameters.webp differ
diff --git a/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster_create_cluster.webp b/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster_create_cluster.webp
index 5d40c18fe2..29a5f4090f 100644
Binary files a/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster_create_cluster.webp and b/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster_create_cluster.webp differ
diff --git a/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster_delete-cluster-button.webp b/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster_delete-cluster-button.webp
new file mode 100644
index 0000000000..2af6ce4569
Binary files /dev/null and b/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster_delete-cluster-button.webp differ
diff --git a/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster_event_log.webp b/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster_event_log.webp
new file mode 100644
index 0000000000..d1cbba09d8
Binary files /dev/null and b/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster_event_log.webp differ
diff --git a/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster_profile_cluster_profile_review.webp b/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster_profile_cluster_profile_review.webp
index 2db8348ec7..76ad325c74 100644
Binary files a/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster_profile_cluster_profile_review.webp and b/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster_profile_cluster_profile_review.webp differ
diff --git a/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster_service_url.webp b/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster_service_url.webp
new file mode 100644
index 0000000000..61995c9481
Binary files /dev/null and b/static/assets/docs/images/getting-started/aws/getting-started_deploy-k8s-cluster_service_url.webp differ
diff --git a/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_add-service-tag.webp b/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_add-service-tag.webp
new file mode 100644
index 0000000000..4a6b0f750c
Binary files /dev/null and b/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_add-service-tag.webp differ
diff --git a/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_apply-frontend-filter.webp b/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_apply-frontend-filter.webp
new file mode 100644
index 0000000000..9bf322392a
Binary files /dev/null and b/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_apply-frontend-filter.webp differ
diff --git a/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_available-updates-dialog.webp b/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_available-updates-dialog.webp
new file mode 100644
index 0000000000..0ab863df31
Binary files /dev/null and b/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_available-updates-dialog.webp differ
diff --git a/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_completed-cluster-updates.webp b/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_completed-cluster-updates.webp
new file mode 100644
index 0000000000..dc5dee8cd5
Binary files /dev/null and b/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_completed-cluster-updates.webp differ
diff --git a/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_new-version-overview.webp b/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_new-version-overview.webp
new file mode 100644
index 0000000000..40098c0fa3
Binary files /dev/null and b/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_new-version-overview.webp differ
diff --git a/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_pending-update-clusters-view.webp b/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_pending-update-clusters-view.webp
new file mode 100644
index 0000000000..fe845bd0b8
Binary files /dev/null and b/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_pending-update-clusters-view.webp differ
diff --git a/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_profile-version-selection.webp b/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_profile-version-selection.webp
new file mode 100644
index 0000000000..4668e63f73
Binary files /dev/null and b/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_profile-version-selection.webp differ
diff --git a/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_profile-with-cluster.webp b/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_profile-with-cluster.webp
new file mode 100644
index 0000000000..85034771ae
Binary files /dev/null and b/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_profile-with-cluster.webp differ
diff --git a/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_updates-available-button-cluster-overview.webp b/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_updates-available-button-cluster-overview.webp
new file mode 100644
index 0000000000..1363e484bd
Binary files /dev/null and b/static/assets/docs/images/getting-started/aws/getting-started_update-k8s-cluster_updates-available-button-cluster-overview.webp differ
diff --git a/static/assets/docs/images/getting-started/azure/getting-started_create-cluster-profile_add-pack.webp b/static/assets/docs/images/getting-started/azure/getting-started_create-cluster-profile_add-pack.webp
new file mode 100644
index 0000000000..9e1db9cc0d
Binary files /dev/null and b/static/assets/docs/images/getting-started/azure/getting-started_create-cluster-profile_add-pack.webp differ
diff --git a/static/assets/docs/images/getting-started/azure/getting-started_create-cluster-profile_manifest.webp b/static/assets/docs/images/getting-started/azure/getting-started_create-cluster-profile_manifest.webp
new file mode 100644
index 0000000000..49828e253b
Binary files /dev/null and b/static/assets/docs/images/getting-started/azure/getting-started_create-cluster-profile_manifest.webp differ
diff --git a/static/assets/docs/images/getting-started/azure/getting-started_create-cluster-profile_manifest_blue_btn.webp b/static/assets/docs/images/getting-started/azure/getting-started_create-cluster-profile_manifest_blue_btn.webp
new file mode 100644
index 0000000000..a1680f9614
Binary files /dev/null and b/static/assets/docs/images/getting-started/azure/getting-started_create-cluster-profile_manifest_blue_btn.webp differ
diff --git a/static/assets/docs/images/getting-started/azure/getting-started_create-cluster-profile_pack-readme.webp b/static/assets/docs/images/getting-started/azure/getting-started_create-cluster-profile_pack-readme.webp
new file mode 100644
index 0000000000..1319267f25
Binary files /dev/null and b/static/assets/docs/images/getting-started/azure/getting-started_create-cluster-profile_pack-readme.webp differ
diff --git a/static/assets/docs/images/getting-started/azure/getting-started_deploy-k8s-cluster-tf_profile_review.webp b/static/assets/docs/images/getting-started/azure/getting-started_deploy-k8s-cluster-tf_profile_review.webp
new file mode 100644
index 0000000000..5e6f740302
Binary files /dev/null and b/static/assets/docs/images/getting-started/azure/getting-started_deploy-k8s-cluster-tf_profile_review.webp differ
diff --git a/static/assets/docs/images/getting-started/azure/getting-started_deploy-k8s-cluster_delete-cluster-button.webp b/static/assets/docs/images/getting-started/azure/getting-started_deploy-k8s-cluster_delete-cluster-button.webp
new file mode 100644
index 0000000000..f46678d6bb
Binary files /dev/null and b/static/assets/docs/images/getting-started/azure/getting-started_deploy-k8s-cluster_delete-cluster-button.webp differ
diff --git a/static/assets/docs/images/getting-started/azure/getting-started_deploy-k8s-cluster_event_log.webp b/static/assets/docs/images/getting-started/azure/getting-started_deploy-k8s-cluster_event_log.webp
new file mode 100644
index 0000000000..96c3f3e178
Binary files /dev/null and b/static/assets/docs/images/getting-started/azure/getting-started_deploy-k8s-cluster_event_log.webp differ
diff --git a/static/assets/docs/images/getting-started/azure/getting-started_deploy-k8s-cluster_parameters.webp b/static/assets/docs/images/getting-started/azure/getting-started_deploy-k8s-cluster_parameters.webp
index e210a6654f..1b2f17e9d1 100644
Binary files a/static/assets/docs/images/getting-started/azure/getting-started_deploy-k8s-cluster_parameters.webp and b/static/assets/docs/images/getting-started/azure/getting-started_deploy-k8s-cluster_parameters.webp differ
diff --git a/static/assets/docs/images/getting-started/azure/getting-started_deploy-k8s-cluster_profile_review.webp b/static/assets/docs/images/getting-started/azure/getting-started_deploy-k8s-cluster_profile_review.webp
index 3a90c96868..6713ce5811 100644
Binary files a/static/assets/docs/images/getting-started/azure/getting-started_deploy-k8s-cluster_profile_review.webp and b/static/assets/docs/images/getting-started/azure/getting-started_deploy-k8s-cluster_profile_review.webp differ
diff --git a/static/assets/docs/images/getting-started/azure/getting-started_deploy-k8s-cluster_service_url.webp b/static/assets/docs/images/getting-started/azure/getting-started_deploy-k8s-cluster_service_url.webp
new file mode 100644
index 0000000000..de8d2ab438
Binary files /dev/null and b/static/assets/docs/images/getting-started/azure/getting-started_deploy-k8s-cluster_service_url.webp differ
diff --git a/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_add-service-tag.webp b/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_add-service-tag.webp
similarity index 100%
rename from static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_add-service-tag.webp
rename to static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_add-service-tag.webp
diff --git a/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_apply-frontend-filter.webp b/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_apply-frontend-filter.webp
similarity index 100%
rename from static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_apply-frontend-filter.webp
rename to static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_apply-frontend-filter.webp
diff --git a/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_available-updates-dialog.webp b/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_available-updates-dialog.webp
new file mode 100644
index 0000000000..5491daeabe
Binary files /dev/null and b/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_available-updates-dialog.webp differ
diff --git a/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_completed-cluster-updates.webp b/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_completed-cluster-updates.webp
new file mode 100644
index 0000000000..d86889a0dd
Binary files /dev/null and b/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_completed-cluster-updates.webp differ
diff --git a/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_deployed-clusters-start-setup.webp b/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_deployed-clusters-start-setup.webp
similarity index 100%
rename from static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_deployed-clusters-start-setup.webp
rename to static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_deployed-clusters-start-setup.webp
diff --git a/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_new-version-overview.webp b/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_new-version-overview.webp
new file mode 100644
index 0000000000..4a9c610db0
Binary files /dev/null and b/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_new-version-overview.webp differ
diff --git a/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_pending-update-clusters-view.webp b/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_pending-update-clusters-view.webp
new file mode 100644
index 0000000000..325a51414e
Binary files /dev/null and b/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_pending-update-clusters-view.webp differ
diff --git a/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_profile-version-selection.webp b/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_profile-version-selection.webp
new file mode 100644
index 0000000000..d2b079844f
Binary files /dev/null and b/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_profile-version-selection.webp differ
diff --git a/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_profile-with-cluster.webp b/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_profile-with-cluster.webp
new file mode 100644
index 0000000000..ddbea3b28f
Binary files /dev/null and b/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_profile-with-cluster.webp differ
diff --git a/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_updates-available-button-cluster-overview.webp b/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_updates-available-button-cluster-overview.webp
new file mode 100644
index 0000000000..bf5f86fe4a
Binary files /dev/null and b/static/assets/docs/images/getting-started/azure/getting-started_update-k8s-cluster_updates-available-button-cluster-overview.webp differ
diff --git a/static/assets/docs/images/getting-started/gcp/getting-started_create-cluster-profile_add-pack.webp b/static/assets/docs/images/getting-started/gcp/getting-started_create-cluster-profile_add-pack.webp
new file mode 100644
index 0000000000..96788513a6
Binary files /dev/null and b/static/assets/docs/images/getting-started/gcp/getting-started_create-cluster-profile_add-pack.webp differ
diff --git a/static/assets/docs/images/getting-started/gcp/getting-started_create-cluster-profile_manifest.webp b/static/assets/docs/images/getting-started/gcp/getting-started_create-cluster-profile_manifest.webp
new file mode 100644
index 0000000000..63457c3086
Binary files /dev/null and b/static/assets/docs/images/getting-started/gcp/getting-started_create-cluster-profile_manifest.webp differ
diff --git a/static/assets/docs/images/getting-started/gcp/getting-started_create-cluster-profile_manifest_blue_btn.webp b/static/assets/docs/images/getting-started/gcp/getting-started_create-cluster-profile_manifest_blue_btn.webp
new file mode 100644
index 0000000000..e4bb9175cb
Binary files /dev/null and b/static/assets/docs/images/getting-started/gcp/getting-started_create-cluster-profile_manifest_blue_btn.webp differ
diff --git a/static/assets/docs/images/getting-started/gcp/getting-started_create-cluster-profile_pack-readme.webp b/static/assets/docs/images/getting-started/gcp/getting-started_create-cluster-profile_pack-readme.webp
new file mode 100644
index 0000000000..dc473a960d
Binary files /dev/null and b/static/assets/docs/images/getting-started/gcp/getting-started_create-cluster-profile_pack-readme.webp differ
diff --git a/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster-tf_profile_review.webp b/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster-tf_profile_review.webp
new file mode 100644
index 0000000000..09446cfdd1
Binary files /dev/null and b/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster-tf_profile_review.webp differ
diff --git a/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster_clusters_parameters.webp b/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster_clusters_parameters.webp
index 6c2945b177..3a5300130b 100644
Binary files a/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster_clusters_parameters.webp and b/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster_clusters_parameters.webp differ
diff --git a/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster_delete-cluster-button.webp b/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster_delete-cluster-button.webp
new file mode 100644
index 0000000000..804d7121f1
Binary files /dev/null and b/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster_delete-cluster-button.webp differ
diff --git a/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster_event_log.webp b/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster_event_log.webp
new file mode 100644
index 0000000000..6e0db95b27
Binary files /dev/null and b/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster_event_log.webp differ
diff --git a/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster_new_cluster.webp b/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster_new_cluster.webp
index afe3a541fc..4570dc3705 100644
Binary files a/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster_new_cluster.webp and b/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster_new_cluster.webp differ
diff --git a/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster_profile_review.webp b/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster_profile_review.webp
index beefc295f8..40bab187ff 100644
Binary files a/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster_profile_review.webp and b/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster_profile_review.webp differ
diff --git a/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster_service_url.webp b/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster_service_url.webp
new file mode 100644
index 0000000000..8c772c7600
Binary files /dev/null and b/static/assets/docs/images/getting-started/gcp/getting-started_deploy-k8s-cluster_service_url.webp differ
diff --git a/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_add-service-tag.webp b/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_add-service-tag.webp
new file mode 100644
index 0000000000..99fe3319be
Binary files /dev/null and b/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_add-service-tag.webp differ
diff --git a/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_apply-frontend-filter.webp b/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_apply-frontend-filter.webp
new file mode 100644
index 0000000000..fe3b64903d
Binary files /dev/null and b/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_apply-frontend-filter.webp differ
diff --git a/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_available-updates-dialog.webp b/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_available-updates-dialog.webp
new file mode 100644
index 0000000000..3edf9806a9
Binary files /dev/null and b/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_available-updates-dialog.webp differ
diff --git a/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_completed-cluster-updates.webp b/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_completed-cluster-updates.webp
new file mode 100644
index 0000000000..9950fe95bc
Binary files /dev/null and b/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_completed-cluster-updates.webp differ
diff --git a/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_deployed-clusters-start-setup.webp b/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_deployed-clusters-start-setup.webp
new file mode 100644
index 0000000000..84f77bbe47
Binary files /dev/null and b/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_deployed-clusters-start-setup.webp differ
diff --git a/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_new-version-overview.webp b/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_new-version-overview.webp
new file mode 100644
index 0000000000..48391a1eee
Binary files /dev/null and b/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_new-version-overview.webp differ
diff --git a/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_pending-update-clusters-view.webp b/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_pending-update-clusters-view.webp
new file mode 100644
index 0000000000..ca87ca897e
Binary files /dev/null and b/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_pending-update-clusters-view.webp differ
diff --git a/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_profile-version-selection.webp b/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_profile-version-selection.webp
new file mode 100644
index 0000000000..94fe289c06
Binary files /dev/null and b/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_profile-version-selection.webp differ
diff --git a/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_profile-with-cluster.webp b/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_profile-with-cluster.webp
new file mode 100644
index 0000000000..2d322705ae
Binary files /dev/null and b/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_profile-with-cluster.webp differ
diff --git a/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_updates-available-button-cluster-overview.webp b/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_updates-available-button-cluster-overview.webp
new file mode 100644
index 0000000000..5cb93e229a
Binary files /dev/null and b/static/assets/docs/images/getting-started/gcp/getting-started_update-k8s-cluster_updates-available-button-cluster-overview.webp differ
diff --git a/static/assets/docs/images/getting-started/getting-started_deploy-k8s-cluster_delete-cluster-button.webp b/static/assets/docs/images/getting-started/getting-started_deploy-k8s-cluster_delete-cluster-button.webp
deleted file mode 100644
index 9a8ea2babe..0000000000
Binary files a/static/assets/docs/images/getting-started/getting-started_deploy-k8s-cluster_delete-cluster-button.webp and /dev/null differ
diff --git a/static/assets/docs/images/getting-started/getting-started_deploy-k8s-cluster_event_log.webp b/static/assets/docs/images/getting-started/getting-started_deploy-k8s-cluster_event_log.webp
deleted file mode 100644
index 8eb8a58367..0000000000
Binary files a/static/assets/docs/images/getting-started/getting-started_deploy-k8s-cluster_event_log.webp and /dev/null differ
diff --git a/static/assets/docs/images/getting-started/getting-started_deploy-k8s-cluster_service_url.webp b/static/assets/docs/images/getting-started/getting-started_deploy-k8s-cluster_service_url.webp
deleted file mode 100644
index bce2c63ceb..0000000000
Binary files a/static/assets/docs/images/getting-started/getting-started_deploy-k8s-cluster_service_url.webp and /dev/null differ
diff --git a/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_available-updates-dialog.webp b/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_available-updates-dialog.webp
deleted file mode 100644
index af05988624..0000000000
Binary files a/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_available-updates-dialog.webp and /dev/null differ
diff --git a/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_completed-cluster-updates.webp b/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_completed-cluster-updates.webp
deleted file mode 100644
index 3663c7d6bf..0000000000
Binary files a/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_completed-cluster-updates.webp and /dev/null differ
diff --git a/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_editor-changes.webp b/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_editor-changes.webp
deleted file mode 100644
index b1aba03261..0000000000
Binary files a/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_editor-changes.webp and /dev/null differ
diff --git a/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_new-version-overview.webp b/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_new-version-overview.webp
deleted file mode 100644
index 77b683659a..0000000000
Binary files a/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_new-version-overview.webp and /dev/null differ
diff --git a/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_pending-update-clusters-view.webp b/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_pending-update-clusters-view.webp
deleted file mode 100644
index ca438fc6d6..0000000000
Binary files a/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_pending-update-clusters-view.webp and /dev/null differ
diff --git a/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_profile-version-changes.webp b/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_profile-version-changes.webp
new file mode 100644
index 0000000000..0291c2ec66
Binary files /dev/null and b/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_profile-version-changes.webp differ
diff --git a/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_profile-version-selection.webp b/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_profile-version-selection.webp
deleted file mode 100644
index dcb9f2cd07..0000000000
Binary files a/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_profile-version-selection.webp and /dev/null differ
diff --git a/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_profile-with-cluster.webp b/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_profile-with-cluster.webp
deleted file mode 100644
index 8698f1fdfd..0000000000
Binary files a/static/assets/docs/images/getting-started/getting-started_update-k8s-cluster_profile-with-cluster.webp and /dev/null differ