Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Palette 4.2 Release #1758

Merged
merged 60 commits into from
Jan 7, 2024
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
d385bcf
feat: palette 4.2 release
karl-cardenas-coding Nov 7, 2023
8ae38a9
Merge branch 'master' into release-4-2
karl-cardenas-coding Nov 8, 2023
d7d70f0
Merge branch 'master' into release-4-2
karl-cardenas-coding Nov 9, 2023
e77b5bb
Merge branch 'master' into release-4-2
karl-cardenas-coding Nov 9, 2023
77147f0
Merge branch 'master' of github.com:spectrocloud/librarium into relea…
karl-cardenas-coding Nov 14, 2023
df86e61
docs: palette validator (#1783)
karl-cardenas-coding Nov 14, 2023
efcbf0d
Merge branch 'master' into release-4-2
karl-cardenas-coding Nov 15, 2023
a099a75
Merge branch 'master' into release-4-2
karl-cardenas-coding Nov 15, 2023
ca9b163
Merge branch 'release-4-2' of github.com:spectrocloud/librarium into …
karl-cardenas-coding Nov 15, 2023
3f96182
ci: updated release branch PR CI
karl-cardenas-coding Nov 15, 2023
3cf9614
ci: update release PR CI with missing variables.
karl-cardenas-coding Nov 15, 2023
91d101a
docs: validation cli command update
karl-cardenas-coding Nov 15, 2023
28aa992
docs: added maas PEM-3973 (#1816)
karl-cardenas-coding Nov 16, 2023
5bdf3d9
docs: update Platform Settings page PEM-3979 (#1814)
addetz Nov 17, 2023
478d62f
Merge branch 'master' into release-4-2
karl-cardenas-coding Nov 17, 2023
62f7213
docs: hostname validation (#1826)
lennessyy Nov 27, 2023
f0af957
docs: add step to configure nic for edge hosts (#1856)
lennessyy Nov 30, 2023
06f4366
Merge branch 'release-4-2' of github.com:spectrocloud/librarium into …
karl-cardenas-coding Dec 1, 2023
7de8434
docs: rebase with master
karl-cardenas-coding Dec 4, 2023
4bcb3ad
Merge branch 'master' of github.com:spectrocloud/librarium into relea…
karl-cardenas-coding Dec 6, 2023
4a75a6e
docs: vertex passkeys (#1873)
karl-cardenas-coding Dec 7, 2023
b279664
docs: Palette CLI - docs (#1879)
karl-cardenas-coding Dec 7, 2023
0aaefa6
docs: add draft for private registry and refactor cluster update (#1…
lennessyy Dec 7, 2023
56bd2ef
docs: Add ability to expose services with kube-vip as load balancer (…
lennessyy Dec 7, 2023
8810bbe
docs: updated Palette CLI
karl-cardenas-coding Dec 8, 2023
9079802
docs: update kubeconfig behavior PEM-4198 (#1888)
karl-cardenas-coding Dec 11, 2023
39a3c07
Merge branch 'master' into release-4-2
karl-cardenas-coding Dec 13, 2023
05f3d2f
docs: local harbor registry (#1877)
lennessyy Dec 13, 2023
9ea90f4
Refactor Registries (#1889)
karl-cardenas-coding Dec 14, 2023
e25ad7f
Merge branch 'master' into release-4-2
karl-cardenas-coding Dec 14, 2023
9b16221
docs: added Azure regions and updated symbol DOC-958 (#1899)
karl-cardenas-coding Dec 14, 2023
3e3944e
docs: add edge additions to vmo docs (#1890)
lennessyy Dec 14, 2023
0d94a24
docs: add note about tenant level edge cluster (#1900)
lennessyy Dec 15, 2023
42593d2
docs: add note about nic selection (#1895)
lennessyy Dec 15, 2023
52086eb
Merge branch 'master' into release-4-2
karl-cardenas-coding Dec 19, 2023
61dff12
Update deploy-private-registry.md
3pings Dec 21, 2023
0ec03f8
Merge branch 'master' into release-4-2
karl-cardenas-coding Dec 21, 2023
0d192fb
docs: API docs - 4.2 (#1932)
prathabk Dec 21, 2023
2a256c0
docs: miscellaneous updates (edge) (#1936)
lennessyy Dec 21, 2023
2d3c879
docs: update cert renewal behavior PCP-2142 (#1891)
karl-cardenas-coding Dec 22, 2023
79c09fd
Merge branch 'master' into release-4-2
karl-cardenas-coding Dec 22, 2023
0917150
API docs - 4.2 - docs fix (#1946)
prathabk Dec 28, 2023
a71c551
Merge branch 'master' into release-4-2
karl-cardenas-coding Dec 31, 2023
339001f
Merge branch 'master' into release-4-2
karl-cardenas-coding Jan 3, 2024
64397d0
docs: Azure account gov create (#1962) PCP-810
karl-cardenas-coding Jan 4, 2024
c92746e
Merge branch 'master' of github.com:spectrocloud/librarium into relea…
karl-cardenas-coding Jan 4, 2024
0bb1cdf
docs: addresses PE-3308 and PE-3316 (#1964)
lennessyy Jan 4, 2024
0d86169
docs: release notes (#1937)
karl-cardenas-coding Jan 4, 2024
3e9ab89
docs: add note about local registry k8s change (#1965)
lennessyy Jan 4, 2024
59a145f
docs: PEM-4272 (#1971)
karl-cardenas-coding Jan 5, 2024
fba78ed
docs: DOC-990 Longhorn Manual Resolution (#1963)
karl-cardenas-coding Jan 5, 2024
8048ba4
docs: open source license (#1972)
karl-cardenas-coding Jan 5, 2024
852251c
Update docs/docs-content/palette-cli/commands/validator.md
karl-cardenas-coding Jan 5, 2024
9cc7579
docs: update new pack versions (#1973)
karl-cardenas-coding Jan 5, 2024
a91c234
Document Nutanix (#1883)
ritawatson Jan 5, 2024
b9ae86f
docs: add several known issues (#1974)
lennessyy Jan 5, 2024
168c32c
docs: DOC-993 PPD-1413 Collection of 4.2 items (#1975)
karl-cardenas-coding Jan 6, 2024
e9a794c
chore: updated archieve prefix
karl-cardenas-coding Jan 7, 2024
7ef3dbb
chore: updated archieve version
karl-cardenas-coding Jan 7, 2024
c31b97c
docs: added cli URL
karl-cardenas-coding Jan 7, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion archiveVersions.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
{
"4.0.0": "https://version-4-0.legacy.docs.spectrocloud.com",
"v3.4.x and prior": "https://version-3-4.legacy.docs.spectrocloud.com"
}
3 changes: 3 additions & 0 deletions docs/docs-content/palette-cli/commands/commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ The following list contains all the supported Palette CLI subcommands. Click on

* [`project`](project.md) - Manage Palette Projects.

* [`validator`](validator.md) - Deploy a kind cluster and install the Validator framework to validate your environment is ready for Palette.



Expand Down Expand Up @@ -62,3 +63,5 @@ Palette CLI supports the following global flags.
- [PDE](pde.md)

- [Project](project.md)

- [Validator](validator.md)
299 changes: 299 additions & 0 deletions docs/docs-content/palette-cli/commands/validator.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,299 @@
---
sidebar_label: "Validator"
title: "Validator"
description: "Reference resource for the validator command."
hide_table_of_contents: false
sidebar_position: 50
tags: ["palette-cli"]
---


The Palette CLI has built-in support for the open-source [Validator](https://github.com/spectrocloud-labs/validator) framework and its plugins ecosystem. You can use the Validator to verify your environment is ready for an installation of self-hosted Palette, VerteX, or for deployment of Kubernetes clusters through Palette.



The `validator` command exposes the following subcommands.

- [`install`](#install) - Install the Validator framework and configure Validator plugins.

- [`uninstall`](#uninstall) - Uninstall the Validator framework and remove all Validator plugins.


## Prerequisites

The Validator requires the following dependencies.

- [Docker](https://docs.docker.com/get-docker) - The Validator requires Docker.

:::caution
Credentials and other permissions may be required depending on the Validator plugins you use. For example, the AWS plugin requires AWS credentials with elevated permissions to validate your AWS environment. Refer to the [Validator](https://github.com/spectrocloud-labs/validator) GitHub repository for more information about the Validator and its plugins.
:::

## Install

Use the `install` subcommand to install the Validator framework and configure Validator plugins. An interactive wizard will guide you through the installation process. You can also use a configuration file to install the Validator.


:::info

A [kind](https://kind.sigs.k8s.io/) cluster will be deployed as part of the Validator installation. The name of the kind cluster is `validator-kind-cluster`. You can find the `kind` binary installed in the `$HOME/.palette/bin` directory. You can install the Validator into an existing Kubernetes cluster by using the Helm chart. Refer to the [Validator Helm Install](https://github.com/spectrocloud-labs/validator#installation) steps for more information.

:::


The `install` subcommand accepts the following flags.

| **Short Flag** | **Long Flag** | **Description** | **Type** |
|-|----------|------------------|-------------|
| `-f` |`--config-file` | Install the Validator using a configuration file (optional). Provide the file path to the configuration file. | string |
| `-o` |`--config-only` | Generate a configuration file without proceeding with an actual install. Default: false| boolean |
| `-h` |`--help`| Help with any command. | - |

### Examples

Below are some examples of using the `install` subcommand and its supported workflows.

Interactive Install

```shell
palette validator install
```

Install using a configuration file

```shell
palette validator install \
--config-file /Users/demo/.palette/validator/validator-20231109135306/validator.yaml
```

Generate a configuration file without proceeding with an actual installation

```shell
palette validator install --config-only
```


### Configuration Files

After the install wizard completes, the Validator will generate a configuration file. You can use the generated configuration file to install the Validator using with the same configuration you specified in the wizard. You also need this configuration file to uninstall the Validator.

Once Validator is installed, the configuration file is located in the `$HOME/.palette/validator` directory and is named `validator.yaml`.

The install output displays the location of the configuration file. In the example below, the configuration file is located at `/Users/demo/.palette/validator/validator-20231109135306/validator.yaml`. The output is truncated for brevity.

```shell hideClipboard {1,11}
validator configuration file saved: /Users/demo/.palette/validator/validator-20231109135306/validator.yaml
Creating cluster "validator-kind-cluster" ...
✓ Ensuring node image (kindest/node:v1.24.7) 🖼
• Preparing nodes 📦 ...
• Writing configuration 📜 ...
✓ Starting control-plane 🕹️
• Installing CNI 🔌 ...
✓ Installing StorageClass 💾
Set kubectl context to "kind-validator-kind-cluster"
You can now use your cluster with:
kubectl cluster-info --context kind-validator-kind-cluster --kubeconfig /Users/demo/.palette/validator/validator-20231109135306/kind-cluster.kubeconfig
```

The kubeconfig file to the kind cluster is also located in the `$HOME/.palette/validator` directory and is named `kind-cluster.kubeconfig`. Its location is displayed in the install output.


### Review Validation Results

The Validator generates a report after the validation process is complete. All validations are stored as a [Custom Resource](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) (CR) in the `validator` namespace. Each plugin you specified during installation will have its own CR. Additionally, the Validator creates a CR containing all the validation results and Validator configurations.


:::tip

The kind cluster's kubeconfig file is located in the `$HOME/.palette/validator` directory and is named `kind-cluster.kubeconfig`. Its location is displayed in the install output. You can use this kubeconfig file to access the kind cluster and view the CRs.
karl-cardenas-coding marked this conversation as resolved.
Show resolved Hide resolved

Example: `/Users/demo/.palette/validator/validator-20231109135306/kind-cluster.kubeconfig`

:::


Below is example output of the CRs the Validator creates after a successful validation process. Two plugins were used in this example: the `aws` plugin and the `network` plugin.
karl-cardenas-coding marked this conversation as resolved.
Show resolved Hide resolved


```shell hideClipboard
NAME CREATED AT
awsvalidators.validation.spectrocloud.labs 2023-11-09T21:02:41Z
networkvalidators.validation.spectrocloud.labs 2023-11-09T21:02:45Z
validationresults.validation.spectrocloud.labs 2023-11-09T21:02:12Z
validatorconfigs.validation.spectrocloud.labs 2023-11-09T21:02:12Z
```

You can use the `kubectl` command to view the validation results. To review all the results collectively, use the `describe` command to display the `validationresults` CR.

```shell
kubectl describe validationresults --namespace validator
```

```yaml
Name: validator-plugin-aws-aws-validator-spectro-cloud-base
Namespace: validator
Labels: <none>
Annotations: <none>
API Version: validation.spectrocloud.labs/v1alpha1
Kind: ValidationResult
Metadata:
Creation Timestamp: 2023-11-09T21:03:14Z
Generation: 1
Resource Version: 721
UID: 766f0465-8867-48e9-89e5-a6f819795b17
Spec:
Plugin: AWS
Status:
Conditions:
Failures:
v1alpha1.IamRoleRule SpectroCloudRole missing action(s): [s3:DeleteObject s3:PutBucketOwnershipControls s3:PutBucketPolicy s3:PutBucketPublicAccessBlock s3:PutObjectAcl s3:PutObject] for resource arn:*:s3:::* from policy Controllers Policy
Last Validation Time: 2023-11-09T21:03:14Z
Message: One or more required IAM permissions was not found, or a condition was not met
Status: False
Validation Rule: validation-SpectroCloudRole
Validation Type: aws-iam-role-policy
State: Failed
Events: <none>


Name: validator-plugin-aws-validator-plugin-aws
Namespace: validator
Labels: <none>
Annotations: <none>
API Version: validation.spectrocloud.labs/v1alpha1
Kind: ValidationResult
Metadata:
Creation Timestamp: 2023-11-09T21:03:12Z
Generation: 1
Resource Version: 713
UID: 73e2f1c6-feb0-493b-bf8a-161e662e02b5
Spec:
Plugin: AWS
Status:
Conditions:
Details:
EC2-VPC Elastic IPs: quota: 10, buffer: 5, max. usage: 0, max. usage entity: us-east-1
Last Validation Time: 2023-11-09T21:03:12Z
Message: Usage for all service quotas is below specified buffer
Status: True
Validation Rule: validation-ec2
Validation Type: aws-service-quota
State: Succeeded
Events: <none>


Name: validator-plugin-aws-validator-plugin-network
Namespace: validator
Labels: <none>
Annotations: <none>
API Version: validation.spectrocloud.labs/v1alpha1
Kind: ValidationResult
Metadata:
Creation Timestamp: 2023-11-09T21:03:12Z
Generation: 1
Resource Version: 734
UID: 256006fb-5729-4b44-a4e1-58b7d32068b9
Spec:
Plugin: Network
Status:
Conditions:
Details:
nc [-w 3 google.com 443] succeeded
Last Validation Time: 2023-11-09T21:03:17Z
Status: True
Validation Rule: default
Validation Type: network-tcp-conn
State: Failed
Events: <none>
```
#### Success

The `State` field in the `Status` section of the `ValidationResult` CR indicates if the validation was successful or not. If the validation was successful, the `State` field is set to `Succeeded`.

In the example below, the `State` field is set to `Succeeded` for the `validator-plugin-aws-validator-plugin-aws` CR. This check was successful because the usage for all service quotas is below the specified buffer. The output is truncated for brevity.

```yaml hideClipboard {12}
Name: validator-plugin-aws-validator-plugin-aws
...
Status:
Conditions:
Details:
EC2-VPC Elastic IPs: quota: 10, buffer: 5, max. usage: 0, max. usage entity: us-east-1
Last Validation Time: 2023-11-09T21:03:12Z
Message: Usage for all service quotas is below specified buffer
Status: True
Validation Rule: validation-ec2
Validation Type: aws-service-quota
State: Succeeded
```

#### Fail

If the validation is not successful, the `State` field is set to `Failed`. The `Conditions.Failures` section contains additional information about the failure. In this example, several IAM permissions are missing for the `SpectroCloudRole` IAM role. The output is truncated for brevity.


```yaml hideClipboard {6,8,12}
Name: validator-plugin-aws-aws-validator-spectro-cloud-base
...
Status:
Conditions:
Failures:
v1alpha1.IamRoleRule SpectroCloudRole missing action(s): [s3:DeleteObject s3:PutBucketOwnershipControls s3:PutBucketPolicy s3:PutBucketPublicAccessBlock s3:PutObjectAcl s3:PutObject] for resource arn:*:s3:::* from policy Controllers Policy
Last Validation Time: 2023-11-09T21:03:14Z
Message: One or more required IAM permissions was not found, or a condition was not met
Status: False
Validation Rule: validation-SpectroCloudRole
Validation Type: aws-iam-role-policy
State: Failed
```

Use the error output to help you address the failure. In this example, you would need to add the missing IAM permissions to the `SpectroCloudRole` IAM role. Other failures may require you to update your environment to meet the validation requirements.


#### Resolve Failures

Each plugin may have its own set of failures. Resolving failures will depend on the plugin and the failure. Use the error output to help you address the failure. Below are some tips to help you resolve failures.

| **Plugin** | **Failure Scenario** | **Guidance** |
|-|----------|------------------|
| AWS | Missing IAM permissions| The IAM role used by Palette is missing one or more required IAM permissions. Refer to [Required IAM Policies](../../clusters/public-cloud/aws/required-iam-policies.md) for a comprehensive list of required IAM permissions and attach the missing permissions or policies. |
| AWS | Insufficient Service Quota Buffer | The usage quota for a service or multiple service quotas is above the specified buffer. Refer to AWS [Service Quotas](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html) documentation to review the default limits. Use the [Service Quotas](https://console.aws.amazon.com/servicequotas/) console to request an increase to your account, or remove resources to reduce the usage. |
| Network | TCP connection error | The Validator could not establish a Transmission Control Protocol (TCP) connection to the specified host and port. Ensure the host and port are accessible from the Validator's current network. If the current network is not in scope, ensure you conduct the test from a network in scope. Refer to the [Network Ports](../../architecture/networking-ports.md) resource for a list of Palette required ports. |
| Network| Unable to connect | This could be caused by several issues. If you require network connections to use a proxy server, specify the usage of a network proxy and provide the required proxy server information. |
| Network | Unable to resolve DNS | The Validator was unable to resolve the specified DNS name. Ensure the DNS name is valid and accessible from the Validator's current network default DNS resolver. Use network tools such as `dig` and `nslookup` to debug DNS issues. |
| Network | Insufficient IP Addresses | The Validator was unable to find a sufficient number of IP addresses in the specified IP range. Ensure the IP range is valid and has enough IP addresses to satisfy the Validator's requirements. Discuss these findings with your network administrator. |
| vSphere| Missing permissions | The user account used by Palette or VerteX is missing one or more required permissions. Refer to [Palette Required vSphere Permissions](../../enterprise-version/install-palette/install-on-vmware/vmware-system-requirements.md#vsphere-permissions), or the [VerteX Required vSphere Permissions](../../vertex/install-palette-vertex/install-on-vmware/vmware-system-requirements.md#vsphere-permissions) resource for information about required permissions. |
| vSphere | Missing tags | Kubernetes regions and zone tags are missing from the vSphere environment. Refer to [Palette Required vSphere Tags](../../enterprise-version/install-palette/install-on-vmware/vmware-system-requirements.md#zone-tagging), or the [VerteX Required vSphere Tags](../../vertex/install-palette-vertex/install-on-vmware/vmware-system-requirements.md#zone-tagging) resource for information about zone tags. |
| vSphere | Folder missing or not accessible | The `spectro-templates` folder is missing or not accessible. Ensure the folder exists and the user account used by Palette or VerteX has read access to the folder. The `spectro-templates` folder is used by Palette and VerteX to download OVAs during the install. |


## Uninstall

Use the `uninstall` subcommand to uninstall the Validator framework and remove all Validator plugins. To remove the Validator, you must specify the `--config-file` flag.

The `uninstall` subcommand accepts the following flags.

| **Short Flag** | **Long Flag** | **Description** | **Type** |
|-|----------|------------------|-------------|
| `-f` |`--config-file` | Uninstall the Validator using a configuration file (required). Provide the file path to the configuration file. | string |
| `-d` |`--delete-cluster` | Delete the Validator kind cluster. This does not apply if using a preexisting Kubernetes cluster. Default: true. | bool |
| `-h` |`--help`| Help with any command. | - |


### Examples

Remove the Validator, its plugins, and the kind cluster.

```shell
palette validator uninstall \
--config-file /Users/demo/.palette/validator/validator-20231109135306/validator.yaml \
--delete-cluster
```

Remove the Validator, its plugins, but not the kind cluster.

```shell
palette validator uninstall \
--config-file /Users/demo/.palette/validator/validator-20231109135306/validator.yaml \
--delete-cluster=false
```
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "spectro-cloud-docs",
"version": "4.0.0",
"version": "4.2.0",
"private": true,
"scripts": {
"docusaurus": "docusaurus",
Expand Down
2 changes: 1 addition & 1 deletion scripts/versions.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ fi
echo "Temp directory: $tempdir"
echo "Base directory: $baseDir"
# List of version branches to exclude
exclude_branches=(version-3-4) # DO NOT ADD A COMMA BETWEEN THE BRANCHES. ADD A SPACE INSTEAD AND THE NEW VERSION STRING.
exclude_branches=(version-3-4 version-4-0) # DO NOT ADD A COMMA BETWEEN THE BRANCHES. ADD A SPACE INSTEAD AND THE NEW VERSION STRING.
# exclude_branches=("version-3-4")

# Save the current branch name
Expand Down
5 changes: 4 additions & 1 deletion vale/styles/Vocab/Internal/accept.txt
Original file line number Diff line number Diff line change
Expand Up @@ -159,4 +159,7 @@ Astra Trident
Astra
FSx
liveness
Autosupport
Autosupport
Validator
bool
OVA