diff --git a/.github/workflows/packs-data.yaml b/.github/workflows/packs-data.yaml
index 9ce79f398e..3d356f8ac8 100644
--- a/.github/workflows/packs-data.yaml
+++ b/.github/workflows/packs-data.yaml
@@ -5,6 +5,7 @@ on:
# Runs at 5 minutes past the hour, every 6 hours.
- cron: "5 */6 * * *"
workflow_dispatch:
+
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_S3_ACCESS_KEY }}
@@ -26,13 +27,20 @@ jobs:
secretId: ${{ secrets.VAULT_SECRET_ID }}
secrets: /providers/github/organizations/spectrocloud/token?org_name=spectrocloud token | VAULT_GITHUB_TOKEN
- - uses: actions-hub/gcloud@master
- env:
- PROJECT_ID: spectro-common-dev
- APPLICATION_CREDENTIALS: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}
+ - uses: 'google-github-actions/auth@v2'
+ with:
+ project_id: spectro-common-dev
+ credentials_json: ${{ secrets.GOOGLE_APPLICATION_CREDENTIALS }}
+ cleanup_credentials: true
+
+ - name: 'Set up Cloud SDK'
+ uses: 'google-github-actions/setup-gcloud@v2'
with:
- args: cp gs://docs-education-automation/packs_inventory/packs_report.json ./packs_report.json
- cli: gsutil
+ version: '>= 503.0.0'
+
+ - name: 'Get Packs Data'
+ run: |
+ gsutil cp gs://docs-education-automation/packs_inventory/packs_report.json ./packs_report.json
- name: Upload to S3
run: |
@@ -49,4 +57,4 @@ jobs:
SLACK_USERNAME: "spectromate"
SLACK_ICON_EMOJI: ":robot:"
SLACK_COLOR: ${{ job.status }}
- SLACK_MESSAGE: 'The Docs cron job that generates the `packs.json` file failed. Please check the logs for more details.'
\ No newline at end of file
+ SLACK_MESSAGE: 'The Deprecated Docs cron job that generates the `packs.json` file failed. Please check the logs for more details.'
\ No newline at end of file
diff --git a/Makefile b/Makefile
index 3081b4c6ce..c8ee8db46e 100644
--- a/Makefile
+++ b/Makefile
@@ -15,7 +15,12 @@ ALOGLIA_CONFIG=$(shell cat docsearch.dev.config.json | jq -r tostring)
# Find all *.md files in docs, cut the prefix ./
# Remove all security-bulletins and cve-reports.md because they are rate limited by nvd.nist.gov
# Remove oss-licenses.md because they are rate limited by npmjs.com
-VERIFY_URL_PATHS=$(shell find ./docs -name "*.md" | cut -c 3- | sed '/security-bulletins/d' | sed '/cve-reports/d' | sed '/oss-licenses/d')
+# Remove all /deprecated paths because we don't want to maintain their links
+VERIFY_URL_PATHS=$(shell find ./docs -name "*.md" | cut -c 3- | \
+ sed '/security-bulletins/d' | \
+ sed '/cve-reports/d' | \
+ sed '/oss-licenses/d' | \
+ sed '/deprecated/d' )
RATE_LIMITED_FILES_LIST:="docs/docs-content/security-bulletins/**/*.md" \
"docs/docs-content/security-bulletins/*.md" \
diff --git a/README.md b/README.md
index af4dbd32f3..a1793563c4 100644
--- a/README.md
+++ b/README.md
@@ -565,7 +565,9 @@ component will automatically display the badge in the correct color based on the
### Simple Card Grid
This is a custom component that creates a grid of simple text cards with two columns, styled according to our color
-scheme. The rows of cards are dynamically created according to the list of specified cards.
+scheme. The rows of cards are dynamically created according to the list of specified cards. This component uses the
+`VersionedLink` under the covers. URLs should be specified as discussed in the [Internal Links](#internal-links)
+section.
```js
diff --git a/_partials/self-hosted/_cloud-provider-config.mdx b/_partials/self-hosted/_cloud-provider-config.mdx
new file mode 100644
index 0000000000..1dd6328d6e
--- /dev/null
+++ b/_partials/self-hosted/_cloud-provider-config.mdx
@@ -0,0 +1,202 @@
+---
+partial_category: self-hosted
+partial_name: cloud-provider-config
+---
+
+
+
+Different cloud providers use different image formats to create virtual machines. Amazon Web Services (AWS), for example, uses Amazon Machine Images (AMI), while Azure uses Virtual Hard Disks (VHDs). We provide public images for each cloud provider that contains the desired Operation System (OS) and Kubernetes binaries specified in a cluster profile.
+We make these infrastructure provider images available to you by ensuring the images are available in the required cloud provider regions.
+
+When you deploy a cluster using {props.edition}, it automatically selects the correct infrastructure provider image that contains the desired Operation System (OS) and Kubernetes binaries specified in the cluster profile.
+The exception to this process is when you are using a custom image, in which case you must provide the image yourself through the pack.
+
+
+In the event you need to enable new cloud providers, or rotate the credentials used to access our infrastructure provider images, you can do so through the [System API](https://docs.spectrocloud.com/api/v1/system/).
+Use the following steps to modify the cloud provider configuration for your self-hosted {props.edition} instance.
+
+## Prerequisites
+
+- System administrator permissions, either a Root Administrator or Operations Administrator. Refer to the
+ page to learn more about system administrator roles.
+
+- You need cloud credentials from us to download the required infrastructure provider images. Reach out to our support team at [support@spectrocloud.com](mailto:support@spectrocloud.com) to obtain these credentials.
+
+- `curl` or similar tool to make API requests.
+
+## Update Cloud Provider Configuration
+
+1. Open a terminal session.
+
+
+2. Log in to the {props.edition} System API by using the `/v1/auth/syslogin` endpoint. Use the curl command below and replace the `example.com` placeholder URL with the URL of your {props.edition} instance.
+Ensure you replace the credentials below with your system console credentials.
+
+ ```shell
+ TOKEN=$(curl --insecure --location 'https://example.com/v1/auth/syslogin' \
+ --header 'Content-Type: application/json' \
+ --data '{
+ "password": "**********",
+ "username": "**********"
+ }')
+ ```
+
+ The response will contain the authentication token that you will use in the next request.
+
+
+3. Next, prepare a payload for the cloud provider you want to enable or update. Select the tab for details on the expected payload for each cloud provider.
+
+ Replace the placeholders in the payload below with the configuration values provided by our support team.
+
+
+
+
+
+
+
+
+ ```json
+ CONFIG_JSON=$(cat <
+
+
+
+
+ ```json
+ CONFIG_JSON=$(cat <
+
+
+
+
+ ```json
+ CONFIG_JSON=$(cat <
+
+
+
+4. Use the `/v1/system/config/:provider/account` endpoint to update the cloud provider configuration. Select the tab for the cloud provider you want to update and issue the corresponding curl command. Replace the `example.com` placeholder URL with the URL of your {props.edition} instance.
+
+
+
+
+
+
+ ```shell
+ curl --insecure --request PUT --location 'https://example.com/v1/system/config/azure/account' \
+ --header "Authorization: $TOKEN" \
+ --header 'Content-Type: application/json' \
+ --data "$CONFIG_JSON"
+ ```
+
+
+
+ ```shell
+ curl --insecure --request PUT --location 'https://vertex.example.com/v1/system/config/aws/account' \
+ --header "Authorization: $TOKEN" \
+ --header 'Content-Type: application/json' \
+ --data "$CONFIG_JSON"
+ ```
+
+
+
+ ```shell
+ curl --insecure --request PUT --location 'https://vertex.example.com/v1/system/config/gcp/account' \
+ --header "Authorization: $TOKEN" \
+ --header 'Content-Type: application/json' \
+ --data "$CONFIG_JSON"
+ ```
+
+
+
+
+
+You have successfully updated the cloud provider configuration for your self-hosted {props.edition} instance.
+
+
+## Validate
+
+Use the following steps to validate the cloud provider configuration update.
+
+1. Open a terminal session.
+
+
+2. Log in to the {props.edition} System API by using the `/v1/auth/syslogin` endpoint. Use the curl command below and replace the `example.com` placeholder URL with the URL of your {props.edition} instance.
+Ensure you replace the credentials below with your system console credentials.
+
+ ```shell
+ TOKEN=$(curl --insecure --location 'https://example.com/v1/auth/syslogin' \
+ --header 'Content-Type: application/json' \
+ --data '{
+ "password": "**********",
+ "username": "**********"
+ }')
+ ```
+
+ The response will contain the authentication token that you will use in the next request.
+
+3. Use the `/v1/system/config/:provider/account` endpoint to get the cloud provider configuration. Select the tab for the cloud provider you want to update and issue the corresponding curl command. Replace the `example.com` placeholder URL with the URL of your {props.edition} instance.
+
+
+
+
+
+
+ ```shell
+ curl --insecure --request GET --location 'https://example.com/v1/system/config/azure/account' \
+ --header "Authorization: $TOKEN" \
+ --header 'Content-Type: application/json'
+ ```
+
+
+
+ ```shell
+ curl --insecure --request GET --location 'https://vertex.example.com/v1/system/config/aws/account' \
+ --header "Authorization: $TOKEN" \
+ --header 'Content-Type: application/json'
+ ```
+
+
+
+ ```shell
+ curl --insecure --request GET --location 'https://vertex.example.com/v1/system/config/gcp/account' \
+ --header "Authorization: $TOKEN" \
+ --header 'Content-Type: application/json'
+ ```
+
+
+
+
+4. The response will contain the cloud provider configuration details. Verify that the configuration values match the values you provided in the payload.
\ No newline at end of file
diff --git a/_partials/self-hosted/_kubernetes_palette_versions.mdx b/_partials/self-hosted/_kubernetes_palette_versions.mdx
new file mode 100644
index 0000000000..5c7794b1f6
--- /dev/null
+++ b/_partials/self-hosted/_kubernetes_palette_versions.mdx
@@ -0,0 +1,22 @@
+---
+partial_category: self-hosted
+partial_name: kubernetes-palette-versions
+---
+
+| **Palette Version** | **Kubernetes Version** | **OVA Download URL** | **FIPS OVA Download URL** |
+| ------------------- | ---------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
+| 4.5.11 | 1.29.9 | `https://vmwaregoldenimage.s3.amazonaws.com/u-2204-0-k-1299-0.ova` | `https://vmwaregoldenimage.s3.amazonaws.com/u-2004-0-k-1299-fips.ova` |
+| 4.5.10 | 1.29.9 | `https://vmwaregoldenimage.s3.amazonaws.com/u-2204-0-k-1299-0.ova` | `https://vmwaregoldenimage.s3.amazonaws.com/u-2004-0-k-1299-fips.ova` |
+| 4.5.8 | 1.29.9 | `https://vmwaregoldenimage.s3.amazonaws.com/u-2204-0-k-1299-0.ova` | `https://vmwaregoldenimage.s3.amazonaws.com/u-2004-0-k-1299-fips.ova` |
+| 4.5.5 | 1.29.9 | `https://vmwaregoldenimage.s3.amazonaws.com/u-2204-0-k-1299-0.ova` | `https://vmwaregoldenimage.s3.amazonaws.com/u-2004-0-k-1299-fips.ova` |
+| 4.5.4 | 1.29.9 | `https://vmwaregoldenimage.s3.amazonaws.com/u-2204-0-k-1299-0.ova` | `https://vmwaregoldenimage.s3.amazonaws.com/u-2004-0-k-1299-fips.ova` |
+| 4.5.3 | 1.29.9 | `https://vmwaregoldenimage.s3.amazonaws.com/u-2204-0-k-1299-0.ova` | `https://vmwaregoldenimage.s3.amazonaws.com/u-2004-0-k-1299-fips.ova` |
+| 4.4.20 | 1.28.13 | `https://vmwaregoldenimage.s3.amazonaws.com/u-2204-0-k-12813-0.ova` | `https://vmwaregoldenimage.s3.amazonaws.com/u-2004-0-k-12813-fips.ova` |
+| 4.4.18 | 1.28.13 | `https://vmwaregoldenimage.s3.amazonaws.com/u-2204-0-k-12813-0.ova` | `https://vmwaregoldenimage.s3.amazonaws.com/u-2004-0-k-12813-fips.ova` |
+| 4.4.14 | 1.28.12 | `https://vmwaregoldenimage.s3.amazonaws.com/u-2204-0-k-12812-0.ova` | `https://vmwaregoldenimage.s3.amazonaws.com/u-2004-0-k-12812-fips.ova` |
+| 4.4.11 | 1.28.11 | `https://vmwaregoldenimage-console.s3.amazonaws.com/u-2204-0-k-1289-0.ova` | `https://vmwaregoldenimage-console.s3.amazonaws.com/u-2004-0-k-1289-fips.ova` |
+| 4.4.6 | 1.28.9 | `https://vmwaregoldenimage-console.s3.amazonaws.com/u-2204-0-k-1289-0.ova` | `https://vmwaregoldenimage-console.s3.amazonaws.com/u-2004-0-k-1289-fips.ova` |
+| 4.3.6 | 1.27.11 | `https://vmwaregoldenimage-console.s3.amazonaws.com/u-2204-0-k-12711-0.ova` | `https://vmwaregoldenimage-console.s3.amazonaws.com/u-2004-0-k-12711-fips.ova` |
+| 4.2.13 | 1.26.10 | `https://vmwaregoldenimage-console.s3.amazonaws.com/u-2204-0-k-12610-0.ova` | `https://vmwaregoldenimage-console.s3.amazonaws.com/u-2004-0-k-12610-fips.ova` |
+| 4.2.7 | 1.26.10 | `https://vmwaregoldenimage-console.s3.amazonaws.com/u-2204-0-k-12610-0.ova` | `https://vmwaregoldenimage-console.s3.amazonaws.com/u-2004-0-k-12610-fips.ova` |
+| 4.1.12 | 1.26.8 | `https://vmwaregoldenimage-console.s3.amazonaws.com/u-2204-0-k-1268-0.ova` | `https://vmwaregoldenimage-console.s3.amazonaws.com/u-2004-0-k-1268-fips.ova` |
\ No newline at end of file
diff --git a/_partials/self-hosted/_setup-steps.mdx b/_partials/self-hosted/_setup-steps.mdx
index 2de5320e35..5387c5a3d9 100644
--- a/_partials/self-hosted/_setup-steps.mdx
+++ b/_partials/self-hosted/_setup-steps.mdx
@@ -51,9 +51,12 @@ partial_name: setup-steps
3. Right-click on your cluster or resource group and select **Deploy OVF Template**.
4. In the **Deploy OVF Template** wizard, enter the following URL to import the Operating System (OS) and Kubernetes
- distribution OVA required for the {props.edition} nodes creation. Contact your {props.edition} support representative to learn if
- the version of {props.edition} you are using requires a new OS and Kubernetes OVA.
+ distribution OVA required for the {props.edition} nodes creation. Refer to the
+ section to learn if the version of
+ {props.edition} you are installing requires a new OS and Kubernetes OVA.
+ {props.requirementsURL}
+
diff --git a/docs/docs-content/automation/palette-cli/palette-cli.md b/docs/docs-content/automation/palette-cli/palette-cli.md
index c740920d89..5cce0992c3 100644
--- a/docs/docs-content/automation/palette-cli/palette-cli.md
+++ b/docs/docs-content/automation/palette-cli/palette-cli.md
@@ -7,7 +7,7 @@ tags: ["palette-cli"]
---
The Palette CLI contains various functionalities that you can use to interact with Palette and manage resources. The
-Palette CLI is well suited for Continuous Delivery/Continuous Deployment (CI/CD) pipelines and recommended for
+Palette CLI is well suited for Continuous Integration/Continuous Deployment (CI/CD) pipelines and recommended for
automation tasks, where Terraform or direct API queries are not ideal.
To get started with the Palette CLI, check out the [Install](install-palette-cli.md) guide.
diff --git a/docs/docs-content/clusters/pcg/deploy-pcg-k8s.md b/docs/docs-content/clusters/pcg/deploy-pcg-k8s.md
index f585ed8e38..6f9b4704ab 100644
--- a/docs/docs-content/clusters/pcg/deploy-pcg-k8s.md
+++ b/docs/docs-content/clusters/pcg/deploy-pcg-k8s.md
@@ -71,6 +71,9 @@ development and testing environments.
to the [PCG Sizing](#pcg-sizing) section for more information.
- A Container Network Interface plugin installed.
- A Container Storage Interface plugin installed.
+ - The Kubernetes cluster must be set up on a version of Kubernetes that is compatible to your PCG version. Refer to
+ the [Kubernetes Requirements](./pcg.md#kubernetes-requirements) section to find the version required for your
+ Palette installation
- PCG IP address requirements:
diff --git a/docs/docs-content/clusters/pcg/pcg.md b/docs/docs-content/clusters/pcg/pcg.md
index fa38b78ce7..0c67387d30 100644
--- a/docs/docs-content/clusters/pcg/pcg.md
+++ b/docs/docs-content/clusters/pcg/pcg.md
@@ -31,6 +31,21 @@ existing Kubernetes cluster. Refer to the table below to learn more about the su
| VMware vSphere | ✅ | The PCG is deployed into a VMware vSphere environment. | [Deploy to VMware vSphere](./deploy-pcg/vmware.md) |
| Other | ❌ | The PCG cluster is deployed into an existing Kubernetes cluster that is not managed by Palette. | [Deploy a PCG to an Existing Kubernetes Cluster](./deploy-pcg-k8s.md) |
+## Kubernetes Requirements
+
+The following table presents the Kubernetes version corresponding to each Palette version. It provides the download URLs
+for the Operating System and Kubernetes distribution OVA required for the PCG install. Ensure that you use FIPS OVA URL
+if you require a compliant installation.
+
+:::warning
+
+The versions included in the following table apply for PCG installs on VMware vSphere and MAAS. The Kubernetes version
+for OpenStack is 1.24.10 on all the Palette versions included below.
+
+:::
+
+
+
## Resources
- [Architecture](./architecture.md)
diff --git a/docs/docs-content/clusters/public-cloud/azure/aks.md b/docs/docs-content/clusters/public-cloud/azure/aks.md
index aa9a0c35e0..28bcbd3333 100644
--- a/docs/docs-content/clusters/public-cloud/azure/aks.md
+++ b/docs/docs-content/clusters/public-cloud/azure/aks.md
@@ -74,7 +74,22 @@ explains how you can create an Azure AKS cluster managed by Palette.
6. Under **Managed Kubernetes**, select **Azure AKS** and select your Azure AKS cluster profile.
-7. If you want to configure Pod and Service CIDR, populate the following configuration template and add the
+7. Palette displays the cluster profile layers. Review the profile layers and customize parameters as desired in the
+ YAML editor that displays when you click on **Values** after selecting a layer.
+
+ You can configure custom OpenID Connect (OIDC) for Azure clusters at the Kubernetes layer. Check out
+ [Configure OIDC Identity Provider](../../../integrations/kubernetes.md#configure-oidc-identity-provider) for more
+ information.
+
+ :::warning
+
+ All OIDC options require you to map a set of users or groups to a Kubernetes RBAC role. To learn how to map a
+ Kubernetes role to users and groups, refer to
+ [Create Role Bindings](../../cluster-management/cluster-rbac.md#create-role-bindings).
+
+ :::
+
+8. If you want to configure Pod and Service CIDR, populate the following configuration template and add the
configuration to your Kubernetes cluster profile layer.
```yaml
@@ -83,7 +98,7 @@ explains how you can create an Azure AKS cluster managed by Palette.
serviceClusterIpRange: ""
```
-8. If you want to [use a managed identity](https://learn.microsoft.com/en-us/azure/aks/use-managed-identity), populate
+9. If you want to [use a managed identity](https://learn.microsoft.com/en-us/azure/aks/use-managed-identity), populate
the following configuration template and add the configuration to your Kubernetes cluster profile layer.
- `providerID` – User-assigned identity ID in the format
@@ -96,7 +111,7 @@ explains how you can create an Azure AKS cluster managed by Palette.
- providerID: ""
```
-9. If you want to integrate with Microsoft Entra ID (formerly Azure Active Directory), populate the following
+10. If you want to integrate with Microsoft Entra ID (formerly Azure Active Directory), populate the following
configuration template and add the configuration to your Kubernetes cluster profile layer.
```yaml
@@ -108,7 +123,22 @@ explains how you can create an Azure AKS cluster managed by Palette.
-
```
-10. If you want to add a custom AKS add-on profile, populate the following configuration template and add the
+ Additionally, if you want to disable
+ [local accounts](https://learn.microsoft.com/en-us/azure/aks/manage-local-accounts-managed-azure-ad), add the
+ `disableLocalAccounts: true` entry to your Kubernetes cluster profile layer within the
+ `managedControlPlane.aadProfile` section.
+
+ ```yaml {7}
+ managedControlPlane:
+ aadProfile:
+ managed: true
+ adminGroupObjectIDs:
+ -
+ -
+ disableLocalAccounts: true
+ ```
+
+11. If you want to add a custom AKS add-on profile, populate the following configuration template and add the
configuration to your Kubernetes cluster profile layer.
```yaml
@@ -134,26 +164,9 @@ explains how you can create an Azure AKS cluster managed by Palette.
logAnalyticsWorkspaceResourceID: ""
```
-11. Click **Next** to continue.
-
-12. Palette displays the cluster profile layers. Review the profile layers and customize parameters as desired in the
- YAML files that display when you select a layer.
-
- You can configure custom OpenID Connect (OIDC) for Azure clusters at the Kubernetes layer. Check out
- [Configure OIDC Identity Provider](../../../integrations/kubernetes.md#configure-oidc-identity-provider) for more
- information.
-
- :::warning
-
- All OIDC options require you to map a set of users or groups to a Kubernetes RBAC role. To learn how to map a
- Kubernetes role to users and groups, refer to
- [Create Role Bindings](../../cluster-management/cluster-rbac.md#create-role-bindings).
-
- :::
-
-13. Click **Next** to continue.
+12. Click **Next** to continue.
-14. Configure your Azure AKS cluster using the following table for reference.
+13. Configure your Azure AKS cluster using the following table for reference.
:::warning
@@ -188,9 +201,9 @@ explains how you can create an Azure AKS cluster managed by Palette.
| **Control Plane Subnet** | Select the control plane subnet. |
| **Worker Subnet** | Select the worker network. |
-15. Click **Next** to continue.
+14. Click **Next** to continue.
-16. Provide the following node pool and cloud configuration information. To learn more about node pools, review the
+15. Provide the following node pool and cloud configuration information. To learn more about node pools, review the
[Node Pool](../../cluster-management/node-pool.md) guide.
#### System Node Pool
@@ -250,24 +263,24 @@ explains how you can create an Azure AKS cluster managed by Palette.
| **Managed disk** | Choose a storage option. For more information, refer to Microsoft's [Storage Account Overview](https://learn.microsoft.com/en-us/azure/storage/common/storage-account-overview) reference. For information about Solid State Drive (SSD) disks, refer to [Standard SSD Disks for Azure Virtual Machine Workloads](https://azure.microsoft.com/en-us/blog/preview-standard-ssd-disks-for-azure-virtual-machine-workloads/) reference. |
| **Disk size** | You can choose disk size based on your requirements. The default size is **60**. |
-17. Click **Next** to continue.
+16. Click **Next** to continue.
-18. Specify your preferred **OS Patching Schedule**.
+17. Specify your preferred **OS Patching Schedule**.
-19. Enable any scan options you want Palette to perform, and select a scan schedule. Palette provides support for
+18. Enable any scan options you want Palette to perform, and select a scan schedule. Palette provides support for
Kubernetes configuration security, penetration testing, and conformance testing.
-20. Schedule any backups you want Palette to perform. Review
+19. Schedule any backups you want Palette to perform. Review
[Backup and Restore](../../cluster-management/backup-restore/backup-restore.md) for more information.
-21. If you're using custom OIDC, configure the Role-Based Access Control (RBAC). You must map a set of users or groups
+20. If you're using custom OIDC, configure the Role-Based Access Control (RBAC). You must map a set of users or groups
to a Kubernetes RBAC role. To learn how to map a Kubernetes role to users and groups, refer to
[Create Role Bindings](../../cluster-management/cluster-rbac.md#create-role-bindings). Refer to
[Use RBAC with OIDC](../../../integrations/kubernetes.md#use-rbac-with-oidc) for an example.
-22. Click **Validate** and review the cluster configuration and settings summary.
+21. Click **Validate** and review the cluster configuration and settings summary.
-23. Click **Finish Configuration** to deploy the cluster. Provisioning Azure AKS clusters can take several minutes.
+22. Click **Finish Configuration** to deploy the cluster. Provisioning Azure AKS clusters can take several minutes.
The cluster details page contains the status and details of the deployment. Use this page to track the deployment
progress.
diff --git a/docs/docs-content/deployment-modes/agent-mode/install-agent-host.md b/docs/docs-content/deployment-modes/agent-mode/install-agent-host.md
index dd4a2e180c..e110cd180c 100644
--- a/docs/docs-content/deployment-modes/agent-mode/install-agent-host.md
+++ b/docs/docs-content/deployment-modes/agent-mode/install-agent-host.md
@@ -63,10 +63,11 @@ Palette. You will then create a cluster profile and use the registered host to d
- [jq](https://jqlang.github.io/jq/download/)
- [Zstandard](https://facebook.github.io/zstd/)
- - [Rsync](https://github.com/RsyncProject/rsync)
- - [`systemd-timesyncd`](https://www.freedesktop.org/software/systemd/man/latest/systemd-timesyncd.service.html)
+ - [rsync](https://github.com/RsyncProject/rsync)
+ - [systemd-timesyncd](https://www.freedesktop.org/software/systemd/man/latest/systemd-timesyncd.service.html)
- [conntrack](https://conntrack-tools.netfilter.org/downloads.html). This requirement is specific for clusters that
use PXKE as the Kubernetes layer.
+ - [iptables](https://linux.die.net/man/8/iptables)
- (Airgap only) [Crane](https://github.com/google/go-containerregistry/blob/main/cmd/crane/README.md) is installed and
available.
- (Airgap only) [Palette Edge CLI](../../spectro-downloads.md#palette-edge-cli) is installed and available.
diff --git a/docs/docs-content/deployment-modes/controller-mode.md b/docs/docs-content/deployment-modes/controller-mode.md
index 25d1f04552..681682a365 100644
--- a/docs/docs-content/deployment-modes/controller-mode.md
+++ b/docs/docs-content/deployment-modes/controller-mode.md
@@ -42,12 +42,11 @@ You can deploy clusters in controller mode across a range of environments to mee
table below provides an overview of the different use cases and the corresponding supported environments for controller
mode deployments.
-| Use Case | Supported Environments |
-| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
-| **Public Cloud** | [AWS](../clusters/public-cloud/aws/aws.md) [Azure](../clusters/public-cloud/azure/azure.md) [GCP](../clusters/public-cloud/gcp/gcp.md) |
-| **Data Center** | [VMware vSphere](../clusters/data-center/vmware/vmware.md) |
-| **Bare Metal** | [MAAS](../clusters/data-center/maas/maas.md) |
-| **Private Cloud** | [Nutanix](../clusters/data-center/nutanix/nutanix.md) [Openstack](../clusters/data-center/openstack.md) |
+| Use Case | Supported Environments |
+| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| **Public Cloud** | [AWS](../clusters/public-cloud/aws/aws.md) [Azure](../clusters/public-cloud/azure/azure.md) [GCP](../clusters/public-cloud/gcp/gcp.md) |
+| **Data Center** | [VMware vSphere](../clusters/data-center/vmware/vmware.md) [Nutanix](../clusters/data-center/nutanix/nutanix.md) [Openstack](../clusters/data-center/openstack.md) |
+| **Bare Metal** | [MAAS](../clusters/data-center/maas/maas.md) |
## Resources
diff --git a/docs/docs-content/enterprise-version/install-palette/install-on-kubernetes/airgap-install/install.md b/docs/docs-content/enterprise-version/install-palette/install-on-kubernetes/airgap-install/install.md
index 8ad04ba333..a67467cb63 100644
--- a/docs/docs-content/enterprise-version/install-palette/install-on-kubernetes/airgap-install/install.md
+++ b/docs/docs-content/enterprise-version/install-palette/install-on-kubernetes/airgap-install/install.md
@@ -34,7 +34,9 @@ Complete the [Environment Setup](./kubernetes-airgap-instructions.md) steps befo
- Ensure `unzip` or a similar extraction utility is installed on your system.
-- The Kubernetes cluster must be set up on a supported version of Kubernetes, which includes versions v1.28 to v1.29.
+- The Kubernetes cluster must be set up on a supported version of Kubernetes. Refer to the
+ [Kubernetes Requirements](../../install-palette.md#kubernetes-requirements) section to find the version required for
+ your Palette installation.
- Ensure the Kubernetes cluster does not have Cert Manager installed. Palette requires a unique Cert Manager
configuration to be installed as part of the installation process. If Cert Manager is already installed, you must
diff --git a/docs/docs-content/enterprise-version/install-palette/install-on-kubernetes/airgap-install/kubernetes-airgap-instructions.md b/docs/docs-content/enterprise-version/install-palette/install-on-kubernetes/airgap-install/kubernetes-airgap-instructions.md
index 12370fba2d..980e87fac4 100644
--- a/docs/docs-content/enterprise-version/install-palette/install-on-kubernetes/airgap-install/kubernetes-airgap-instructions.md
+++ b/docs/docs-content/enterprise-version/install-palette/install-on-kubernetes/airgap-install/kubernetes-airgap-instructions.md
@@ -29,7 +29,7 @@ prerequisite listed is required for a successful installation.
- An x86 Linux jumpbox or bastion host with connectivity to the target platform where you are installing Palette.
-- 30 GB of disk space available for the airgap setup binary and temporary files. The uncompressed airgap content is
+- 120 GB of disk space available for the airgap setup binary and temporary files. The uncompressed airgap content is
approximately 20 GB.
- An OCI registry such as [Harbor](https://goharbor.io/) or [AWS ECR](https://aws.amazon.com/ecr/) to store Palette
diff --git a/docs/docs-content/enterprise-version/install-palette/install-on-kubernetes/install.md b/docs/docs-content/enterprise-version/install-palette/install-on-kubernetes/install.md
index cbe88d86af..3d176c495e 100644
--- a/docs/docs-content/enterprise-version/install-palette/install-on-kubernetes/install.md
+++ b/docs/docs-content/enterprise-version/install-palette/install-on-kubernetes/install.md
@@ -23,7 +23,9 @@ You can use the Palette Helm Chart to install Palette in a multi-node Kubernetes
- Ensure `unzip` or a similar extraction utility is installed on your system.
-- The Kubernetes cluster must be set up on a supported version of Kubernetes, which includes versions v1.28 to v1.29.
+- The Kubernetes cluster must be set up on a supported version of Kubernetes. Refer to the
+ [Kubernetes Requirements](../install-palette.md#kubernetes-requirements) section to find the version required for your
+ Palette installation.
- Ensure the Kubernetes cluster does not have Cert Manager installed. Palette requires a unique Cert Manager
configuration to be installed as part of the installation process. If Cert Manager is already installed, you must
diff --git a/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/checklist.md b/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/checklist.md
index c3b2bbeb09..1fa6ffff19 100644
--- a/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/checklist.md
+++ b/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/checklist.md
@@ -12,9 +12,10 @@ keywords: ["self-hosted", "enterprise"]
---
Use the following checklist to ensure you have completed all the required steps before deploying the airgap Palette
-installation.
+installation. Review this checklist with your Palette support team to ensure you have all the required assets.
-- [ ] Create a vSphere VM and Template folder named `spectro-templates`.
+- [ ] Create a vSphere VM and Template folder named `spectro-templates`. You may choose a different name for the folder
+ if you prefer.
- [ ] Import the Operating System and Kubernetes distribution OVA required for the installation and place the OVA in the
`spectro-templates` folder.
@@ -25,6 +26,9 @@ installation.
- [ ] Review the list of [pack binaries](../../airgap/supplemental-packs.md) to download and upload to your OCI
registry.
+
+- [ ] Download the required third-party binary that contains the core packs and images required for the installation.
+
- [ ] If you have custom SSL certificates you want to include, copy the custom SSL certificates, in base64 PEM format,
to the support VM. The custom certificates must be placed in the **/opt/spectro/ssl** folder. Include the
following files:
diff --git a/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/environment-setup/env-setup-vm.md b/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/environment-setup/env-setup-vm.md
index 2ddaaf85c9..4583907ca2 100644
--- a/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/environment-setup/env-setup-vm.md
+++ b/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/environment-setup/env-setup-vm.md
@@ -26,6 +26,9 @@ This guide is for preparing your airgap environment only. For instructions on in
- Currently, `9.4` is the only supported RHEL version.
-import SetupSteps from "../../../../../../../_partials/self-hosted/_setup-steps.mdx";
-
-
+
diff --git a/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/environment-setup/vmware-vsphere-airgap-instructions.md b/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/environment-setup/vmware-vsphere-airgap-instructions.md
index 26c4b6e0dc..d6fe3b6801 100644
--- a/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/environment-setup/vmware-vsphere-airgap-instructions.md
+++ b/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/environment-setup/vmware-vsphere-airgap-instructions.md
@@ -34,6 +34,7 @@ Palette.
- If you are using a generic OVA, ensure you download the airgap Palette installation binary for the version of
Palette you plan to install.
- An OVA with the operating system and Kubernetes distribution required for the Palette nodes.
+ - The third-party binary that contains the core packs and images required for the installation.
For sensitive environments, you can download the OVAs to a system with internet access and then transfer them to your
airgap environment.
@@ -77,69 +78,24 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock
1. Log in to your vCenter environment.
-2. Create a vSphere VM and Template folder named `spectro-templates`. Ensure you can access this folder with the user
- account you plan to use when deploying the Palette installation.
-
-3. Right-click on your cluster or resource group and select **Deploy OVF Template**.
-
-4. In the **Deploy OVF Template** wizard, enter the following URL to import the Operating System (OS) and Kubernetes
- distribution OVA required for the installation.
-
- Consider the following example for reference.
-
-
-
-
-
- ```url
- https://vmwaregoldenimage-console.s3.amazonaws.com/u-2204-0-k-1294-0.ova
- ```
-
-
-
-
- ```url
- https://vmwaregoldenimage-console.s3.amazonaws.com/u-2004-0-k-1294-fips.ova
- ```
-
-
-
-
- Place the OVA in the **spectro-templates** folder. Append the `r_` prefix, and remove the `.ova` suffix when
- assigning its name and target location. For example, the final output should look like `r_u-2204-0-k-1294-0`. This
- naming convention is required for the installation process to identify the OVA. Refer to the
- [Supplement Packs](../../../airgap/supplemental-packs.md#additional-ovas) page for a list of additional OS OVAs.
-
- You can terminate the deployment after the OVA is available in the `spectro-templates` folder. Refer to the
- [Deploy an OVF or OVA Template](https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-vm-administration/GUID-AFEDC48B-C96F-4088-9C1F-4F0A30E965DE.html)
- guide for more information about deploying an OVA in vCenter.
-
- :::warning
-
- If you encounter an error message during the OVA deployment stating unable to retrieve manifest or certificate,
- refer to this [known issue](https://kb.vmware.com/s/article/79986) from VMware's knowledge base for guidance on how
- to resolve the issue.
-
- :::
-
-5. Next, deploy the airgap installation OVA by using the **Deploy OVF Template** wizard again in vSphere. Insert the
- Palette install OVA URL in the **URL** field. The URL is provided to you by your Palette support representative.
- Click on **Next** to continue.
+2. Deploy the airgap installation OVA by using the **Deploy OVF Template** wizard again in vSphere. Insert the Palette
+ install OVA URL in the **URL** field. The URL is provided to you by your Palette support representative. Click on
+ **Next** to continue.
![View of the OVF deploy wizard](/vertex_airgap_vmware-vsphere-airgap-instructions_ovf-wizard.webp)
-6. Assign a name to the virtual machine and select a target location. Click on **Next** to continue.
+3. Assign a name to the virtual machine and select a target location. Click on **Next** to continue.
-7. Select a compute resource and click on **Next** to continue.
+4. Select a compute resource and click on **Next** to continue.
-8. Review the details and click on **Ignore All** to dismiss any warning messages. The OVA contains a self-signed
+5. Review the details and click on **Ignore All** to dismiss any warning messages. The OVA contains a self-signed
certificate, which causes vSphere to issue a warning. Click on **Next** to continue.
-9. Select the storage location and click on **Next** to continue.
+6. Select the storage location and click on **Next** to continue.
-10. Select the network and click on **Next** to continue.
+7. Select the network and click on **Next** to continue.
-11. The last step is to customize the template. Review the table below to learn more about each field. Click on **Next**
+8. The last step is to customize the template. Review the table below to learn more about each field. Click on **Next**
after you have completed the customization to continue.
| Parameter | Description | Required |
@@ -151,22 +107,22 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock
| **Hostname** | Enter a fully qualified hostname for the airgap support VM. For example, `palette.example.com`. The default value is `ubuntuguest`. | Yes |
| **Url to seed instance data from** | You can specify a URL to seed instance data from. You can leave this value empty. | No |
-12. Review the details and click on **Finish** to deploy the airgap support VM.
+9. Review the details and click on **Finish** to deploy the airgap support VM.
-13. It takes a while for the airgap support VM to deploy, approximately 45 min or more depending on your internet
+10. It takes a while for the airgap support VM to deploy, approximately 45 min or more depending on your internet
connection. The download of the OVA takes up majority of the time. The image is over 30 GB and contains all the
dependencies required to deploy a Palette. Once the deployment is complete, the airgap support VM is displayed in
the vSphere inventory. The VM will be powered off. Power on the VM to continue.
-14. SSH into the airgap support VM. Use the following command to SSH into the VM. Replace the IP address below with the
+11. SSH into the airgap support VM. Use the following command to SSH into the VM. Replace the IP address below with the
IP address or hostname of the airgap support VM. The default user account is `ubuntu`. Replace the path to the
private SSH key and the IP address with the IP address or domain name of the airgap support VM.
```shell
- ssh -identity_file /path/to/private/key ubuntu@palette.example.com
+ ssh -i /path/to/private/key ubuntu@palette.example.com
```
-15. Change the password for the `ubuntu` user account. You will be prompted to change the password the first time you
+12. Change the password for the `ubuntu` user account. You will be prompted to change the password the first time you
log in through SSH. The new password must meet the following requirements:
- At least 14 characters long
@@ -176,7 +132,7 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock
- At least 1 number
- At least 1 special character
-16. Once you change the password, the SSH session will be terminated. SSH back into the airgap support VM with the new
+13. Once you change the password, the SSH session will be terminated. SSH back into the airgap support VM with the new
password.
:::info
@@ -191,7 +147,7 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock
Connection to palette.example.com closed.
```
-17. If you want to assign a static IP address to the airgap support VM, you can do so now. Click on the box below to
+14. If you want to assign a static IP address to the airgap support VM, you can do so now. Click on the box below to
expand the instructions. Otherwise, proceed to the next step.
@@ -249,13 +205,13 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock
-18. Switch to the `root` user account. You will need to use the `root` user account to complete the remaining steps.
+15. Switch to the `root` user account. You will need to use the `root` user account to complete the remaining steps.
```shell
sudo --login
```
-19. If you have custom SSL certificates you want to apply to the image and pack registry, and the Spectro Cloud
+16. If you have custom SSL certificates you want to apply to the image and pack registry, and the Spectro Cloud
Repository, copy the custom SSL certificates, in base64 PEM format, to the airgap support VM.
If you do not provide a custom SSL certificate, the airgap setup process will generate a self-signed certificate for
@@ -284,7 +240,7 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock
- **server.crt**
- **server.key**
-20. Start the airgap initialization process by issuing the following command. The script requires the hostname or IP
+17. Start the airgap initialization process by issuing the following command. The script requires the hostname or IP
address of the airgap support VM. Choose the preferred method for your environment. Be aware that the script will
generate a self-signed certificate for the value you provide.
@@ -365,25 +321,26 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock
-21. The output of the script contains credentials and values you will need when completing the installation with the
+18. The output of the script contains credentials and values you will need when completing the installation with the
Palette CLI. If you need to review this information in the future, invoke the script again.
-22. If you have used a release-specific installation OVA, skip this step. Otherwise, if you have used a generic
- installation OVA, use the following command to execute the Palette airgap installation binary.
+19. Next, download the third party binary. Your support representative will provide you with credentials to access the
+ third-party binary. Use the following command to download the third-party binary. Replace the `XXXXX` and `YYYYY`
+ placeholders with the credentials provided to you. Replace the `X.X` placeholder with the version of the third-party
+ binary you are downloading. Ask your support representative for the version of the third-party binary you need.
```shell
- chmod +x airgap-.bin && ./airgap-.bin
+ curl --user XXXXX:YYYYY https://software-private.spectrocloud.com/airgap/thirdparty/airgap-thirdparty-X.X.X.bin \
+ --output airgap-upload.bin
```
- Consider the following example for reference.
+20. Use the following command to start the third-party binary. The third-party binary uploads the release-specific packs
+ and images to the registry configured in step **17** of this guide. This process may take some time to complete.
```shell
- chmod +x airgap-v4.4.14.bin && ./airgap-v4.4.14.bin
+ chmod +x airgap-upload.bin && ./airgap-upload.bin
```
- After the Palette airgap installation binary is verified and uncompressed, it uploads the release-specific packs and
- images to the registry configured in step **20** of this guide. This process may take some time to complete.
-
```text hideClipboard
Verifying archive integrity... 100% MD5 checksums are OK. All good.
Uncompressing Airgap Setup - Version 4.4.14 100%
@@ -397,9 +354,58 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock
Once the airgap binary completes its tasks, you will receive a **Setup Completed** success message.
-23. Review the [Additional Packs](../../../airgap/supplemental-packs.md) page and identify any additional packs you want
+21. Review the [Additional Packs](../../../airgap/supplemental-packs.md) page and identify any additional packs you want
to add to your OCI registry. You can also add additional packs after the installation is complete.
+22. Navigate back to the vSphere console and create a vSphere VM and Template folder named `spectro-templates`. Ensure
+ you can access this folder with the user account you plan to use when deploying the VerteX installation. You can
+ choose a different name for the folder if you prefer, but ensure you use the same name when the Palette CLI prompts
+ you for the folder name.
+
+23. Right-click on your cluster or resource group and select **Deploy OVF Template**.
+
+24. In the **Deploy OVF Template** wizard, enter the following URL to import the Operating System (OS) and Kubernetes
+ distribution OVA required for the installation. Refer to the
+ [Kubernetes Requirements](../../../install-palette.md#kubernetes-requirements) section to learn if the version of
+ Palette you are installing requires a new OS and Kubernetes OVA.
+
+ Consider the following example for reference.
+
+
+
+
+
+ ```url
+ https://vmwaregoldenimage-console.s3.amazonaws.com/u-2204-0-k-1294-0.ova
+ ```
+
+
+
+
+ ```url
+ https://vmwaregoldenimage-console.s3.amazonaws.com/u-2004-0-k-1294-fips.ova
+ ```
+
+
+
+
+ Place the OVA in the **spectro-templates** folder or in the folder you created in step **21**. Append the `r_` prefix,
+ and remove the `.ova` suffix when assigning its name and target location. For example, the final output should look like
+ `r_u-2204-0-k-1294-0`. This naming convention is required for the installation process to identify the OVA. Refer to the
+ [Supplement Packs](../../../airgap/supplemental-packs.md#additional-ovas) page for a list of additional OS OVAs.
+
+ You can terminate the deployment after the OVA is available in the `spectro-templates` folder. Refer to the
+ [Deploy an OVF or OVA Template](https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-vm-administration/GUID-AFEDC48B-C96F-4088-9C1F-4F0A30E965DE.html)
+ guide for more information about deploying an OVA in vCenter.
+
+:::warning
+
+If you encounter an error message during the OVA deployment stating unable to retrieve manifest or certificate, refer to
+this [known issue](https://kb.vmware.com/s/article/79986) from VMware's knowledge base for guidance on how to resolve
+the issue.
+
+:::
+
You have now completed the preparation steps for an airgap installation. Check out the [Validate](#validate) section to
ensure the airgap setup process is completed successfully. After you validate the airgap setup process completion,
review the [Next Steps](#next-steps).
diff --git a/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/install.md b/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/install.md
index 68625d67b3..68a7ccada6 100644
--- a/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/install.md
+++ b/docs/docs-content/enterprise-version/install-palette/install-on-vmware/airgap-install/install.md
@@ -210,17 +210,18 @@ Use the following steps to install Palette.
use the provided VMware credentials to retrieve information from your VMware vSphere environment and present options
for you to select from.
- | **Parameter** | **Description** |
- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
- | **Datacenter** | The installer retrieves the Datacenter automatically. |
- | **Folder** | Select the folder that contains the VM instance. |
- | **Cluster** | Select the cluster where you want to deploy Palette. |
- | **Network** | Select the network where you want to deploy Palette. |
- | **Resource Pool** | Select the resource pool where you want to deploy Palette. |
- | **Datastore** | Select the datastore where you want to deploy Palette. |
- | **Fault Domains** | Configure one or more fault domains by selecting values for these properties: Cluster, Network (with network connectivity), Resource Pool, and Storage Type (Datastore or VM Storage Policy). Note that when configuring the Network, if you are using a distributed switch, choose the network that contains the switch. |
- | **NTP Servers** | You can provide a list of Network Time Protocol (NTP) servers. |
- | **SSH Public Keys** | Provide any public SSH keys to access your Palette VMs. This option opens up your system's default text editor. Vi is the default text editor for most Linux distributions. To review basic vi commands, check out the [vi Commands](https://www.cs.colostate.edu/helpdocs/vi.html) reference. |
+ | **Parameter** | **Description** |
+ | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+ | **Datacenter** | The installer retrieves the Datacenter automatically. |
+ | **Folder** | Select the folder that contains the VM instance. |
+ | **Image Template Folder** | Select the folder that contains the CAPI image templates. |
+ | **Cluster** | Select the cluster where you want to deploy Palette. |
+ | **Network** | Select the network where you want to deploy Palette. |
+ | **Resource Pool** | Select the resource pool where you want to deploy Palette. |
+ | **Datastore** | Select the datastore where you want to deploy Palette. |
+ | **Fault Domains** | Configure one or more fault domains by selecting values for these properties: Cluster, Network (with network connectivity), Resource Pool, and Storage Type (Datastore or VM Storage Policy). Note that when configuring the Network, if you are using a distributed switch, choose the network that contains the switch. |
+ | **NTP Servers** | You can provide a list of Network Time Protocol (NTP) servers. |
+ | **SSH Public Keys** | Provide any public SSH keys to access your Palette VMs. This option opens up your system's default text editor. Vi is the default text editor for most Linux distributions. To review basic vi commands, check out the [vi Commands](https://www.cs.colostate.edu/helpdocs/vi.html) reference. |
12. Specify the IP pool configuration. The placement type can be Static or Dynamic Host Configuration Protocol (DHCP).
Choosing static placement creates an IP pool from which VMs are assigned IP addresses. Choosing DHCP assigns IP
@@ -280,7 +281,7 @@ Use the following steps to install Palette.
attempt. For example:
```bash
- palette ec install --config /home/spectro/.palette/ec/ec-20230706150945/ec.yaml
+ palette ec install --config-file /home/spectro/.palette/ec/ec-20230706150945/ec.yaml
```
:::
diff --git a/docs/docs-content/enterprise-version/install-palette/install-on-vmware/install.md b/docs/docs-content/enterprise-version/install-palette/install-on-vmware/install.md
index a449b5830c..b85936cec7 100644
--- a/docs/docs-content/enterprise-version/install-palette/install-on-vmware/install.md
+++ b/docs/docs-content/enterprise-version/install-palette/install-on-vmware/install.md
@@ -97,12 +97,10 @@ Use the following steps to install Palette.
2. Create a vSphere VM and Template folder with the name `spectro-templates`. Ensure this folder is accessible by the
user account you will use to deploy the Palette installation.
-3. Use the URL below to import the Operating System and Kubernetes distribution OVA required for the install. Place the
- OVA in the `spectro-templates` folder.
-
- ```url
- https://vmwaregoldenimage.s3.amazonaws.com/u-2204-0-k-12813-0.ova
- ```
+3. Find the OVA download URL corresponding to your Palette version in the
+ [Kubernetes Requirements](../install-palette.md#kubernetes-requirements) section. Use the identified URL to import
+ the Operating System and Kubernetes distribution OVA required for the install. Place the OVA in the
+ `spectro-templates` folder.
4. Append an `r_` prefix to the OVA name and remove the `.ova` suffix after the import. For example, the final output
should look like `r_u-2204-0-k-12813-0`. This naming convention is required for the install process to identify the
@@ -182,17 +180,18 @@ Use the following steps to install Palette.
use the provided VMware credentials to retrieve information from your VMware vSphere environment and present options
for you to select from.
- | **Parameter** | **Description** |
- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
- | **Datacenter** | The installer retrieves the Datacenter automatically. |
- | **Folder** | Select the folder that contains the VM instance. |
- | **Cluster** | Select the cluster where you want to deploy Palette. |
- | **Network** | Select the network where you want to deploy Palette. |
- | **Resource Pool** | Select the resource pool where you want to deploy Palette. |
- | **Datastore** | Select the datastore where you want to deploy Palette. |
- | **Fault Domains** | Configure one or more fault domains by selecting values for these properties: Cluster, Network (with network connectivity), Resource Pool, and Storage Type (Datastore or VM Storage Policy). Note that when configuring the Network, if you are using a distributed switch, choose the network that contains the switch. |
- | **NTP Servers** | You can provide a list of Network Time Protocol (NTP) servers. |
- | **SSH Public Keys** | Provide any public SSH keys to access your Palette VMs. This option opens up your system's default text editor. Vi is the default text editor for most Linux distributions. To review basic vi commands, check out the [vi Commands](https://www.cs.colostate.edu/helpdocs/vi.html) reference. |
+ | **Parameter** | **Description** |
+ | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+ | **Datacenter** | The installer retrieves the Datacenter automatically. |
+ | **Folder** | Select the folder that contains the VM instance. |
+ | **Image Template Folder** | Select the folder that contains the CAPI image templates. |
+ | **Cluster** | Select the cluster where you want to deploy Palette. |
+ | **Network** | Select the network where you want to deploy Palette. |
+ | **Resource Pool** | Select the resource pool where you want to deploy Palette. |
+ | **Datastore** | Select the datastore where you want to deploy Palette. |
+ | **Fault Domains** | Configure one or more fault domains by selecting values for these properties: Cluster, Network (with network connectivity), Resource Pool, and Storage Type (Datastore or VM Storage Policy). Note that when configuring the Network, if you are using a distributed switch, choose the network that contains the switch. |
+ | **NTP Servers** | You can provide a list of Network Time Protocol (NTP) servers. |
+ | **SSH Public Keys** | Provide any public SSH keys to access your Palette VMs. This option opens up your system's default text editor. Vi is the default text editor for most Linux distributions. To review basic vi commands, check out the [vi Commands](https://www.cs.colostate.edu/helpdocs/vi.html) reference. |
15. Specify the IP pool configuration. The placement type can be Static or Dynamic Host Configuration Protocol (DHCP).
Choosing static placement creates an IP pool from which VMs are assigned IP addresses. Choosing DHCP assigns IP
@@ -252,7 +251,7 @@ Use the following steps to install Palette.
attempt. For example:
```bash
- palette ec install --config /home/spectro/.palette/ec/ec-20230706150945/ec.yaml
+ palette ec install --config-file /home/spectro/.palette/ec/ec-20230706150945/ec.yaml
```
:::
diff --git a/docs/docs-content/enterprise-version/install-palette/install-palette.md b/docs/docs-content/enterprise-version/install-palette/install-palette.md
index 9eb7de1032..10d3a49a7c 100644
--- a/docs/docs-content/enterprise-version/install-palette/install-palette.md
+++ b/docs/docs-content/enterprise-version/install-palette/install-palette.md
@@ -62,6 +62,14 @@ active nodes and pods at any given time.
| Medium (Recommended) | Up to 3000 Nodes each with 30 Pods (90,000 Pods) |
| Large | Up to 5000 Nodes each with 30 Pods (150,000 Pods) |
+## Kubernetes Requirements
+
+The following table presents the Kubernetes version corresponding to each Palette version. It provides the download URLs
+for the Operating System and Kubernetes distribution OVA required for the install. Ensure that you use FIPS OVA URL if
+you require a compliant installation.
+
+
+
## Proxy Requirements
diff --git a/docs/docs-content/enterprise-version/system-management/change-cloud-config.md b/docs/docs-content/enterprise-version/system-management/change-cloud-config.md
new file mode 100644
index 0000000000..1867b315dc
--- /dev/null
+++ b/docs/docs-content/enterprise-version/system-management/change-cloud-config.md
@@ -0,0 +1,14 @@
+---
+sidebar_label: "Modify Cloud Provider Configuration"
+title: "Modify Cloud Provider Configuration"
+description: "Learn how to modify the system-level cloud provider configuration in Palette VerteX."
+icon: ""
+hide_table_of_contents: false
+sidebar_position: 130
+tags: ["vertex", "management", "clouds"]
+keywords: ["self-hosted", "vertex"]
+---
+
+import ConfigProvider from "../../../../_partials/self-hosted/_cloud-provider-config.mdx";
+
+
diff --git a/docs/docs-content/enterprise-version/upgrade/upgrade-k8s/airgap.md b/docs/docs-content/enterprise-version/upgrade/upgrade-k8s/airgap.md
index bc33c7da0d..7efa6cbe45 100644
--- a/docs/docs-content/enterprise-version/upgrade/upgrade-k8s/airgap.md
+++ b/docs/docs-content/enterprise-version/upgrade/upgrade-k8s/airgap.md
@@ -45,6 +45,10 @@ Palette upgrade.
- Access to the latest Palette Helm Chart. Refer to [Access Palette](/enterprise-version/#access-palette) for more
details.
+- The Kubernetes cluster must be set up on a version of Kubernetes that is compatible to your upgraded version. Refer to
+ the [Kubernetes Requirements](../../install-palette/install-palette.md#kubernetes-requirements) section to find the
+ version required for your Palette installation.
+
## Upgrade
1. Log in to the Linux environment from which you can access your self-hosted airgap Palette instance.
@@ -281,30 +285,27 @@ Palette upgrade.
```
11. In a code editor of your choice, open the **extras/cert-manager/values.yaml** file and replace the
- `controllerImage`, `webhookImage`, and `amceResolverImage` image URLs with your OCI image registry URLs.
+ `cainjectorImage`,`controllerImage`, `webhookImage`, and `amceResolverImage` image URLs and with your OCI image
+ registry URL and the `/spectro-images/` namespace.
- ```yaml
+ ```yaml {2-5}
image:
- cainjectorImage: "gcr.io/spectro-images-public/release-fips/jetstack/cert-manager-cainjector:spectro-v1.11.0-20230427"
- // highlight-start
- controllerImage: "/spectro-images-public/release-fips/jetstack/cert-manager-controller:spectro-v1.11.0-20230427"
- webhookImage: "/spectro-images-public/release-fips/jetstack/cert-manager-webhook:spectro-v1.11.0-20230808"
- amceResolverImage: "/spectro-images-public/release-fips/jetstack/cert-manager-acmesolver:spectro-v1.11.0-20230427"
- // highlight-end
+ cainjectorImage: "/spectro-images/gcr.io/spectro-images-public/release-fips/jetstack/cert-manager-cainjector:spectro-v1.11.0-20230427"
+ controllerImage: "/spectro-images/gcr.io/spectro-images-public/release-fips/jetstack/cert-manager-controller:spectro-v1.11.0-20230427"
+ webhookImage: "/spectro-images/gcr.io/spectro-images-public/release-fips/jetstack/cert-manager-webhook:spectro-v1.11.0-20230808"
+ amceResolverImage: "/spectro-images/gcr.io/spectro-images-public/release-fips/jetstack/cert-manager-acmesolver:spectro-v1.11.0-20230427"
featureGates: "AdditionalCertificateOutputFormats=true"
```
Consider the following example for reference.
- ```yaml
+ ```yaml {2-5}
image:
- cainjectorImage: "gcr.io/spectro-images-public/release-fips/jetstack/cert-manager-cainjector:spectro-v1.11.0-20230427"
- // highlight-start
- controllerImage: "harbor.docs.spectro.dev/spectro-images-public/release-fips/jetstack/cert-manager-controller:spectro-v1.11.0-20230427"
- webhookImage: "harbor.docs.spectro.dev/spectro-images-public/release-fips/jetstack/cert-manager-webhook:spectro-v1.11.0-20230808"
- amceResolverImage: "harbor.docs.spectro.dev/spectro-images-public/release-fips/jetstack/cert-manager-acmesolver:spectro-v1.11.0-20230427"
- // highlight-end
+ cainjectorImage: "harbor.docs.spectro.dev/spectro-images/gcr.io/spectro-images-public/release-fips/jetstack/cert-manager-cainjector:spectro-v1.11.0-20230427"
+ controllerImage: "harbor.docs.spectro.dev/spectro-images/gcr.io/spectro-images-public/release-fips/jetstack/cert-manager-controller:spectro-v1.11.0-20230427"
+ webhookImage: "harbor.docs.spectro.dev/spectro-images/gcr.io/spectro-images-public/release-fips/jetstack/cert-manager-webhook:spectro-v1.11.0-20230808"
+ amceResolverImage: "harbor.docs.spectro.dev/spectro-images/gcr.io/spectro-images-public/release-fips/jetstack/cert-manager-acmesolver:spectro-v1.11.0-20230427"
featureGates: "AdditionalCertificateOutputFormats=true"
```
diff --git a/docs/docs-content/enterprise-version/upgrade/upgrade-k8s/non-airgap.md b/docs/docs-content/enterprise-version/upgrade/upgrade-k8s/non-airgap.md
index 7df02a932e..0948a2605f 100644
--- a/docs/docs-content/enterprise-version/upgrade/upgrade-k8s/non-airgap.md
+++ b/docs/docs-content/enterprise-version/upgrade/upgrade-k8s/non-airgap.md
@@ -36,6 +36,10 @@ Palette upgrade.
- Access to the latest Palette Helm Chart. Refer to [Access Palette](/enterprise-version/#access-palette) for more
details.
+- The Kubernetes cluster must be set up on a version of Kubernetes that is compatible to your upgraded version. Refer to
+ the [Kubernetes Requirements](../../install-palette/install-palette.md#kubernetes-requirements) section to find the
+ version required for your Palette installation.
+
## Upgrade
:::info
diff --git a/docs/docs-content/enterprise-version/upgrade/upgrade-notes.md b/docs/docs-content/enterprise-version/upgrade/upgrade-notes.md
index 2eae950a9e..c7f5c31d61 100644
--- a/docs/docs-content/enterprise-version/upgrade/upgrade-notes.md
+++ b/docs/docs-content/enterprise-version/upgrade/upgrade-notes.md
@@ -57,7 +57,7 @@ Palette 4.0 includes the following major enhancements that require user interven
A known issue impacts all self-hosted Palette instances older then 4.4.14. Before upgrading a Palette instance with
version older than 4.4.14, ensure that you execute a utility script to make all your cluster IDs unique in your
Persistent Volume Claim (PVC) metadata. For more information, refer to the
-[Troubleshooting Guide](../../troubleshooting/enterprise-install.md#non-unique-vsphere-cns-mapping).
+[Troubleshooting Guide](../../troubleshooting/enterprise-install.md#scenario---non-unique-vsphere-cns-mapping).
:::
diff --git a/docs/docs-content/enterprise-version/upgrade/upgrade-vmware/airgap.md b/docs/docs-content/enterprise-version/upgrade/upgrade-vmware/airgap.md
index fd512b6af2..24bcfd06d2 100644
--- a/docs/docs-content/enterprise-version/upgrade/upgrade-vmware/airgap.md
+++ b/docs/docs-content/enterprise-version/upgrade/upgrade-vmware/airgap.md
@@ -17,7 +17,7 @@ details.
If you are upgrading from a Palette version that is older than 4.4.14, ensure that you have executed the utility script
to make the CNS mapping unique for the associated PVC. For more information, refer to the
-[Troubleshooting guide](../../../troubleshooting/enterprise-install.md#non-unique-vsphere-cns-mapping).
+[Troubleshooting guide](../../../troubleshooting/enterprise-install.md#scenario---non-unique-vsphere-cns-mapping).
:::
@@ -39,6 +39,10 @@ Palette upgrade.
- A diff or text comparison tool of your choice.
+- The Kubernetes cluster must be set up on a version of Kubernetes that is compatible to your upgraded version. Refer to
+ the [Kubernetes Requirements](../../install-palette/install-palette.md#kubernetes-requirements) section to find the
+ version required for your Palette installation.
+
## Upgrade
:::info
@@ -86,19 +90,17 @@ steps one through four. Otherwise, start at step five.
[Deploy an OVF or OVA Template](https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-vm-administration/GUID-AFEDC48B-C96F-4088-9C1F-4F0A30E965DE.html)
guide for more information on deploying OVAs in vCenter.
- :::tip
-
5. In your terminal, use the following command template to SSH into the Palette airgap support VM. Enter the path to
your private SSH key, your username, and the IP or domain of the airgap support VM. The default username is `ubuntu`.
```shell
- ssh -identity_file ubuntu@
+ ssh -i ubuntu@
```
Consider the following command example for reference.
```shell
- ssh -identity_file /docs/ssh-private-key.pem ubuntu@palette.example.com
+ ssh -i /docs/ssh-private-key.pem ubuntu@palette.example.com
```
6. Use the following command to switch to the `root` user account, which you need to proceed with the upgrade.
diff --git a/docs/docs-content/enterprise-version/upgrade/upgrade-vmware/non-airgap.md b/docs/docs-content/enterprise-version/upgrade/upgrade-vmware/non-airgap.md
index 4229176347..141bfd044b 100644
--- a/docs/docs-content/enterprise-version/upgrade/upgrade-vmware/non-airgap.md
+++ b/docs/docs-content/enterprise-version/upgrade/upgrade-vmware/non-airgap.md
@@ -16,7 +16,7 @@ version available. Refer to the [Supported Upgrade Paths](../upgrade.md#supporte
If you are upgrading from a Palette version that is older than 4.4.14, ensure that you have executed the utility script
to make the CNS mapping unique for the associated PVC. For more information, refer to the
-[Troubleshooting guide](../../../troubleshooting/enterprise-install.md#non-unique-vsphere-cns-mapping).
+[Troubleshooting guide](../../../troubleshooting/enterprise-install.md#scenario---non-unique-vsphere-cns-mapping).
:::
@@ -28,6 +28,9 @@ Palette upgrade.
- Access to the Palette system console.
- A diff or text comparison tool of your choice.
+- The Kubernetes cluster must be set up on a version of Kubernetes that is compatible to your upgraded version. Refer to
+ the [Kubernetes Requirements](../../install-palette/install-palette.md#kubernetes-requirements) section to find the
+ version required for your Palette installation.
## Upgrade
diff --git a/docs/docs-content/getting-started/additional-capabilities/additional-capabilities.md b/docs/docs-content/getting-started/additional-capabilities/additional-capabilities.md
index 2d19746ff4..ba6c473f19 100644
--- a/docs/docs-content/getting-started/additional-capabilities/additional-capabilities.md
+++ b/docs/docs-content/getting-started/additional-capabilities/additional-capabilities.md
@@ -55,6 +55,8 @@ Started section to learn how they can grow with Palette and have a long-term rel
In this section, you get an overview of other parts of Palette not yet covered by your Getting Started journey so far.
Explore more through the following pages.
+
+
diff --git a/docs/docs-content/getting-started/aws/aws.md b/docs/docs-content/getting-started/aws/aws.md
index 65b549b94a..286e0d2313 100644
--- a/docs/docs-content/getting-started/aws/aws.md
+++ b/docs/docs-content/getting-started/aws/aws.md
@@ -30,37 +30,37 @@ your cluster is deployed, you can update it using cluster profile updates.
title: "Set up Palette with AWS",
description: "Set up the prerequisites of using Palette with AWS.",
buttonText: "Learn more",
- relativeURL: "./setup",
+ url: "/getting-started/aws/setup",
},
{
title: "Create a Cluster Profile",
description: "Create a full cluster profile in Palette.",
buttonText: "Learn more",
- relativeURL: "./create-cluster-profile",
+ url: "/getting-started/aws/create-cluster-profile",
},
{
title: "Deploy a Cluster",
description: "Deploy a Palette host cluster to AWS.",
buttonText: "Learn more",
- relativeURL: "./deploy-k8s-cluster",
+ url: "/getting-started/aws/deploy-k8s-cluster",
},
{
title: "Deploy Cluster Profile Updates",
description: "Update your deployed clusters using Palette Cluster Profiles.",
buttonText: "Learn more",
- relativeURL: "./update-k8s-cluster",
+ url: "/getting-started/aws/update-k8s-cluster",
},
{
title: "Cluster Management with Terraform",
description: "Deploy and update a Palette host cluster with Terraform.",
buttonText: "Learn more",
- relativeURL: "./deploy-manage-k8s-cluster-tf",
+ url: "/getting-started/aws/deploy-manage-k8s-cluster-tf",
},
{
title: "Scale, Upgrade, and Secure Clusters",
description: "Learn how to scale, upgrade, and secure Palette host clusters deployed to AWS.",
buttonText: "Learn more",
- relativeURL: "./scale-secure-cluster",
+ url: "/getting-started/aws/scale-secure-cluster",
},
]}
/>
diff --git a/docs/docs-content/getting-started/azure/azure.md b/docs/docs-content/getting-started/azure/azure.md
index 3503036dde..a610b2854b 100644
--- a/docs/docs-content/getting-started/azure/azure.md
+++ b/docs/docs-content/getting-started/azure/azure.md
@@ -30,37 +30,37 @@ your cluster is deployed, you can update it using cluster profile updates.
title: "Set up Palette with Azure",
description: "Set up the prerequisites of using Palette with Azure.",
buttonText: "Learn more",
- relativeURL: "./setup",
+ url: "/getting-started/azure/setup",
},
{
title: "Create a Cluster Profile",
description: "Create a full cluster profile in Palette.",
buttonText: "Learn more",
- relativeURL: "./create-cluster-profile",
+ url: "/getting-started/azure/create-cluster-profile",
},
{
title: "Deploy a Cluster",
description: "Deploy a Palette host cluster to Azure.",
buttonText: "Learn more",
- relativeURL: "./deploy-k8s-cluster",
+ url: "/getting-started/azure/deploy-k8s-cluster",
},
{
title: "Deploy Cluster Profile Updates",
description: "Update your deployed clusters using Palette Cluster Profiles.",
buttonText: "Learn more",
- relativeURL: "./update-k8s-cluster",
+ url: "/getting-started/azure/update-k8s-cluster",
},
{
title: "Cluster Management with Terraform",
description: "Deploy and update a Palette host cluster with Terraform.",
buttonText: "Learn more",
- relativeURL: "./deploy-manage-k8s-cluster-tf",
+ url: "/getting-started/azure/deploy-manage-k8s-cluster-tf",
},
{
title: "Scale, Upgrade, and Secure Clusters",
description: "Learn how to scale, upgrade, and secure Palette host clusters deployed to Azure.",
buttonText: "Learn more",
- relativeURL: "./scale-secure-cluster",
+ url: "/getting-started/azure/scale-secure-cluster",
},
]}
/>
diff --git a/docs/docs-content/getting-started/gcp/gcp.md b/docs/docs-content/getting-started/gcp/gcp.md
index b15e5200ce..db882c84d7 100644
--- a/docs/docs-content/getting-started/gcp/gcp.md
+++ b/docs/docs-content/getting-started/gcp/gcp.md
@@ -30,37 +30,37 @@ your cluster is deployed, you can update it using cluster profile updates.
title: "Set up Palette with GCP",
description: "Set up the prerequisites of using Palette with GCP.",
buttonText: "Learn more",
- relativeURL: "./setup",
+ url: "/getting-started/gcp/setup",
},
{
title: "Create a Cluster Profile",
description: "Create a full cluster profile in Palette.",
buttonText: "Learn more",
- relativeURL: "./create-cluster-profile",
+ url: "/getting-started/gcp/create-cluster-profile",
},
{
title: "Deploy a Cluster",
description: "Deploy a Palette host cluster to GCP.",
buttonText: "Learn more",
- relativeURL: "./deploy-k8s-cluster",
+ url: "/getting-started/gcp/deploy-k8s-cluster",
},
{
title: "Deploy Cluster Profile Updates",
description: "Update your deployed clusters using Palette Cluster Profiles.",
buttonText: "Learn more",
- relativeURL: "./update-k8s-cluster",
+ url: "/getting-started/gcp/update-k8s-cluster",
},
{
title: "Cluster Management with Terraform",
description: "Deploy and update a Palette host cluster with Terraform.",
buttonText: "Learn more",
- relativeURL: "./deploy-manage-k8s-cluster-tf",
+ url: "/getting-started/gcp/deploy-manage-k8s-cluster-tf",
},
{
title: "Scale, Upgrade, and Secure Clusters",
description: "Learn how to scale, upgrade, and secure Palette host clusters deployed to GCP.",
buttonText: "Learn more",
- relativeURL: "./scale-secure-cluster",
+ url: "/getting-started/gcp/scale-secure-cluster",
},
]}
/>
diff --git a/docs/docs-content/getting-started/getting-started.md b/docs/docs-content/getting-started/getting-started.md
index fc29e91d72..70be39162c 100644
--- a/docs/docs-content/getting-started/getting-started.md
+++ b/docs/docs-content/getting-started/getting-started.md
@@ -57,37 +57,37 @@ Explore more through the following pages.
title: "Introduction to Palette",
description: "Learn about what makes Palette different.",
buttonText: "Learn more",
- relativeURL: "./introduction",
+ url: "/getting-started/introduction",
},
{
title: "Deploy a Cluster to Amazon Web Services (AWS)",
description: "Deploy and update a Palette host cluster to AWS.",
buttonText: "Learn more",
- relativeURL: "./aws",
+ url: "/getting-started/aws",
},
{
title: "Deploy a Cluster to Microsoft Azure",
description: "Deploy and update a Palette host cluster to Azure.",
buttonText: "Learn more",
- relativeURL: "./azure",
+ url: "/getting-started/azure",
},
{
title: "Deploy a Cluster to Google Cloud Platform (GCP)",
description: "Deploy and update a Palette host cluster to Google Cloud.",
buttonText: "Learn more",
- relativeURL: "./gcp",
+ url: "/getting-started/gcp",
},
{
title: "Deploy a Cluster to VMware",
description: "Deploy and update a Palette host cluster to VMware vSphere.",
buttonText: "Learn more",
- relativeURL: "./vmware",
+ url: "/getting-started/vmware",
},
{
title: "Additional Capabilities",
description: "Learn about Palette's additional capabilities.",
buttonText: "Learn more",
- relativeURL: "./additional-capabilities",
+ url: "/getting-started/additional-capabilities",
},
]}
/>
diff --git a/docs/docs-content/getting-started/introduction.md b/docs/docs-content/getting-started/introduction.md
index 2b6522c36e..8866817b3f 100644
--- a/docs/docs-content/getting-started/introduction.md
+++ b/docs/docs-content/getting-started/introduction.md
@@ -89,25 +89,25 @@ Select your infrastructure provider to start exploring Palette.
title: "Deploy a Cluster to Amazon Web Services (AWS)",
description: "Deploy and update a Palette host cluster to AWS.",
buttonText: "Learn more",
- relativeURL: "../aws",
+ url: "/getting-started/aws",
},
{
title: "Deploy a Cluster to Microsoft Azure",
description: "Deploy and update a Palette host cluster to Azure.",
buttonText: "Learn more",
- relativeURL: "../azure",
+ url: "/getting-started/azure",
},
{
title: "Deploy a Cluster to Google Cloud Platform (GCP)",
description: "Deploy and update a Palette host cluster to Google Cloud.",
buttonText: "Learn more",
- relativeURL: "../gcp",
+ url: "/getting-started/gcp",
},
{
title: "Deploy a Cluster to VMware",
description: "Deploy and update a Palette host cluster to VMware vSphere.",
buttonText: "Learn more",
- relativeURL: "../vmware",
+ url: "/getting-started/vmware",
},
]}
/>
diff --git a/docs/docs-content/getting-started/vmware/vmware.md b/docs/docs-content/getting-started/vmware/vmware.md
index efb584707a..a44cc8e358 100644
--- a/docs/docs-content/getting-started/vmware/vmware.md
+++ b/docs/docs-content/getting-started/vmware/vmware.md
@@ -30,43 +30,43 @@ Once your cluster is deployed, you can update it using cluster profile updates.
title: "Set up Palette with VMware",
description: "Set up the prerequisites of using Palette with VMware.",
buttonText: "Learn more",
- relativeURL: "./setup",
+ url: "/getting-started/vmware/setup",
},
{
title: "Deploy a PCG",
description: "Learn to deploy a PCG with Palette CLI.",
buttonText: "Learn more",
- relativeURL: "./deploy-pcg",
+ url: "/getting-started/vmware/deploy-pcg",
},
{
title: "Create a Cluster Profile",
description: "Create a full cluster profile in Palette.",
buttonText: "Learn more",
- relativeURL: "./create-cluster-profile",
+ url: "/getting-started/vmware/create-cluster-profile",
},
{
title: "Deploy a Cluster",
description: "Deploy a Palette host cluster to VMware.",
buttonText: "Learn more",
- relativeURL: "./deploy-k8s-cluster",
+ url: "/getting-started/vmware/deploy-k8s-cluster",
},
{
title: "Deploy Cluster Profile Updates",
description: "Update your deployed clusters using Palette Cluster Profiles.",
buttonText: "Learn more",
- relativeURL: "./update-k8s-cluster",
+ url: "/getting-started/vmware/update-k8s-cluster",
},
{
title: "Cluster Management with Terraform",
description: "Deploy and update a Palette host cluster with Terraform.",
buttonText: "Learn more",
- relativeURL: "./deploy-manage-k8s-cluster-tf",
+ url: "/getting-started/vmware/deploy-manage-k8s-cluster-tf",
},
{
title: "Scale, Upgrade, and Secure Clusters",
description: "Learn how to scale, upgrade, and secure Palette host clusters deployed to VMware.",
buttonText: "Learn more",
- relativeURL: "./scale-secure-cluster",
+ url: "/getting-started/vmware/scale-secure-cluster",
},
]}
/>
diff --git a/docs/docs-content/integrations/harbor-edge-native-config.md b/docs/docs-content/integrations/harbor-edge-native-config.md
index 29b1459a65..9ebe6f2f67 100644
--- a/docs/docs-content/integrations/harbor-edge-native-config.md
+++ b/docs/docs-content/integrations/harbor-edge-native-config.md
@@ -337,29 +337,6 @@ through the command-line.
5. Deploy the resources into the namespace. Since the namespace has the label `stylus.io/imageswap=disable`, the Palette
agent will pull the image from registiries you specify instead of from the Harbor registry.
-## Troubleshooting
-
-### Scenario - Harbor DB Pod Fails to Start
-
-When you start a cluster with the Harbor pack, the **harbor-database** pod might fail to start and get stuck on the
-**CrashLoopBackoff** state. It's possible that this is due to known issue with the Harbor pack related to file
-permissions. The workaround is to delete the pod and a new pod will be automatically created.
-
-#### Debug Steps
-
-1. Issue the following command to identify the pods with names that start with `harbor-database`.
-
-```shell
-kubectl get pods --namespace harbor --output wide
-```
-
-2. Delete the pod you identified in the previous step. Replace `POD_NAME` with the name of the pods. If there are
- multiple pods, use the command for each pod.
-
-```shell
-kubectl delete pod POD_NAME --namespace harbor
-```
-
@@ -386,11 +363,6 @@ kubectl get pods --namespace harbor --output wide
kubectl delete pod POD_NAME --namespace harbor
```
-### Scenario - Cluster Stuck in the Provisioning State
-
-A cluster may get stuck in the provisioning state if it uses Longhorn as its storage layer. If this happens, remove the
-cluster and try again.
-
diff --git a/docs/docs-content/release-notes/known-issues.md b/docs/docs-content/release-notes/known-issues.md
index ae4aaf487b..64af20b465 100644
--- a/docs/docs-content/release-notes/known-issues.md
+++ b/docs/docs-content/release-notes/known-issues.md
@@ -33,7 +33,7 @@ The following table lists all known issues that are currently active and affecti
| If an Edge host operating a cluster in connected mode loses connection to Palette, the cluster will not auto-renew its Public Key Infrastructure (PKI) certificates. When it re-establishes the connection to Palette, the Edge host will renew the certificates if the existing certificates have less than 30 days before expiry. | No workaround available. | September 14, 2024 | Edge |
| Using the Flannel Container Network Interface (CSI) pack together with a Red Hat Enterprise Linux (RHEL)-based provider image may lead to a pod becoming stuck during deployment. This is caused by an upstream issue with Flannel that was discovered in a K3s GitHub issue. Refer to [the K3s issue page](https://github.com/k3s-io/k3s/issues/5013) for more information. | No workaround is available | September 14, 2024 | Edge |
| Palette OVA import operations fail if the VMO cluster is using a storageClass with the volume bind method `WaitForFirstConsumer`. | Refer to the [OVA Imports Fail Due To Storage Class Attribute](../troubleshooting/vmo-issues.md#scenario---ova-imports-fail-due-to-storage-class-attribute) troubleshooting guide for workaround steps. | September 13, 2024 | Palette CLI, VMO |
-| Persistent Volume Claims (PVCs) metadata do not use a unique identifier for self-hosted Palette clusters. This causes incorrect Cloud Native Storage (CNS) mappings in vSphere, potentially leading to issues during node operations and cluster upgrades. | Refer to the [Troubleshooting section](../troubleshooting/enterprise-install.md#non-unique-vsphere-cns-mapping) for guidance. | September 13, 2024 | Self-hosted |
+| Persistent Volume Claims (PVCs) metadata do not use a unique identifier for self-hosted Palette clusters. This causes incorrect Cloud Native Storage (CNS) mappings in vSphere, potentially leading to issues during node operations and cluster upgrades. | Refer to the [Troubleshooting section](../troubleshooting/enterprise-install.md#scenario---non-unique-vsphere-cns-mapping) for guidance. | September 13, 2024 | Self-hosted |
| Third-party binaries downloaded and used by the Palette CLI may become stale and incompatible with the CLI. | Refer to the [Incompatible Stale Palette CLI Binaries](../troubleshooting/automation.md#scenario---incompatible-stale-palette-cli-binaries) troubleshooting guide for workaround guidance. | September 11, 2024 | CLI |
| An issue with Edge hosts using [Trusted Boot](../clusters/edge/trusted-boot/trusted-boot.md) and encrypted drives occurs when TRIM is not enabled. As a result, Solid-State Drive and Nonvolatile Memory Express drives experience degraded performance and potentially cause cluster failures. This [issue](https://github.com/kairos-io/kairos/issues/2693) stems from [Kairos](https://kairos.io/) not passing through the `--allow-discards` flag to the `systemd-cryptsetup attach` command. | Check out the [Degreated Performance on Disk Drives](../troubleshooting/edge.md#scenario---degreated-performance-on-disk-drives) troubleshooting guide for guidance on workaround. | September 4, 2024 | Edge |
| The AWS CSI pack has a [Pod Disruption Budget](https://kubernetes.io/docs/tasks/run-application/configure-pdb/) (PDB) that allows for a maximum of one unavailable pod. This behavior causes an issue for single-node clusters as well as clusters with a single control plane node and a single worker node where the control plane lacks worker capability. [Operating System (OS) patch](../clusters/cluster-management/os-patching.md) updates may attempt to evict the CSI controller without success, resulting in the node remaining in the un-schedulable state. | If OS patching is enabled, allow the control plane nodes to have worker capability. For single-node clusters, turn off the OS patching feature. | September 4, 2024 | Cluster, Packs |
diff --git a/docs/docs-content/troubleshooting/enterprise-install.md b/docs/docs-content/troubleshooting/enterprise-install.md
index 9c96310dfa..40db70817f 100644
--- a/docs/docs-content/troubleshooting/enterprise-install.md
+++ b/docs/docs-content/troubleshooting/enterprise-install.md
@@ -10,7 +10,7 @@ tags: ["troubleshooting", "self-hosted", "palette", "vertex"]
Refer to the following sections to troubleshoot errors encountered when installing an Enterprise Cluster.
-## Scenario - Self-linking Error
+## Scenario - Self-Linking Error
When installing an Enterprise Cluster, you may encounter an error stating that the enterprise cluster is unable to
self-link. Self-linking is the process of Palette or VerteX becoming aware of the Kubernetes cluster it is installed on.
@@ -78,7 +78,7 @@ following steps to restart the management pod.
pod "mgmt-f7f97f4fd-lds69" deleted
```
-## Non-unique vSphere CNS Mapping
+## Scenario - Non-Unique vSphere CNS Mapping
In Palette and VerteX releases 4.4.8 and earlier, Persistent Volume Claims (PVCs) metadata do not use a unique
identifier for self-hosted Palette clusters. This causes incorrect Cloud Native Storage (CNS) mappings in vSphere,
@@ -156,3 +156,57 @@ automatically resolve this issue. If you have self-hosted instances of Palette i
Events:
```
+
+## Scenario - "Too Many Open Files" in Cluster
+
+When viewing logs for Enterprise or [Private Cloud Gateway](../clusters/pcg/pcg.md) clusters, you may encounter a "too
+many open files" error, which prevents logs from tailing after a certain point. To resolve this issue, you must increase
+the maximum number of file descriptors for each node on your cluster.
+
+### Debug Steps
+
+Repeat the following process for each node in your cluster.
+
+1. Log in to a node in your cluster.
+
+ ```bash
+ ssh -i
+ ```
+
+2. Switch to `sudo` mode using the command that best fits your system and preferences.
+
+ ```bash
+ sudo --login
+ ```
+
+3. Increase the maximum number of file descriptors that the kernel can allocate system-wide.
+
+ ```bash
+ echo "fs.file-max = 1000000" > /etc/sysctl.d/99-maxfiles.conf
+ ```
+
+4. Apply the updated `sysctl` settings. The increased limit is returned.
+
+ ```bash
+ sysctl -p /etc/sysctl.d/99-maxfiles.conf
+ ```
+
+ ```bash hideClipboard
+ fs.file-max = 1000000
+ ```
+
+5. Restart the `kubelet` and `containerd` services.
+
+ ```bash
+ systemctl restart kubelet containerd
+ ```
+
+6. Confirm that the change was applied.
+
+ ```bash
+ sysctl fs.file-max
+ ```
+
+ ```bash hideClipboard
+ fs.file-max = 1000000
+ ```
diff --git a/docs/docs-content/tutorials/tutorials.md b/docs/docs-content/tutorials/tutorials.md
index 365b63f138..7cc5aec711 100644
--- a/docs/docs-content/tutorials/tutorials.md
+++ b/docs/docs-content/tutorials/tutorials.md
@@ -32,6 +32,8 @@ concepts.
Explore more through the following tutorials.
+
+
diff --git a/docs/docs-content/vertex/install-palette-vertex/install-on-kubernetes/airgap-install/install.md b/docs/docs-content/vertex/install-palette-vertex/install-on-kubernetes/airgap-install/install.md
index fbd5779dec..c3a33975fb 100644
--- a/docs/docs-content/vertex/install-palette-vertex/install-on-kubernetes/airgap-install/install.md
+++ b/docs/docs-content/vertex/install-palette-vertex/install-on-kubernetes/airgap-install/install.md
@@ -34,7 +34,9 @@ Complete the [Environment Setup](./kubernetes-airgap-instructions.md) steps befo
- Ensure `unzip` or a similar extraction utility is installed on your system.
-- The Kubernetes cluster must be set up on a supported version of Kubernetes, which includes versions v1.28 to v1.29.
+- The Kubernetes cluster must be set up on a version of Kubernetes that is compatible to your upgraded version. Refer to
+ the [Kubernetes Requirements](../../install-palette-vertex.md#kubernetes-requirements) section to find the version
+ required for your Palette installation.
- Ensure the Kubernetes cluster does not have Cert Manager installed. VerteX requires a unique Cert Manager
configuration to be installed as part of the installation process. If Cert Manager is already installed, you must
diff --git a/docs/docs-content/vertex/install-palette-vertex/install-on-kubernetes/airgap-install/kubernetes-airgap-instructions.md b/docs/docs-content/vertex/install-palette-vertex/install-on-kubernetes/airgap-install/kubernetes-airgap-instructions.md
index 68a4e63839..eec376277a 100644
--- a/docs/docs-content/vertex/install-palette-vertex/install-on-kubernetes/airgap-install/kubernetes-airgap-instructions.md
+++ b/docs/docs-content/vertex/install-palette-vertex/install-on-kubernetes/airgap-install/kubernetes-airgap-instructions.md
@@ -30,7 +30,7 @@ Each prerequisite is required for a successful installation.
- An x86 Linux jumpbox or bastion host with connectivity to the target platform where you are installing VerteX.
-- 30 GB of disk space available for the airgap setup binary and temporary files. The airgap content uncompressed is
+- 120 GB of disk space available for the airgap setup binary and temporary files. The airgap content uncompressed is
approximately 20 GB.
- An OCI registry such as [Harbor](https://goharbor.io/) or [AWS ECR](https://aws.amazon.com/ecr/) to store VerteX
diff --git a/docs/docs-content/vertex/install-palette-vertex/install-on-kubernetes/install.md b/docs/docs-content/vertex/install-palette-vertex/install-on-kubernetes/install.md
index 44802b0990..b2da50fed5 100644
--- a/docs/docs-content/vertex/install-palette-vertex/install-on-kubernetes/install.md
+++ b/docs/docs-content/vertex/install-palette-vertex/install-on-kubernetes/install.md
@@ -28,7 +28,9 @@ has the necessary network connectivity for VerteX to operate successfully.
- Ensure `unzip` or a similar extraction utility is installed on your system.
-- The Kubernetes cluster must be set up on a supported version of Kubernetes, which includes versions v1.28 to v1.29.
+- The Kubernetes cluster must be set up on a version of Kubernetes that is compatible to your upgraded version. Refer to
+ the [Kubernetes Requirements](../install-palette-vertex.md#kubernetes-requirements) section to find the version
+ required for your Palette installation.
- Ensure the Kubernetes cluster does not have Cert Manager installed. VerteX requires a unique Cert Manager
configuration to be installed as part of the installation process. If Cert Manager is already installed, you must
diff --git a/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/checklist.md b/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/checklist.md
index 9aec39d3fe..7709c90f86 100644
--- a/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/checklist.md
+++ b/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/checklist.md
@@ -12,7 +12,7 @@ keywords: ["self-hosted", "enterprise"]
---
Use the following checklist to ensure you have completed all the required steps before deploying the airgap Palette
-installation.
+installation. Review this checklist with your VerteX support team to ensure you have all the required assets.
- [ ] Create a vSphere VM and Template folder named `spectro-templates`.
@@ -34,6 +34,8 @@ installation.
- [ ] Review the list of [pack binaries](../../airgap/supplemental-packs.md) to download and upload to your OCI
registry.
+- [ ] Download the required third-party binary that contains the core packs and images required for the installation.
+
- [ ] If you have custom SSL certificates you want to include, copy the custom SSL certificates, in base64 PEM format,
to the support VM. The custom certificates must be placed in the **/opt/spectro/ssl** folder. Include the
following files:
diff --git a/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/environment-setup/env-setup-vm-vertex.md b/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/environment-setup/env-setup-vm-vertex.md
index 88b492bb61..86cee85649 100644
--- a/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/environment-setup/env-setup-vm-vertex.md
+++ b/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/environment-setup/env-setup-vm-vertex.md
@@ -26,6 +26,9 @@ This guide is for preparing your airgap environment only. For instructions on in
- Currently, `9.4` is the only supported RHEL version.
-import SetupSteps from "../../../../../../../_partials/self-hosted/_setup-steps.mdx";
-
-
+
diff --git a/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/environment-setup/vmware-vsphere-airgap-instructions.md b/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/environment-setup/vmware-vsphere-airgap-instructions.md
index ce066edfe8..ee11c41030 100644
--- a/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/environment-setup/vmware-vsphere-airgap-instructions.md
+++ b/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/environment-setup/vmware-vsphere-airgap-instructions.md
@@ -34,6 +34,7 @@ VerteX.
- If you are using a generic OVA, ensure you download the airgap VerteX installation binary for the version of VerteX
you plan to install.
- An OVA with the operating system and Kubernetes distribution required for the VerteX nodes.
+ - The third-party binary that contains the core packs and images required for the installation.
For sensitive environments, you can download the OVAs to a system with internet access and then transfer them to your
airgap environment.
@@ -81,70 +82,24 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock
1. Log in to your vCenter environment.
-2. Create a vSphere VM and Template folder named `spectro-templates`. Ensure you can access this folder with the user
- account you plan to use when deploying the VerteX installation.
-
-3. Right-click on your cluster or resource group and select **Deploy OVF Template**.
-
-4. In the **Deploy OVF Template** wizard, enter the following URL to import the Operating System (OS) and Kubernetes
- distribution OVA required for the installation.
-
- Consider the following example for reference.
-
-
-
-
-
- ```url
- https://vmwaregoldenimage-console.s3.amazonaws.com/u-2204-0-k-1294-0.ova
- ```
-
-
-
-
- ```url
- https://vmwaregoldenimage-console.s3.amazonaws.com/u-2004-0-k-1294-fips.ova
- ```
-
-
-
-
- Place the OVA in the **spectro-templates** folder. Append the `r_` prefix, and remove the `.ova` suffix when
- assigning its name and target location. For example, the final output should look like `r_u-2204-0-k-1294-0`. This
- naming convention is required for the installation process to identify the OVA. Refer to the
- [Supplement Packs](../../../airgap/supplemental-packs.md) page for a list of additional OS OVAs.
-
- You can terminate the deployment after the OVA is available in the `spectro-templates` folder. Refer to the
- [Deploy an OVF or OVA Template](https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-vm-administration/GUID-AFEDC48B-C96F-4088-9C1F-4F0A30E965DE.html)
- guide for more information about deploying an OVA in vCenter.
-
- :::warning
-
- You may encounter an error message during the OVA deployment stating unable to retrieve manifest or certificate.
- This is a known issue that was fixed in the
- [VMware vCenter Server 7.0 Update 3q](https://docs.vmware.com/en/VMware-vSphere/7.0/rn/vsphere-vcenter-server-70u3q-release-notes/index.html).
- Reach out to [Broadcom Support](https://support.broadcom.com) if you need further guidance.
-
- :::
-
-5. Next, deploy the airgap installation OVA by using the **Deploy OVF Template** wizard again in vSphere. Insert the
- VerteX install OVA URL in the **URL** field. The URL is provided to you by your Palette support representative.
- Click on **Next** to continue.
+2. Deploy the airgap installation OVA by using the **Deploy OVF Template** wizard again in vSphere. Insert the VerteX
+ install OVA URL in the **URL** field. The URL is provided to you by your Palette support representative. Click on
+ **Next** to continue.
![View of the OVF deploy wizard](/vertex_airgap_vmware-vsphere-airgap-instructions_ovf-wizard.webp)
-6. Assign a name to the virtual machine and select a target location. Click on **Next** to continue.
+3. Assign a name to the virtual machine and select a target location. Click on **Next** to continue.
-7. Select a compute resource and click on **Next** to continue.
+4. Select a compute resource and click on **Next** to continue.
-8. Review the details and click on **Ignore All** to dismiss any warning messages. The OVA contains a self-signed
+5. Review the details and click on **Ignore All** to dismiss any warning messages. The OVA contains a self-signed
certificate, which causes vSphere to issue a warning. Click on **Next** to continue.
-9. Select the storage location and click on **Next** to continue.
+6. Select the storage location and click on **Next** to continue.
-10. Select the network and click on **Next** to continue.
+7. Select the network and click on **Next** to continue.
-11. The last step is to customize the template. Review the table below to learn more about each field. Click on **Next**
+8. The last step is to customize the template. Review the table below to learn more about each field. Click on **Next**
after you have completed the customization to continue.
| Parameter | Description | Required |
@@ -156,22 +111,22 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock
| **Hostname** | Enter a fully qualified hostname for the airgap support VM. For example, `vertex.example.com`. The default value is `ubuntuguest`. | Yes |
| **Url to seed instance data from** | You can specify a URL to seed instance data from. You can leave this value empty. | No |
-12. Review the details and click on **Finish** to deploy the airgap support VM.
+9. Review the details and click on **Finish** to deploy the airgap support VM.
-13. It takes a while for the airgap support VM to deploy, approximately 45 min or more depending on your internet
+10. It takes a while for the airgap support VM to deploy, approximately 45 min or more depending on your internet
connection. The download of the OVA takes up majority of the time. The image is over 30 GB and contains all the
dependencies required to deploy a VerteX. Once the deployment is complete, the airgap support VM is displayed in the
vSphere inventory. The VM will be powered off. Power on the VM to continue.
-14. SSH into the airgap support VM. Use the following command to SSH into the VM. Replace the IP address below with the
+11. SSH into the airgap support VM. Use the following command to SSH into the VM. Replace the IP address below with the
IP address or hostname of the airgap support VM. The default user account is `ubuntu`. Replace the path to the
private SSH key and the IP address with the IP address or domain name of the airgap support VM.
```shell
- ssh -identity_file /path/to/private/key ubuntu@vertex.example.com
+ ssh -i /path/to/private/key ubuntu@vertex.example.com
```
-15. Change the password for the `ubuntu` user account. You will be prompted to change the password the first time you
+12. Change the password for the `ubuntu` user account. You will be prompted to change the password the first time you
log in through SSH. The new password must meet the following requirements:
- At least 14 characters long
@@ -181,7 +136,7 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock
- At least 1 number
- At least 1 special character
-16. Once you change the password, the SSH session will be terminated. SSH back into the airgap support VM with the new
+13. Once you change the password, the SSH session will be terminated. SSH back into the airgap support VM with the new
password.
:::info
@@ -196,7 +151,7 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock
Connection to vertex.example.com closed.
```
-17. If you want to assign a static IP address to the airgap support VM, you can do so now. Click on the box below to
+14. If you want to assign a static IP address to the airgap support VM, you can do so now. Click on the box below to
expand the instructions. Otherwise, proceed to the next step.
@@ -254,13 +209,13 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock
-18. Switch to the `root` user account. You will need to use the `root` user account to complete the remaining steps.
+15. Switch to the `root` user account. You will need to use the `root` user account to complete the remaining steps.
```shell
sudo --login
```
-19. If you have custom SSL certificates you want to apply to the image and pack registry, and the Spectro Cloud
+16. If you have custom SSL certificates you want to apply to the image and pack registry, and the Spectro Cloud
Repository, copy the custom SSL certificates, in base64 PEM format, to the airgap support VM.
If you do not provide a custom SSL certificate, the airgap setup process will generate a self-signed certificate for
@@ -289,7 +244,7 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock
- **server.crt**
- **server.key**
-20. Start the airgap initialization process by issuing the following command. The script requires the hostname or IP
+17. Start the airgap initialization process by issuing the following command. The script requires the hostname or IP
address of the airgap support VM. Choose the preferred method for your environment. Be aware that the script will
generate a self-signed certificate for the value you provide.
@@ -370,26 +325,26 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock
-21. The output of the script contains credentials and values you will need when completing the installation with the
+18. The output of the script contains credentials and values you will need when completing the installation with the
Palette CLI. If you need to review this information in the future, invoke the script again.
-22. If you have used a release-specific installation OVA, skip this step. Otherwise, if you have used a generic
- installation OVA, use the following command to execute the Palette VerteX airgap installation binary.
+19. Next, download the third party binary. Your support representative will provide you with credentials to access the
+ third-party binary. Use the following command to download the third-party binary. Replace the `XXXXX` and `YYYYY`
+ placeholders with the credentials provided to you. Replace the `X.X` placeholder with the version of the third-party
+ binary you are downloading. Ask your support representative for the version of the third-party binary you need.
```shell
- chmod +x airgap-vertex-.bin && ./airgap-vertex-.bin
+ curl --user XXXXX:YYYYY https://software-private.spectrocloud.com/airgap/thirdparty/airgap-thirdparty-X.X.X.bin \
+ --output airgap-upload.bin
```
- Consider the following example for reference.
+20. Use the following command to start the third-party binary. The third-party binary uploads the release-specific packs
+ and images to the registry configured in step **17** of this guide. This process may take some time to complete.
```shell
- chmod +x airgap-vertex-v4.4.14.bin && ./airgap-vertex-v4.4.14.bin
+ chmod +x airgap-upload.bin && ./airgap-upload.bin
```
- After the Palette VerteX airgap installation binary is verified and uncompressed, it uploads the release-specific
- packs and images to the registry configured in step **20** of this guide. This process may take some time to
- complete.
-
```text hideClipboard
Verifying archive integrity... 100% MD5 checksums are OK. All good.
Uncompressing Airgap Setup - Version 4.4.14 100%
@@ -401,11 +356,64 @@ The default container runtime for OVAs is [Podman](https://podman.io/), not Dock
Setup Completed
```
+ Once the airgap binary completes its tasks, you will receive a **Setup Completed** success message.
+
Once the Palette VerteX airgap binary completes its tasks, you will receive a **Setup Completed** success message.
-23. Review the [Additional Packs](../../../airgap/supplemental-packs.md) page and identify any additional packs you want
+21. Review the [Additional Packs](../../../airgap/supplemental-packs.md) page and identify any additional packs you want
to add to your OCI registry. You can also add additional packs after the installation is complete.
+22. Navigate back to the vSphere console and create a vSphere VM and Template folder named `spectro-templates`. Ensure
+ you can access this folder with the user account you plan to use when deploying the VerteX installation. You can
+ choose a different name for the folder if you prefer, but ensure you use the same name when the Palette CLI prompts
+ you for the folder name.
+
+23. Next, right-click on your cluster or resource group and select **Deploy OVF Template**.
+
+24. In the **Deploy OVF Template** wizard, enter the following URL to import the Operating System (OS) and Kubernetes
+ distribution OVA required for the installation. Refer to the
+ [Kubernetes Requirements](../../../install-palette-vertex.md#kubernetes-requirements) section to learn if the
+ version of Palette you are installing requires a new OS and Kubernetes OVA.
+
+ Consider the following example for reference.
+
+
+
+
+
+ ```url
+ https://vmwaregoldenimage-console.s3.amazonaws.com/u-2204-0-k-1294-0.ova
+ ```
+
+
+
+
+ ```url
+ https://vmwaregoldenimage-console.s3.amazonaws.com/u-2004-0-k-1294-fips.ova
+ ```
+
+
+
+
+ Place the OVA in the **spectro-templates** folder or in the folder you created in step **21**. Append the `r_`
+ prefix, and remove the `.ova` suffix when assigning its name and target location. For example, the final output
+ should look like `r_u-2204-0-k-1294-0`. This naming convention is required for the installation process to identify
+ the OVA. Refer to the [Supplement Packs](../../../airgap/supplemental-packs.md) page for a list of additional OS
+ OVAs.
+
+ You can terminate the deployment after the OVA is available in the `spectro-templates` folder. Refer to the
+ [Deploy an OVF or OVA Template](https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-vm-administration/GUID-AFEDC48B-C96F-4088-9C1F-4F0A30E965DE.html)
+ guide for more information about deploying an OVA in vCenter.
+
+ :::warning
+
+ You may encounter an error message during the OVA deployment stating unable to retrieve manifest or certificate.
+ This is a known issue that was fixed in the
+ [VMware vCenter Server 7.0 Update 3q](https://docs.vmware.com/en/VMware-vSphere/7.0/rn/vsphere-vcenter-server-70u3q-release-notes/index.html).
+ Reach out to [Broadcom Support](https://support.broadcom.com) if you need further guidance.
+
+ :::
+
You have now completed the preparation steps for an airgap installation. Check out the [Validate](#validate) section to
ensure the airgap setup process is completed successfully. After you validate the airgap setup process completion,
review the [Next Steps](#next-steps).
diff --git a/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/install.md b/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/install.md
index bf208248b5..59e4985513 100644
--- a/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/install.md
+++ b/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/airgap-install/install.md
@@ -257,6 +257,7 @@ Use the following steps to install Palette VerteX.
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Datacenter** | The installer retrieves the Datacenter automatically. |
| **Folder** | Select the folder that contains the VM instance. |
+ | **Image Template Folder** | Select the folder that contains the CAPI image templates. |
| **Cluster** | Select the cluster where you want to deploy Palette. |
| **Network** | Select the network where you want to deploy Palette. |
| **Resource Pool** | Select the resource pool where you want to deploy Palette. |
diff --git a/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/install.md b/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/install.md
index cda78a1f0e..30497a14d1 100644
--- a/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/install.md
+++ b/docs/docs-content/vertex/install-palette-vertex/install-on-vmware/install.md
@@ -121,15 +121,13 @@ Use the following steps to install Palette VerteX.
2. Create a vSphere VM and Template folder with the name `spectro-templates`. Ensure this folder is accessible by the
user account you will use to deploy the VerteX installation.
-3. Use the URL below to import the Operating System and Kubernetes distribution OVA required for the install. Place the
- OVA in the `spectro-templates` folder. Refer to the
+3. Find the OVA download URL corresponding to your Palette VerteX version in the
+ [Kubernetes Requirements](../install-palette-vertex.md#kubernetes-requirements) section. Use the identified URL to
+ import the Operating System and Kubernetes distribution OVA required for the install. Place the OVA in the
+ `spectro-templates` folder. Refer to the
[Import Items to a Content Library](https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-vm-administration/GUID-B413FBAE-8FCB-4598-A3C2-8B6DDA772D5C.html?hWord=N4IghgNiBcIJYFsAOB7ATgFwAQYKbIjDwGcQBfIA)
guide for information about importing an OVA in vCenter.
- ```url
- https://vmwaregoldenimage.s3.amazonaws.com/u-2204-0-k-12813-0.ova
- ```
-
4. Append an `r_` prefix to the OVA name and remove the `.ova` suffix after the import. For example, the final output
should look like `r_u-2204-0-k-12813-0`. This naming convention is required for the install process to identify the
OVA. Refer to the [Supplement Packs](../airgap/supplemental-packs.md#additional-ovas) page for a list of additional
@@ -228,6 +226,7 @@ Use the following steps to install Palette VerteX.
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Datacenter** | The installer retrieves the Datacenter automatically. |
| **Folder** | Select the folder that contains the VM instance. |
+ | **Image Template Folder** | Select the folder that contains the CAPI image templates. |
| **Cluster** | Select the cluster where you want to deploy Palette. |
| **Network** | Select the network where you want to deploy Palette. |
| **Resource Pool** | Select the resource pool where you want to deploy Palette. |
@@ -294,7 +293,7 @@ Use the following steps to install Palette VerteX.
attempt. For example:
```bash
- palette ec install --config /home/spectro/.palette/ec/ec-20230706150945/ec.yaml
+ palette ec install --config-file /home/spectro/.palette/ec/ec-20230706150945/ec.yaml
```
:::
diff --git a/docs/docs-content/vertex/install-palette-vertex/install-palette-vertex.md b/docs/docs-content/vertex/install-palette-vertex/install-palette-vertex.md
index e37319fc6e..6db2f0e457 100644
--- a/docs/docs-content/vertex/install-palette-vertex/install-palette-vertex.md
+++ b/docs/docs-content/vertex/install-palette-vertex/install-palette-vertex.md
@@ -64,6 +64,14 @@ number of active nodes and pods at any given time.
+## Kubernetes Requirements
+
+The following table presents the Kubernetes version corresponding to each Palette version. It provides the download URLs
+for the Operating System and Kubernetes distribution OVA required for the install. Ensure that you use FIPS OVA URL if
+you require a compliant installation.
+
+
+
## Proxy Requirements
diff --git a/docs/docs-content/vertex/system-management/change-cloud-config.md b/docs/docs-content/vertex/system-management/change-cloud-config.md
new file mode 100644
index 0000000000..0a7c93f7bc
--- /dev/null
+++ b/docs/docs-content/vertex/system-management/change-cloud-config.md
@@ -0,0 +1,14 @@
+---
+sidebar_label: "Modify Cloud Provider Configuration"
+title: "Modify Cloud Provider Configuration"
+description: "Learn how to modify the system-level cloud provider configuration in Palette VerteX."
+icon: ""
+hide_table_of_contents: false
+sidebar_position: 130
+tags: ["vertex", "management", "clouds"]
+keywords: ["self-hosted", "vertex"]
+---
+
+import ConfigProvider from "../../../../_partials/self-hosted/_cloud-provider-config.mdx";
+
+
diff --git a/docs/docs-content/vertex/upgrade/upgrade-k8s/airgap.md b/docs/docs-content/vertex/upgrade/upgrade-k8s/airgap.md
index be87338ea4..763ab90d66 100644
--- a/docs/docs-content/vertex/upgrade/upgrade-k8s/airgap.md
+++ b/docs/docs-content/vertex/upgrade/upgrade-k8s/airgap.md
@@ -283,30 +283,27 @@ Palette VerteX upgrade.
```
11. In a code editor of your choice, open the **extras/cert-manager/values.yaml** file and replace the
- `controllerImage`, `webhookImage`, and `amceResolverImage` image URLs with your OCI image registry URLs.
+ `cainjectorImage`,`controllerImage`, `webhookImage`, and `amceResolverImage` image URLs and with your OCI image
+ registry URL and the `/spectro-images/` namespace.
- ```yaml
+ ```yaml {2-5}
image:
- cainjectorImage: "gcr.io/spectro-images-public/release-fips/jetstack/cert-manager-cainjector:spectro-v1.11.0-20230427"
- // highlight-start
- controllerImage: "/spectro-images-public/release-fips/jetstack/cert-manager-controller:spectro-v1.11.0-20230427"
- webhookImage: "/spectro-images-public/release-fips/jetstack/cert-manager-webhook:spectro-v1.11.0-20230808"
- amceResolverImage: "/spectro-images-public/release-fips/jetstack/cert-manager-acmesolver:spectro-v1.11.0-20230427"
- // highlight-end
+ cainjectorImage: "/spectro-images/gcr.io/spectro-images-public/release-fips/jetstack/cert-manager-cainjector:spectro-v1.11.0-20230427"
+ controllerImage: "/spectro-images/gcr.io/spectro-images-public/release-fips/jetstack/cert-manager-controller:spectro-v1.11.0-20230427"
+ webhookImage: "/spectro-images/gcr.io/spectro-images-public/release-fips/jetstack/cert-manager-webhook:spectro-v1.11.0-20230808"
+ amceResolverImage: "/spectro-images/gcr.io/spectro-images-public/release-fips/jetstack/cert-manager-acmesolver:spectro-v1.11.0-20230427"
featureGates: "AdditionalCertificateOutputFormats=true"
```
Consider the following example for reference.
- ```yaml
+ ```yaml {2-5}
image:
- cainjectorImage: "gcr.io/spectro-images-public/release-fips/jetstack/cert-manager-cainjector:spectro-v1.11.0-20230427"
- // highlight-start
- controllerImage: "harbor.docs.spectro.dev/spectro-images-public/release-fips/jetstack/cert-manager-controller:spectro-v1.11.0-20230427"
- webhookImage: "harbor.docs.spectro.dev/spectro-images-public/release-fips/jetstack/cert-manager-webhook:spectro-v1.11.0-20230808"
- amceResolverImage: "harbor.docs.spectro.dev/spectro-images-public/release-fips/jetstack/cert-manager-acmesolver:spectro-v1.11.0-20230427"
- // highlight-end
+ cainjectorImage: "harbor.docs.spectro.dev/spectro-images/gcr.io/spectro-images-public/release-fips/jetstack/cert-manager-cainjector:spectro-v1.11.0-20230427"
+ controllerImage: "harbor.docs.spectro.dev/spectro-images/gcr.io/spectro-images-public/release-fips/jetstack/cert-manager-controller:spectro-v1.11.0-20230427"
+ webhookImage: "harbor.docs.spectro.dev/spectro-images/gcr.io/spectro-images-public/release-fips/jetstack/cert-manager-webhook:spectro-v1.11.0-20230808"
+ amceResolverImage: "harbor.docs.spectro.dev/spectro-images/gcr.io/spectro-images-public/release-fips/jetstack/cert-manager-acmesolver:spectro-v1.11.0-20230427"
featureGates: "AdditionalCertificateOutputFormats=true"
```
diff --git a/docs/docs-content/vertex/upgrade/upgrade-notes.md b/docs/docs-content/vertex/upgrade/upgrade-notes.md
index 4807e45a9f..197513df22 100644
--- a/docs/docs-content/vertex/upgrade/upgrade-notes.md
+++ b/docs/docs-content/vertex/upgrade/upgrade-notes.md
@@ -27,4 +27,4 @@ troubleshooting guide for resolution steps.
A known issue impacts all self-hosted Palette instances older then 4.4.14. Before upgrading an Palette instance with
version older than 4.4.14, ensure that you execute a utility script to make all your cluster IDs unique in your
Persistent Volume Claim (PVC) metadata. For more information, refer to the
-[Troubleshooting Guide](../../troubleshooting/enterprise-install.md#non-unique-vsphere-cns-mapping).
+[Troubleshooting Guide](../../troubleshooting/enterprise-install.md#scenario---non-unique-vsphere-cns-mapping).
diff --git a/docs/docs-content/vertex/upgrade/upgrade-vmware/airgap.md b/docs/docs-content/vertex/upgrade/upgrade-vmware/airgap.md
index b2b4ccd348..70d0f41b78 100644
--- a/docs/docs-content/vertex/upgrade/upgrade-vmware/airgap.md
+++ b/docs/docs-content/vertex/upgrade/upgrade-vmware/airgap.md
@@ -17,7 +17,7 @@ section for details.
If you are upgrading from a Palette VerteX version that is older than 4.4.14, ensure that you have executed the utility
script to make the CNS mapping unique for the associated PVC. For more information, refer to the
-[Troubleshooting guide](../../../troubleshooting/enterprise-install.md#non-unique-vsphere-cns-mapping).
+[Troubleshooting guide](../../../troubleshooting/enterprise-install.md#scenario---non-unique-vsphere-cns-mapping).
:::
@@ -87,20 +87,18 @@ one through four. Otherwise, start at step five.
[Deploy an OVF or OVA Template](https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-vm-administration/GUID-AFEDC48B-C96F-4088-9C1F-4F0A30E965DE.html)
guide for more information on deploying OVAs in vCenter.
- :::tip
-
5. In your terminal, use the following command template to SSH into the Palette VerteX airgap support VM. Enter the path
to your private SSH key, your username, and the IP or domain of the airgap support VM. The default username is
`ubuntu`.
```shell
- ssh -identity_file ubuntu@
+ ssh -i ubuntu@
```
Consider the following command example for reference.
```shell
- ssh -identity_file /docs/ssh-private-key.pem ubuntu@palette.example.com
+ ssh -i /docs/ssh-private-key.pem ubuntu@palette.example.com
```
6. Use the following command to switch to the `root` user account, which you need to proceed with the upgrade.
diff --git a/docs/docs-content/vertex/upgrade/upgrade-vmware/non-airgap.md b/docs/docs-content/vertex/upgrade/upgrade-vmware/non-airgap.md
index 4c9d117c7b..7decb68be3 100644
--- a/docs/docs-content/vertex/upgrade/upgrade-vmware/non-airgap.md
+++ b/docs/docs-content/vertex/upgrade/upgrade-vmware/non-airgap.md
@@ -17,7 +17,7 @@ for details.
If you are upgrading from a Palette VerteX version that is older than 4.4.14, ensure that you have executed the utility
script to make the CNS mapping unique for the associated PVC. For more information, refer to the
-[Troubleshooting guide](../../../troubleshooting/enterprise-install.md#non-unique-vsphere-cns-mapping).
+[Troubleshooting guide](../../../troubleshooting/enterprise-install.md#scenario---non-unique-vsphere-cns-mapping).
:::
diff --git a/docs/docs-content/vm-management/install-vmo-in-airgap.md b/docs/docs-content/vm-management/install-vmo-in-airgap.md
index 6b6a5fe68a..2334a3f233 100644
--- a/docs/docs-content/vm-management/install-vmo-in-airgap.md
+++ b/docs/docs-content/vm-management/install-vmo-in-airgap.md
@@ -39,13 +39,13 @@ instance of Palette and Palette VerteX.
your private SSH key, username, and the IP or domain of the airgap support VM. The default username is `ubuntu`.
```shell
- ssh -identity_file @
+ ssh -i @
```
Consider the following command example for reference.
```shell
- ssh -identity_file /docs/ssh-private-key.pem ubuntu@palette.example.com
+ ssh -i /docs/ssh-private-key.pem ubuntu@palette.example.com
```
2. Execute the following command to switch to the `root` user account.
diff --git a/scripts/find-unused-images.sh b/scripts/find-unused-images.sh
index 0adc4a4d62..512d24f921 100755
--- a/scripts/find-unused-images.sh
+++ b/scripts/find-unused-images.sh
@@ -5,7 +5,7 @@ set -e
# Create a list of all the images we have and save it to a json.
# Trim the path static/assets/docs/images.
-find static/assets/docs/images -type f \( -name "*.gif" -o -name "*.webp" \) ! -name ".DS_STORE" ! -name ".DS_Store" | sed 's|static/assets/docs/images||g' > all_images.json
+find static/assets/docs/images README.md -type f \( -name "*.gif" -o -name "*.webp" \) ! -name ".DS_STORE" ! -name ".DS_Store" | sed 's|static/assets/docs/images||g' > all_images.json
image_count=$(wc -l < all_images.json)
echo "Detected $image_count .webp and .gif assets in static/assets/docs/images..."
@@ -28,9 +28,10 @@ echo "$branches" > evaluated_branches.json
for current_branch in $branches; do
git checkout $current_branch
+ grep -Hn -E "\.webp|\.gif" README.md > readme_used_images.json
find docs -type f -name "*.md" -exec grep -Hn -E "\.webp|\.gif" {} \; > docs_used_images.json
find _partials -type f -name "*.mdx" -exec grep -Hn -E "\.webp|\.gif" {} \; > partials_used_images.json
- cat docs_used_images.json partials_used_images.json > used_images.json
+ cat readme_used_images.json docs_used_images.json partials_used_images.json > used_images.json
line_number=1
for img in $(cat all_images.json); do
@@ -48,6 +49,7 @@ echo "Detected $unused_image_count unused webp assets in static/assets/docs/imag
# Clean up files
rm all_images.json
+rm readme_used_images.json
rm docs_used_images.json
rm partials_used_images.json
rm used_images.json
diff --git a/src/components/SimpleCardGrid/SimpleCardGrid.test.tsx b/src/components/SimpleCardGrid/SimpleCardGrid.test.tsx
index 3de9a9eb61..06b16822ea 100644
--- a/src/components/SimpleCardGrid/SimpleCardGrid.test.tsx
+++ b/src/components/SimpleCardGrid/SimpleCardGrid.test.tsx
@@ -8,12 +8,18 @@ jest.mock("./SimpleCardFooterArrow", () => {
});
});
+jest.mock("../VersionedLink", () => {
+ return jest.fn(({ url, component }) => {
+ return {component};
+ });
+});
+
describe("Display SimpleCardGrid", () => {
interface testCard {
title: string;
description: string;
buttonText: string;
- relativeURL: string;
+ url: string;
}
interface testCase {
@@ -26,19 +32,19 @@ describe("Display SimpleCardGrid", () => {
title: "First Card",
description: "Card 1",
buttonText: "Learn more 1",
- relativeURL: "./getting-started-1",
+ url: "/getting-started/getting-started-1",
},
{
title: "Second Card",
description: "Card 2",
buttonText: "Learn more 2",
- relativeURL: "./getting-started-2",
+ url: "/getting-started/getting-started-2",
},
{
title: "Third Card",
description: "Card 3",
buttonText: "Learn more 3",
- relativeURL: "./getting-started-3",
+ url: "/getting-started/getting-started-3",
},
];
@@ -74,7 +80,7 @@ describe("Display SimpleCardGrid", () => {
expect(screen.getByText(tc.buttonText, { selector: "button" })).toBeInTheDocument();
expect(
screen.getAllByRole("link").filter((value) => {
- return value.getAttribute("href") == tc.relativeURL;
+ return value.getAttribute("href") == tc.url;
})
).not.toBeNull();
});
diff --git a/src/components/SimpleCardGrid/SimpleCardGrid.tsx b/src/components/SimpleCardGrid/SimpleCardGrid.tsx
index 8c77cee138..d2c007e05f 100644
--- a/src/components/SimpleCardGrid/SimpleCardGrid.tsx
+++ b/src/components/SimpleCardGrid/SimpleCardGrid.tsx
@@ -1,6 +1,7 @@
import React from "react";
import styles from "./SimpleCardGrid.module.scss";
import SimpleCardFooterArrow from "./SimpleCardFooterArrow";
+import VersionedLink from "../VersionedLink";
interface SimpleCardProps {
cards?: SimpleCard[];
@@ -12,10 +13,9 @@ interface SimpleCard {
index?: number;
description: string;
buttonText: string;
- relativeURL: string;
+ url: string;
hideNumber?: boolean;
}
-
interface SimpleCardHeader {
index?: number;
hideNumber?: boolean;
@@ -31,8 +31,8 @@ export default function SimpleCardGrid({ cards = [], hideNumber = false }: Simpl
index={index + 1}
description={card.description}
buttonText={card.buttonText}
- relativeURL={card.relativeURL}
key={`simpleCard-${index}`}
+ url={card.url}
hideNumber={hideNumber}
/>
))}
@@ -40,22 +40,25 @@ export default function SimpleCardGrid({ cards = [], hideNumber = false }: Simpl
);
}
-function SimpleCard({ title, index, description, buttonText, relativeURL, hideNumber }: SimpleCard) {
+function SimpleCard({ title, index, description, buttonText, url, hideNumber }: SimpleCard) {
+ const body = SimpleCardBody(title, description, buttonText, index, hideNumber);
+ return ;
+}
+
+function SimpleCardBody(title: string, description: string, buttonText: string, index?: number, hideNumber?: boolean) {
return (
-
-