Skip to content

Commit

Permalink
docs: Patch Release Notes (#4400)
Browse files Browse the repository at this point in the history
* docs: release branch 4.5.a

* DOC-1429

* docs: update agent mode

* docs: updated agent mode

* docs: added upgrade path

* docs: improve upgrade path

* docs: updated notes

* ci: fix typo

* ci: more fixes

* ci: typo

* ci: fix robots

* chore: remove XML exclusion

* chore: update breaking note

* docs: PE-5367

* docs: updated edge installer reference

* docs: updated edge pages

* docs: updated release notes

* docs: Update docs/docs-content/clusters/edge/edge-configuration/installer-reference.md

Co-authored-by: Ben Radstone <[email protected]>

* ci: auto-formatting prettier issues

* docs: PE-5313 PE-5411

* docs: a-pply suggestions from code review

Co-authored-by: Adelina Simion <[email protected]>

* ci: auto-formatting prettier issues

* chore: fix broken URLs

* docs: update edge example

* docs: removed beehive

* docs: updatated tutorial

---------

Co-authored-by: Lenny Chen <[email protected]>
Co-authored-by: Ben Radstone <[email protected]>
Co-authored-by: karl-cardenas-coding <[email protected]>
Co-authored-by: Adelina Simion <[email protected]>
  • Loading branch information
5 people authored Oct 28, 2024
1 parent f68bda1 commit d1c5d81
Show file tree
Hide file tree
Showing 26 changed files with 374 additions and 96 deletions.
2 changes: 1 addition & 1 deletion _partials/packs/_kubernetes-genercic.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ the <VersionedLink text="Kubernetes Support Lifecycle" url="//integrations/kuber

<!-- prettier-ignore -->
Once you upgrade your cluster to a new Kubernetes version, you will not be able to downgrade. We recommend that, before
upgrading, you review the information provided in the <VersionedLink text="Kubernetes Upgrades" url="/integrations/kubernetes-support/#kubernetes-upgrades" />
upgrading, you review the information provided in the <VersionedLink text="Kubernetes Upgrades" url="/integrations/packs/?pack=edge-native-byoi" />
section.

Review the <VersionedLink text="Maintenance Policy" url="/integrations/maintenance-policy/" /> to learn about pack update and deprecation schedules.
Expand Down
2 changes: 1 addition & 1 deletion _partials/tutorials/_checkout_tutorial_tag.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ partial_name: checkout-tutorials-tag
Check out the following git tag.

```shell
git checkout v1.1.7
git checkout v1.1.12
```
2 changes: 1 addition & 1 deletion _partials/tutorials/_download_tutorial_image_docker.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ partial_name: download-tutorials-image-docker
Download the tutorial image to your local machine.

```bash
docker pull ghcr.io/spectrocloud/tutorials:1.1.7
docker pull ghcr.io/spectrocloud/tutorials:1.1.12
```
2 changes: 1 addition & 1 deletion _partials/tutorials/_download_tutorial_image_podman.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ partial_name: download-tutorials-image-podman
Download the tutorial image to your local machine.

```bash
podman pull ghcr.io/spectrocloud/tutorials:1.1.7
podman pull ghcr.io/spectrocloud/tutorials:1.1.12
```
2 changes: 1 addition & 1 deletion _partials/tutorials/_run_tutorial_container_docker.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ partial_name: run-tutorials-container-docker
Next, start the container, and open a bash session into it.

```shell
docker run --name tutorialContainer --interactive --tty ghcr.io/spectrocloud/tutorials:1.1.7 bash
docker run --name tutorialContainer --interactive --tty ghcr.io/spectrocloud/tutorials:1.1.12 bash
```
2 changes: 1 addition & 1 deletion _partials/tutorials/_run_tutorial_container_podman.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ partial_name: run-tutorials-container-podman
Next, start the container, and open a bash session into it.

```shell
podman run --name tutorialContainer --interactive --tty ghcr.io/spectrocloud/tutorials:1.1.7 bash
podman run --name tutorialContainer --interactive --tty ghcr.io/spectrocloud/tutorials:1.1.12 bash
```
2 changes: 1 addition & 1 deletion _partials/tutorials/_stop_tutorial_container_docker.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ partial_name: stop-tutorials-container-docker

```shell
docker stop tutorialContainer && \
docker rmi --force ghcr.io/spectrocloud/tutorials:1.1.7
docker rmi --force ghcr.io/spectrocloud/tutorials:1.1.12
```
2 changes: 1 addition & 1 deletion _partials/tutorials/_stop_tutorial_container_podman.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ partial_name: stop-tutorials-container-podman

```shell
podman stop tutorialContainer && \
podman rmi --force ghcr.io/spectrocloud/tutorials:1.1.7
podman rmi --force ghcr.io/spectrocloud/tutorials:1.1.12
```
4 changes: 0 additions & 4 deletions docs/docs-content/clusters/cluster-groups/cluster-groups.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,6 @@ users to deploy Palette virtual clusters. Downstream consumers can use the clust
You can create a cluster group under the Palette [tenant](../../glossary-all.md#tenant) scope. Alternatively, you can
create a cluster group at the [project](../../tenant-settings/projects/projects.md) scope.

By default, Palette exposes a managed cluster group called _beehive_ that is available for users in app mode. This
cluster group is managed by Palette and falls under the free tier. The beehive cluster group is located in the eastern
side of the U.S.

You can create a cluster group that is made up of various types of host clusters. You could create a cluster group by
similar cloud providers, Kubernetes versions, or by location. You have the flexibility to define the grouping criteria.
The following image displays a cluster group comprised of various host clusters deployed in a public cloud, private
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,146 @@ listed in alphabetical order.
| `stylus.installationMode` | Allowed values are `connected` and `airgap`. Default value is `connected`. `connected` means that the Edge host has a connection to Palette; `airgap` means it does not have a connection to Palette. | `connected` |
| `stylus.localUI.port` | Specifies the port that Local UI is exposed on. | 5080 |
| `stylus.site` | Review Site Parameters for more information. | |
| `stylus.registryCredentials` | Review [External Registry Parameters](#external-registry-parameters) for more information. | None |
| `stylus.externalRegistries` | Use this parameter to configure multiple external registries and to apply domain re-mapping rules. Review [External Registry Parameters](#multiple-external-registries) for more information. | None |
| `stylus.registryCredentials` | Only used when a single external registry in use and no mapping rules are needed. Review [Single External Registry](#single-external-registry) for more information. | None |
| `stylus.trace` | Enable this parameter to display trace output. Allowed values are `true` or `false`. | `False` |

### External Registry Parameters
### Multiple External Registries

You can configure multiple external registries by using the `stylus.externalRegistries` parameter object. You can also
apply domain mapping rules to map domain names to external registries.

If you are using an external registry and want to use content bundles when deploying your Edge cluster, you must also
enable the local Harbor registry. For more information, refer to
[Build Content Bundles](../edgeforge-workflow/palette-canvos/build-content-bundle.md) and
[Enable Local Harbor Registry](../site-deployment/deploy-custom-registries/local-registry.md).

Review the following parameters to configure external registries.

| Parameter | Description | Default |
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
| `stylus.externalRegistries.registries` | A list of external registries. Refer to [Registry Parameters](#registry-parameters) for more details. | None |
| `stylus.externalRegistries.registryMappingRules` | A list of key-pair rules to map domain names to external registries. Refer to [Registry Mapping Rules](#registry-mapping-rules) for more details. | None |

#### Registry Parameters

The `stylus.externalRegistries.registries` block accepts the following parameters.

| Parameter | Description | Default |
| ----------------- | ------------------------------------------------------------------- | ------- |
| `domain` | The domain of the registry. | None |
| `username` | The username to authenticate with the registry. | None |
| `password` | The password to authenticate with the registry. | None |
| `repositoryName` | The name of the repository within the registry. | None |
| `certificates` | A list of certificates in PEM format to use to access the registry. | None |
| `insecure` | Whether to allow insecure connections to the registry. | `False` |
| `encodedPassword` | Whether the password is base64 encoded. | `False` |

Below is an example of how to configure an external registry.

```yaml
stylus:
externalRegistries:
registries:
- domain: "example.registry.com/internal-images"
username: "admin"
password: "***************"
repositoryName: example-repository-private
certificates:
- |
-----BEGIN CERTIFICATE-----
MIIENDCCAxygAwIBAgIUSdnFq4anqjgKf2iRX2RP65LYpkwwDQYJKoZIhvcNAQEL
BQAwfzEpMCcGA1UEAwwgc2hydXRoaS1haXJnYXAyLnNwZWN0cm9jbG91ZC5kZXYx
FTATBgNVBAoMDFNwZWN0cm9DbG91ZDELMAkGA1UECwwCSVQxFDASBgNVBAcMC1Nh
bnRhIENsYXJhMQswCQYDVQQIDAJDQTELMAkGA1UEBhMCVVMwHhcNMjQwMTExMDkz
ODUzWhcNMzQwMTA4MDkzODUzWjB/MSkwJwYDVQQDDCBzaHJ1dGhpLWFpcmdhcDIu
c3BlY3Ryb2Nsb3VkLmRldjEVMBMGA1UECgwMU3BlY3Ryb0Nsb3VkMQswCQYDVQQL
DAJJVDEUMBIGA1UEBwwLU2FudGEgQ2xhcmExCzAJBgNVBAgMAkNBMQswCQYDVQQG
EwJVUzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANcPucLatrCHmR+o
h6pIReisVxbJI0jqlVfive+mDp64Z3aXbzlX634chbyjd6G8xmZXH0beIZE91yGD
42atamrqDSADcZRvjUmqGzf/nrm3sOCHOKNMvMFZJ0uGFjwuwxIDf91+Vgj0FZRe
j+nVRI3XQyAdJXP6sls8vu8bHk6RDMLYb+IzMWzFuPGDUv3fU41a3dijVfMxt6hj
MdoUe6wzTr46ylUgm5rB/SKrMcg41ZNFcqYLhHt6KsS/0G8hjrvo7d+BeNcxf6GP
xOWyimdq18suHqFQ82ieCxB8gR2Ig15ch8UG1p95JbVMjzLTi3tgU9EARuftsUK9
spdn2cUCAwEAAaOBpzCBpDAdBgNVHQ4EFgQUDVk6cnlax94aPm3F+fubzHj8vaIw
HwYDVR0jBBgwFoAUDVk6cnlax94aPm3F+fubzHj8vaIwDwYDVR0TAQH/BAUwAwEB
/zA8BgNVHREENTAzgglsb2NhbGhvc3SHBH8AAAGCIHNocnV0aGktYWlyZ2FwMi5z
cGVjdHJvY2xvdWQuZGV2MBMGA1UdJQQMMAoGCCsGAQUFBwMBMA0GCSqGSIb3DQEB
CwUAA4IBAQATfu3drGJkmFD58KvUKuOhAY28TpVquH63W40JchVjhtOmg+WHfPIE
8dvYYKiZtrpFZDUcAVtn/KJIZoNbq51o7mWj/rl6W5pcajBLoqcvlDH0zXzVgF+f
+gj68SMegHwp+EO/dK9LfLp2bxNuBPCnvLj3eMs0HCdmZW1uzVm71YIXTSXwgm/2
nMnI5ELi2kuufCZh5wQxr7km+qZgTteaZI2h+YNU88m/SreRFHfBP8QRfkqTumfW
Sz3rWOQ93KXO/CEk+XySnVFgS+JdGtpmRalOfGeJ0Kk8hraX3h/2KkD0Vd99DIMN
DlN636dYFSJBG3LjGuzyO66kEvbGJAIT
-----END CERTIFICATE-----
registryMappingRules:
"us-east1-docker.pkg.dev/spectro-images/daily": "example.registry.com/internal-images"
"us-docker.pkg.dev/palette-images": "example.registry.com/internal-images"
"grc.io/spectro-dev-public": "example.registry.com/internal-images"
"grc.io/spectro-images-public": "example.registry.com/internal-images"
```
#### Registry Mapping Rules
Use registry mapping rules to map a domain name to an external registry. The `registryMappingRules` parameter accepts a
list of key-value pairs where the key is the domain name and the value is URL mapping to the external registry.

Below is an example of registry mapping rules. The registry in the code snippet, `example.registry.com/internal-images`
is assumed to contain the images that are mapped from the external registries.

```yaml
stylus:
externalRegistries:
registries:
- domain: "example.registry.com/internal-images"
repositoryName: "primary-registry"
username: "admin"
password: "***************"
registryMappingRules:
"us-east1-docker.pkg.dev/spectro-images/daily": "example.registry.com/internal-images"
"us-docker.pkg.dev/palette-images": "example.registry.com/internal-images"
"grc.io/spectro-dev-public": "example.registry.com/internal-images"
"grc.io/spectro-images-public": "example.registry.com/internal-images"
```

##### Airgap Environment

In an airgap environment, use the `registryMappingRules` parameter to map domain names to external registries that were
downloaded when creating the [content bundle](../edgeforge-workflow/palette-canvos/build-content-bundle.md).

:::info

<!-- prettier-ignore -->
Palette will automatically update the image path when <VersionedLink text="Harbor Edge-Native Config" url="/integrations/packs/?pack=harbor-edge-native-config" /> pack is enabled. For example, if you have a registry mapping rule such as the following.

```yaml
"us-east1-docker.pkg.dev/spectro-images/daily": "example.registry.com/internal-images"
```

Then the image tag will be updated with the prefix URL to the Harbor registry, such as
`https://10.10.100.45:30003/example.registry.com/internal-images`. Palette will do this for all registry mapping rules
specified in the user data. This allows the Edge host to find and pull images that came from an external registry
through the local Harbor registry.

:::

```yaml
stylus:
installationMode: airgap
externalRegistries:
registryMappingRules:
"us-east1-docker.pkg.dev/spectro-images/daily": "example.registry.com/internal-images"
"us-docker.pkg.dev/palette-images": "example.registry.com/internal-images"
"grc.io/spectro-dev-public": "example.registry.com/internal-images"
"grc.io/spectro-images-public": "example.registry.com/internal-images"
```

### Single External Registry

You can point the Edge Installer to a non-default registry to load content from another source. Use the
`registryCredentials` parameter object to specify the registry configurations.
`registryCredentials` parameter object to specify the registry configurations. If you have multiple external registries,
use the `stylus.externalRegistries` parameter object instead. Refer to the
[Multiple External Registries](#multiple-external-registries) section for more information.

If you are using an external registry and want to use content bundles when deploying your Edge cluster, you must also
enable the local Harbor registry. For more information, refer to
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ To start building a custom Edge artifact, use the following guides:
images to help you get started quickly. You can also refer to the following how-tos to learn how to build the Edge
Installer ISO and provider images individually.

- [Build Provider Images](./palette-canvos//build-provider-images.md).
- [Build Provider Images](./palette-canvos/build-provider-images.md).

- [Build Installer ISO](./palette-canvos//build-installer-iso.md).
- [Build Installer ISO](./palette-canvos/build-installer-iso.md).

If you want your Edge host to have preloaded content and be able to create clusters using the preloaded content, you
build a content bundle and build the content bundle into your Edge Installer ISO. Building preloaded content into your
Expand Down Expand Up @@ -97,8 +97,8 @@ production scenario, you would need to customize these artifacts to suit your sp

You can specify a custom registry for the Edge Installer to use during installation with the user data parameter
`registryCredentials`. Refer to the
[Installer Configuration](../edge-configuration/installer-reference.md#external-registry-parameters) reference resource
for more details.
[Installer Configuration](../edge-configuration/installer-reference.md#single-external-registry) reference resource for
more details.

:::

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,11 @@ Creating a content bundle provides several benefits that may address common use
[Deploy Cluster with External Registry](../../site-deployment/deploy-custom-registries/deploy-external-registry.md)
and [Enable Local Harbor Registry](../../site-deployment/deploy-custom-registries/local-registry.md).

- Edge content bundles created with Edge CLI version greater than `4.5.5`, are incompatible with Palette agent versions
before `4.5.4` due to a new format schema. If you are using an older version of the Palette agent, use the Edge CLI
version `4.5.3` or earlier to create content bundles. To download the latest version of the Edge CLI, visit the
[Downloads](../../../../spectro-downloads.md#palette-edge-cli) page.

## Prerequisites

- Linux Machine (Physical or VM) with an AMD64 architecture.
Expand All @@ -68,10 +73,10 @@ Creating a content bundle provides several benefits that may address common use

1. Download Palette Edge CLI and assign the executable bit to the CLI. Refer to
[Palette Components Compatibility Matrix](../../../../component.md#palette-edge-cli-versions) to use the right
Palette Edge CLI version. This guide uses 4.4.2 as an example.
Palette Edge CLI version. This guide uses 4.5.5 as an example.

```shell
VERSION=4.4.2
VERSION=4.5.5
wget https://software.spectrocloud.com/stylus/v$VERSION/cli/linux/palette-edge
chmod +x palette-edge
```
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,21 +95,69 @@ information, refer to [Enable Local Harbor Registry](./local-registry.md).
cd CanvOS
```

3. In the user data file, provide the URL and the credentials in `stylus.registryCredentials`. The following is an
example:

```yaml
#cloud-config
stylus:
registryCredentials:
domain: 10.10.254.254:8000/spectro-images
username: ubuntu
password: *******
insecure: true
```
Refer to [Installer Configuration](../../edge-configuration/installer-reference.md#external-registry-parameters) for
a description of each field.
3. In the user data file, provide the URL and the credentials to the external registry. You can specify a single
external registry or multiple external registries. The following example shows how to specify a single external
registry and multiple external registries. Select the tab that corresponds to the configuration you want to use.

:::tip

If you need specify URL mapping rules to the external registry, use the multiple external registries configuration
and provide the mapping rules in the `registryMappingRules` field.

:::

<Tabs>
<TabItem value="single-registry" label="Single External Registry">
```yaml
#cloud-config
stylus:
registryCredentials:
domain: "10.10.254.254:8000/spectro-images"
username: "ubuntu"
password: "*******"
insecure: true
```

Refer to [Installer Configuration](../../edge-configuration/installer-reference.md#single-external-registry) for a
description of each field.

</TabItem>
<TabItem value="multiple-registries" label="Multiple External Registries">

```yaml
#cloud-config
stylus:
externalRegistries:
registries:
- domain: "10.10.254.254:8000/spectro-images"
username: "admin"
password: ***************
repositoryName: "example-repository-private"
certificates: |
-----BEGIN CERTIFICATE-----
MIIDBzCCAe+gAwIBAgIJAJzQ
...
-----END CERTIFICATE-----
- domain: "10.10.11.60:3899/security-images"
username: "projectAdmin2"
password: "***************"
repositoryName: security-images
certificates: |
-----BEGIN CERTIFICATE-----
MIIDBzCCAe+gAwIBAgIJAJzQ
...
-----END CERTIFICATE-----
registryMappingRules:
"us-east1-docker.pkg.dev/spectro-images/daily": "example.registry.com/internal-images"
"us-docker.pkg.dev/palette-images": "example.registry.com/internal-images"
"grc.io/spectro-dev-public": "example.registry.com/internal-images"
"grc.io/spectro-images-public": "example.registry.com/internal-images"
```
Refer to [Installer Configuration](../../edge-configuration/installer-reference.md#multiple-external-registries) for a
description of each field.

</TabItem>
</Tabs>

4. Follow the rest of the [Build Edge Artifact](../../edgeforge-workflow/palette-canvos/palette-canvos.md) guide and
build the Installer ISO with the user data containing the registry credentials.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ to use a private registry for images other the provider images, refer to
If you have specified registry credentials in the `registryCredentials` field in the user data file during the
EdgeForge process, the credentials provided in the cluster profile will be ignored. For more information, refer to
[EdgeForge - Build Artifacts](../../edgeforge-workflow/palette-canvos/palette-canvos.md) and
[Installer Configuration](../../edge-configuration/installer-reference.md#external-registry-parameters).
[Installer Configuration](../../edge-configuration/installer-reference.md#multiple-external-registries).

:::

Expand Down
Loading

0 comments on commit d1c5d81

Please sign in to comment.