Skip to content

Commit

Permalink
docs: add existing content DOC-1065 (#2267)
Browse files Browse the repository at this point in the history
* docs: add existing content

docs: add deploy cluster pages

docs: Update release-notes callout (#2253)

docs: revise deploy cluster

Revert "docs: Update release-notes callout (#2253)"

This reverts commit 30203a95810743b3b9a4f6ad2efe39d4afdb6707.

docs: add getting started with images

* docs: fix vale

* Optimised images with calibre/image-actions

* Update docs/docs-content/getting-started/update-k8s-cluster.md

Co-authored-by: Karl Cardenas <[email protected]>

* docs: make changes from code review

* Optimised images with calibre/image-actions

* docs: adjust terraform intro

* Apply suggestions from code review

Co-authored-by: Karl Cardenas <[email protected]>

* docs: fix incomplete sentence

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Karl Cardenas <[email protected]>
  • Loading branch information
3 people authored Feb 26, 2024
1 parent afd621c commit e88000b
Show file tree
Hide file tree
Showing 56 changed files with 1,741 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -512,7 +512,7 @@ Select the **1.1.0** version. Click on **Save** to confirm your profile version

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](./backup-restore) section.
[Backup and Restore](./backup-restore/backup-restore.md) section.

:::

Expand Down
53 changes: 53 additions & 0 deletions docs/docs-content/getting-started/cluster-profiles.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
sidebar_label: "Cluster Profiles"
title: "Cluster Profiles"
description: "Spectro Cloud Palette Cluster Profiles"
icon: ""
hide_table_of_contents: false
sidebar_position: 30
tags: ["getting-started"]
---

Cluster profiles are the declarative, full-stack models that Palette follows when it provisions, scales, and maintains
your clusters. Cluster profiles are composed of layers using packs, Helm charts, Zarf packages, or cluster manifests to
meet specific types of workloads on your Palette cluster deployments. You can create as many profiles as needed for your
workloads.

Cluster profiles provide you with a repeatable deployment process for all of your development and production
environments. They also give you visibility on the layers, packages and versions present on your deployed clusters.

Finally, if you want to update or maintain your deployed workloads, cluster profiles give you the flexibility to make
changes to all clusters deployed with the profile by removing, swapping or adding a new layer. Palette will then
reconcile the current state of your workloads with the desired state specified by the profile.

Below are cluster profile types you can create:

- _Infrastructure_ profiles provide the essential components for workload cluster deployments within a
[tenant](../glossary-all.md#tenant): Operating System (OS), Kubernetes, Network, and Storage. Collectively, these
layers form the infrastructure for your cluster.

- _Add-on_ profiles are exclusively composed of add-on layers. They usually do not contain infrastructure components and
are instead designed for reusability across multiple clusters and multiple projects within a tenant. Since they
provide the flexibility to configure clusters based on specific requirements, _add-on_ profiles can be added to
_infrastructure_ profiles to create what we call a _full profile_.

- _Full profiles_ combine infrastructure packs with add-on layers. By adding layers, you can enhance cluster
functionality. For example, you might add system apps, authentication, monitoring, ingress, load balancers, and more
to your cluster.

The diagram below illustrates the components of these profile types and how you can build on infrastructure layers with
add-on layers to create a full cluster profile. You can also create separate add-on profiles to reuse among multiple
clusters.

![A flow diagram that shows how you can add layers to an infrastructure profile to create a full profile.](/getting-started/getting-started_cluster-profiles_cluster-profiles.png)

## Packs

Packs are the smallest component of a cluster profile. Each layer of a cluster profile is made up of a specific pack.
Palette provides packs that are tailored for specific uses to support the core infrastructure a cluster needs. You can
also use add-on packs, or create your own custom pack to extend Kubernetes functionality.

The diagram below illustrates some of the popular technologies that you can use in your cluster profile layers. Check
out the [Packs List](../integrations/integrations.mdx) page to learn more about individual packs.

![Diagram of stack grouped as a unit](/getting-started/getting-started_cluster-profiles_stack-grouped-packs.png)
224 changes: 224 additions & 0 deletions docs/docs-content/getting-started/create-cluster-profile.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,224 @@
---
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

<Tabs>

<TabItem label="AWS" value="aws-ui">
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.png)

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.png)

The review section gives an overview of the cluster profile configuration you selected. Click on **Finish
Configuration** to create the cluster profile.

</TabItem>

<TabItem label="Azure" value="azure-ui">

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.png)

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.png)

The review section gives an overview of the cluster profile configuration you selected. Click on **Finish
Configuration** to finish creating the cluster profile.

</TabItem>

<TabItem label="Google Cloud" value="gcp-ui">
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.png)

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.png)

The review section gives an overview of the cluster profile configuration you selected. Click on **Finish
Configuration** to create the cluster profile.

</TabItem>

</Tabs>

## 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.png)

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.png)
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.
6 changes: 3 additions & 3 deletions docs/docs-content/getting-started/dashboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: "Palette Dashboard"
description: "Spectro Cloud Palette Dashboard"
icon: ""
hide_table_of_contents: false
sidebar_position: 10
sidebar_position: 20
tags: ["getting-started"]
---

Expand All @@ -27,7 +27,7 @@ the list below.

<!-- ![project-dashboard](/project-dashboard.png) -->

![A screenshot of the Project dashboard with numbered UI elements described in this document.](/getting-started_dashboard_project-dashboard.png)
![A screenshot of the Project dashboard with numbered UI elements described in this document.](/getting-started/getting-started_dashboard_project-dashboard.png)

1. Projects are used to organize the cluster resources within a logical group. Use the **drop-down Menu** to shift
between projects.
Expand Down Expand Up @@ -59,7 +59,7 @@ described in the list below.

<!-- ![admin-dashboard](/admin-dashboard.png) -->

![A screenshot of the Tenant Admin dashboard with numbered UI elements described in this document.](/getting-started_dashboard_admin-dashboard.png)
![A screenshot of the Tenant Admin dashboard with numbered UI elements described in this document.](/getting-started/getting-started_dashboard_admin-dashboard.png)

1. Tenant admins use the **drop-down Menu** to switch to the **Tenant Admin** dashboard.

Expand Down
Loading

0 comments on commit e88000b

Please sign in to comment.