diff --git a/docs/docs-content/clusters/edge/edgeforge-workflow/palette-canvos.md b/docs/docs-content/clusters/edge/edgeforge-workflow/palette-canvos.md index 4f1615b799..c07bcc814b 100644 --- a/docs/docs-content/clusters/edge/edgeforge-workflow/palette-canvos.md +++ b/docs/docs-content/clusters/edge/edgeforge-workflow/palette-canvos.md @@ -80,22 +80,14 @@ To complete this basic guide, you will need the following items: ### Instructions Use the following instructions on your Linux machine to create all the required Edge artifacts with minimal customization. -
1. Check out the [CanvOS](https://github.com/spectrocloud/CanvOS) GitHub repository containing the starter code. -
- ```bash git clone https://github.com/spectrocloud/CanvOS.git ``` - - - - 2. Change to the **CanvOS/** directory. -
```bash cd CanvOS @@ -103,18 +95,16 @@ Use the following instructions on your Linux machine to create all the required 3. View the available [git tag](https://github.com/spectrocloud/CanvOS/tags). -
```bash git tag ``` -4. Check out the newest available tag. This guide uses **v3.4.3** tag as an example. -
+4. Check out the newest available tag. This guide uses the tag **v4.0.6** as an example. ```shell - git checkout v3.4.3 + git checkout v4.0.6 ``` @@ -124,7 +114,6 @@ Use the following instructions on your Linux machine to create all the required - **Earthfile** - Contains a series of commands to create target artifacts. - **earthly.sh** - Script to invoke the Earthfile, and generate target artifacts. - **user-data.template** - A sample user-data file. -
6. Issue the command below to assign an image tag value that will be used when creating the provider images. This guide uses the value `palette-learn` as an example. However, you can assign any lowercase and alphanumeric string to the `CUSTOM_TAG` argument. @@ -132,7 +121,6 @@ Use the following instructions on your Linux machine to create all the required ```bash export CUSTOM_TAG=palette-learn ``` -
7. Issue the command below to create the **.arg** file containing the custom tag. The remaining arguments in the **.arg** file will use the default values. For example, `ubuntu` is the default operating system, `demo` is the default tag, and [ttl.sh](https://ttl.sh/) is the default image registry. Refer to the existing **.arg.template** file in the current directory or the [README](https://github.com/spectrocloud/CanvOS#readme) to learn more about the available customizable arguments. @@ -142,7 +130,7 @@ Use the following instructions on your Linux machine to create all the required ::: - Using the arguments defined in the **.arg** file, the final provider images you generate will have the following naming convention, `[IMAGE_REGISTRY]/[IMAGE_REPO]:[CUSTOM_TAG]`. For example, one of the provider images will be `ttl.sh/ubuntu:k3s-1.25.2-v3.4.3-demo`. + Using the arguments defined in the **.arg** file, the final provider images you generate will have the following naming convention, `[IMAGE_REGISTRY]/[IMAGE_REPO]:[CUSTOM_TAG]`. For example, one of the provider images will be `ttl.sh/ubuntu:k3s-1.27.2-v4.0.6-palette-learn`. ```bash cat << EOF > .arg @@ -153,8 +141,11 @@ Use the following instructions on your Linux machine to create all the required OS_VERSION=22 K8S_DISTRIBUTION=k3s ISO_NAME=palette-edge-installer - PE_VERSION=$(git describe --abbrev=0 --tags) ARCH=amd64 + HTTPS_PROXY= + HTTP_PROXY= + PROXY_CERT_PATH= + UPDATE_KERNEL=false EOF ``` @@ -172,39 +163,53 @@ Use the following instructions on your Linux machine to create all the required ``` -9. Use the following command to create the **user-data** file containing the tenant registration token. Also, you can click on the *Points of Interest* numbers below to learn more about the main attributes relevant to this example. - - +9. Use the following command to create the **user-data** file containing the tenant registration token. ```shell cat << EOF > user-data #cloud-config stylus: site: + paletteEndpoint: api.spectrocloud.com edgeHostToken: $token + projectName: stores + tags: + key1: value1 + key2: value2 + key3: value3 + name: edge-randomid + registrationURL: https://edge-registration-app.vercel.app/ + + network: + httpProxy: http://proxy.example.com + httpsProxy: https://proxy.example.com + noProxy: 10.10.128.10,10.0.0.0/8 + + nameserver: 1.1.1.1 + interfaces: + enp0s3: + type: static + ipAddress: 10.0.10.25/24 + gateway: 10.0.10.1 + nameserver: 10.10.128.8 + enp0s4: + type: dhcp + caCerts: + - | + ------BEGIN CERTIFICATE------ + ***************************** + ***************************** + ------END CERTIFICATE------ + - | + ------BEGIN CERTIFICATE------ + ***************************** + ***************************** + ------END CERTIFICATE------ + registryCredentials: + domain: registry.example.com + username: bob + password: #### + insecure: false install: poweroff: true users: @@ -213,16 +218,11 @@ Use the following instructions on your Linux machine to create all the required EOF ``` - - -
- View the newly created user data file to ensure the token is set correctly. ```bash cat user-data ``` -
10. The CanvOS utility uses [Earthly](https://earthly.dev/) to build the target artifacts. Issue the following command to start the build process. @@ -245,55 +245,63 @@ Use the following instructions on your Linux machine to create all the required Copy and save the output attributes in a notepad or clipboard to use later in your cluster profile. - ```bash + ```yaml pack: content: images: - image: "{{.spectro.pack.edge-native-byoi.options.system.uri}}" + # Below config is default value, please uncomment if you want to modify default values + # drain: + #cordon: true + #timeout: 60 # The length of time to wait before giving up, zero means infinite + #gracePeriod: 60 # Period of time in seconds given to each pod to terminate gracefully. If negative, the default value specified in the pod will be used + #ignoreDaemonSets: true + #deleteLocalData: true # Continue even if there are pods using emptyDir (local data that will be deleted when the node is drained) + #force: true # Continue even if there are pods that do not declare a controller + #disableEviction: false # Force drain to use delete, even if eviction is supported. This will bypass checking PodDisruptionBudgets, use with caution + #skipWaitForDeleteTimeout: 60 # If pod DeletionTimestamp older than N seconds, skip waiting for the pod. Seconds must be greater than 0 to skip. options: system.uri: "{{ .spectro.pack.edge-native-byoi.options.system.registry }}/{{ .spectro.pack.edge-native-byoi.options.system.repo }}:{{ .spectro.pack.edge-native-byoi.options.system.k8sDistribution }}-{{ .spectro.system.kubernetes.version }}-{{ .spectro.pack.edge-native-byoi.options.system.peVersion }}-{{ .spectro.pack.edge-native-byoi.options.system.customTag }}" + system.registry: ttl.sh system.repo: ubuntu system.k8sDistribution: k3s system.osName: ubuntu - system.peVersion: v3.4.3 - system.customTag: demo + system.peVersion: v4.0.6 + system.customTag: palette-learn system.osVersion: 22 ``` -
11. List the Docker images to review the provider images created. By default, provider images for all the Palette's Edge-supported Kubernetes versions are created. You can identify the provider images by reviewing the image tag value you used in the **.arg** file's `CUSTOM_TAG` argument. -
```shell docker images --filter=reference='*/*:*palette-learn' ``` - ```hideClipboard bash {3,4} - # Output - REPOSITORY TAG IMAGE ID CREATED SIZE - ttl.sh/ubuntu k3s-1.25.2-v3.4.3-palette-learn b3c4956ccc0a 6 minutes ago 2.49GB - ttl.sh/ubuntu k3s-1.24.6-v3.4.3-palette-learn fe1486da25df 6 minutes ago 2.49GB + ```hideClipboard bash + REPOSITORY TAG IMAGE ID CREATED SIZE + ttl.sh/ubuntu k3s-1.24.6-v4.0.6-palette-learn ee67aef2a674 10 minutes ago 4.09GB + ttl.sh/ubuntu k3s-1.27.2-v4.0.6-palette-learn 075134ad5d4b 10 minutes ago 4.11GB + ttl.sh/ubuntu k3s-1.25.2-v4.0.6-palette-learn 02424d29fcac 10 minutes ago 4.09GB + ttl.sh/ubuntu k3s-1.26.4-v4.0.6-palette-learn 4e373ddfb53f 10 minutes ago 4.11GB ``` -
12. To use the provider images in your cluster profile, push them to the image registry mentioned in the **.arg** file. The current example uses the [ttl.sh](https://ttl.sh/) image registry. This image registry is free to use and does not require a sign-up. Images pushed to *ttl.sh* are ephemeral and will expire after the 24 hrs time limit. Use the following commands to push the provider images to the *ttl.sh* image registry. -
```bash - docker push ttl.sh/ubuntu:k3s-1.25.2-v3.4.3-palette-learn - docker push ttl.sh/ubuntu:k3s-1.24.6-v3.4.3-palette-learn + docker push ttl.sh/ubuntu:k3s-1.24.6-v4.0.6-palette-learn + docker push ttl.sh/ubuntu:k3s-1.25.2-v4.0.6-palette-learn + docker push ttl.sh/ubuntu:k3s-1.26.4-v4.0.6-palette-learn + docker push ttl.sh/ubuntu:k3s-1.27.2-v4.0.6-palette-learn ``` -
:::caution As a reminder, [ttl.sh](https://ttl.sh/) is a short-lived image registry. If you do not use these provider images in your cluster profile within 24 hours of pushing to *ttl.sh*, they will expire and must be re-pushed. Refer to the Advanced workflow in the current guide to learn how to use another registry, such as Docker Hub, and tag the docker images accordingly. ::: -
13. After pushing the provider images to the image registry, open a web browser and log in to [Palette](https://console.spectrocloud.com). Ensure you are in the **Default** project scope before creating a cluster profile. @@ -312,27 +320,36 @@ Use the following instructions on your Linux machine to create all the required 16. Replace the the cluster profile's BYOOS pack manifest with the following custom manifest so that the cluster profile can pull the provider image from the ttl.sh image registry. The `system.xxxxx` attribute values below refer to the arguments defined in the **.arg** file. If you modified the arguments in the **.arg** file, you must modify the attribute values below accordingly. -
```yaml pack: content: images: - image: "{{.spectro.pack.edge-native-byoi.options.system.uri}}" + # Below config is default value, please uncomment if you want to modify default values + # drain: + #cordon: true + #timeout: 60 # The length of time to wait before giving up, zero means infinite + #gracePeriod: 60 # Period of time in seconds given to each pod to terminate gracefully. If negative, the default value specified in the pod will be used + #ignoreDaemonSets: true + #deleteLocalData: true # Continue even if there are pods using emptyDir (local data that will be deleted when the node is drained) + #force: true # Continue even if there are pods that do not declare a controller + #disableEviction: false # Force drain to use delete, even if eviction is supported. This will bypass checking PodDisruptionBudgets, use with caution + #skipWaitForDeleteTimeout: 60 # If pod DeletionTimestamp older than N seconds, skip waiting for the pod. Seconds must be greater than 0 to skip. options: system.uri: "{{ .spectro.pack.edge-native-byoi.options.system.registry }}/{{ .spectro.pack.edge-native-byoi.options.system.repo }}:{{ .spectro.pack.edge-native-byoi.options.system.k8sDistribution }}-{{ .spectro.system.kubernetes.version }}-{{ .spectro.pack.edge-native-byoi.options.system.peVersion }}-{{ .spectro.pack.edge-native-byoi.options.system.customTag }}" + system.registry: ttl.sh system.repo: ubuntu system.k8sDistribution: k3s system.osName: ubuntu - system.peVersion: v3.4.3 - system.customTag: demo + system.peVersion: v4.0.6 + system.customTag: palette-learn system.osVersion: 22 ``` The screenshot below displays how to reference a provider image in the BYOOS pack of your cluster profile. ![Screenshot of a sample cluster profile's OS layer ](/tutorials/palette-canvos/clusters_edge_palette-canvos_edit_profile.png) -
:::info @@ -340,11 +357,11 @@ Use the following instructions on your Linux machine to create all the required ::: -17. Add the following **Palette Optimized K3s** pack to the Kubernetes layer of your cluster profile. Select the k3s version 1.25.x because earlier in this how-to guide, you pushed a provider image compatible with k3s v1.25.2 to the ttl.sh image registry. +17. Add the following **Palette Optimized K3s** pack to the Kubernetes layer of your cluster profile. Select the k3s version 1.27.x because earlier in this how-to guide, you pushed a provider image compatible with k3s v1.27.2 to the ttl.sh image registry. |**Pack Type**|**Registry**|**Pack Name**|**Pack Version**| |---|---|---|---| - |Kubernetes|Public Repo|Palette Optimized k3s|`1.25.x`| + |Kubernetes|Public Repo|Palette Optimized k3s|`1.27.x`| 18. Add the network layer to your cluster profile, and choose a Container Network Interface (CNI) pack that best fits your needs, such as Calico, Flannel, Cilium, or Custom CNI. For example, you can add the following network layer. This step completes the core infrastructure layers in the cluster profile. @@ -358,19 +375,16 @@ Use the following instructions on your Linux machine to create all the required 20. If there are no errors or compatibility issues, Palette displays the newly created complete cluster profile for review. Verify the layers you added, and finish creating the cluster profile. -
### Validate List the Edge installer ISO image and checksum by issuing the following command from the **CanvOS/** directory. -
```shell ls build/ ``` ```hideClipboard shell -# Output palette-edge-installer.iso palette-edge-installer.iso.sha256 ``` @@ -414,14 +428,13 @@ To complete this advanced guide, you will need the following items: * An account with [Docker Hub](https://hub.docker.com/). If you do not have an account with Docker Hub already, refer to the [Create an account](https://docs.docker.com/docker-id/) page for signing-up instructions. -
:::info This guide uses Docker Hub as an example. You can use any other image registry that suit your requirements. ::: -
+ * A public repository named `opensuse-leap` in your image registry. Refer to the [Create a repository](https://docs.docker.com/docker-hub/repos/create/#create-a-repository) instructions for creating a Docker Hub repository and setting the repository's visibility to `public`. @@ -430,10 +443,8 @@ To complete this advanced guide, you will need the following items: Use the following instructions on your Linux machine to customize the arguments and Dockerfile and then create all the required Edge artifacts. -
1. Check out the [CanvOS](https://github.com/spectrocloud/CanvOS.git) GitHub repository containing the starter code. -
```bash git clone https://github.com/spectrocloud/CanvOS.git @@ -441,7 +452,6 @@ Use the following instructions on your Linux machine to customize the arguments 2. Change to the **CanvOS/** directory. -
```bash cd CanvOS @@ -449,7 +459,6 @@ Use the following instructions on your Linux machine to customize the arguments 3. View the available [git tag](https://github.com/spectrocloud/CanvOS/tags). -
```bash git tag @@ -457,12 +466,11 @@ Use the following instructions on your Linux machine to customize the arguments 4. Check out the newest available tag. This guide uses **v3.4.3** tag as an example. -
```shell - git checkout v3.4.3 + git checkout v4.0.6 ``` -
+ 5. Review the files relevant for this guide. - **.arg.template** - A sample **.arg** file that defines arguments to use during the build process. @@ -470,7 +478,7 @@ Use the following instructions on your Linux machine to customize the arguments - **Earthfile** - Contains a series of commands to create target artifacts. - **earthly.sh** - Script to invoke the Earthfile, and generate target artifacts. - **user-data.template** - A sample user-data file. -
+ 6. Review the **.arg** file containing the customizable arguments, such as image tag, image registry, image repository, and OS distribution. The table below shows all arguments, their default value, and allowed values. @@ -484,38 +492,36 @@ Use the following instructions on your Linux machine to customize the arguments |`OS_VERSION`|OS version, only applies to Ubuntu |22| 20, 22| |`K8S_DISTRIBUTION`|Kubernetes Distribution |k3s| k3s, rke2, kubeadm | |`ISO_NAME`|Name of the Installer ISO|palette-edge-installer|Lowercase alphanumeric string without spaces. The charaters `-` and `_` are allowed. | - | `PE_VERSION` | The Palette Edge installer version. This should match the tag checked out from Git. This is an advanced setting. Do not modify unless told to do so. | String | Git tags. | -| `platform` | Type of platform to use for the build. Used for cross platform builds (arm64 to amd64 as example). | string | `linux/amd64` | - + | `ARCH` | Architecture of the image. | `amd64` | `amd64`, `arm64` | + | `FIPS_ENABLED` | to generate FIPS compliant binaries `true`or`false` | `false` | `true`, `false` | + | `HTTP_PROXY` | URL of the HTTP Proxy server. | `""`| URL string| + | `HTTPS_PROXY` | URL of the HTTPS Proxy server. | `""`| URL string| + | `NO_PROXY` | URLS that should be excluded from the proxy. | `""`| Comma separated URL string| + | `PROXY_CERT_PATH` | Absolute path of the SSL Proxy certificate in PEM format. | `""`| Absolute path string| + | `UPDATE_KERNEL` | Determines whether to upgrade the Kernel version to the latest from the upstream OS provider| `false`| `true`, `false`| Next, you will customize these arguments to use during the build process. -
+ 7. Issue the command below to assign an image tag value that will be used when creating the provider images. This guide uses the value `palette-learn` as an example. However, you can assign any lowercase and alphanumeric string to the `CUSTOM_TAG` argument. -
```bash export CUSTOM_TAG=palette-learn ``` -
+ 8. Use the command below to save the Docker Hub image registry hostname in the `IMAGE_REGISTRY` argument. Before you execute the command, replace `[DOCKER-ID]` in the declaration below with your Docker ID. Your image registry hostname must comply with standard DNS rules and may not contain underscores. -
```bash - export IMAGE_REGISTRY=docker.io/[DOCKER-ID] # Follows [HOST]/[DOCKER-ID] syntax. Example: docker.io/spectrocloud + export IMAGE_REGISTRY=docker.io/[DOCKER-ID] ``` -
9. Issue the following command to use the openSUSE Leap OS distribution. -
```bash export OS_DISTRIBUTION=opensuse-leap ``` -
10. Issue the command below to create the **.arg** file containing the custom tag, Docker Hub image registry hostname, and openSUSE Leap OS distribution. The **.arg** file uses the default values for the remaining arguments. You can refer to the existing **.arg.template** file to learn more about the available customizable arguments. -
```bash cat << EOF > .arg @@ -525,89 +531,99 @@ Use the following instructions on your Linux machine to customize the arguments CUSTOM_TAG=$CUSTOM_TAG K8S_DISTRIBUTION=k3s ISO_NAME=palette-edge-installer - PE_VERSION=$(git describe --abbrev=0 --tags) ARCH=amd64 + HTTPS_PROXY= + HTTP_PROXY= + PROXY_CERT_PATH= + UPDATE_KERNEL=false EOF ``` View the newly created file to ensure the customized arguments are set correctly. -
```bash cat .arg ``` -
:::caution Using the arguments defined in the **.arg** file, the final provider image name will have the following naming pattern, `[IMAGE_REGISTRY]/[IMAGE_REPO]:[CUSTOM_TAG]`. Ensure the final artifact name conforms to the Docker Hub image name syntax - `[HOST]/[DOCKER-ID]/[REPOSITORY]:[TAG]`. ::: -
+ 11. Use the following command to append the [WireGuard](https://www.wireguard.com/install/) installation instructions to the Dockerfile. You can install more tools and dependencies and configure the image to meet your needs. Add your customizations below the line tagged with the `Add any other image customizations here` comment in the Dockerfile. Do not edit or add any lines before this tagged comment. -
```bash echo 'RUN sudo zypper refresh && sudo zypper install -y wireguard-tools' >> Dockerfile ``` View the newly created file to ensure the instruction to install WireGuard is appended correctly. -
```bash cat Dockerfile ``` -
+ :::caution Using the `-y` option with the `sudo zypper install` command is critical to successfully build the images. The default behavior for package installations is to prompt the user for permission to install the package. A user prompt will cause the image creation process to fail. This guidance applies to all dependencies you add through the **Dockerfile**. ::: -
+ 12. Issue the command below to save your tenant registration token to a local variable. Replace `[your_token_here]` with your actual registration token. -
```bash export token=[your_token_here] ``` -
-13. Use the following command to create the **user-data** file containing the tenant registration token. Also, you can click on the *Points of Interest* numbers below to learn more about the main attributes relevant to this example. -
- - +13. Use the following command to create the **user-data** file containing the tenant registration token. ```shell cat << EOF > user-data #cloud-config stylus: site: + paletteEndpoint: api.spectrocloud.com edgeHostToken: $token + projectName: stores + tags: + key1: value1 + key2: value2 + key3: value3 + name: edge-randomid + registrationURL: https://edge-registration-app.vercel.app/ + + network: + httpProxy: http://proxy.example.com + httpsProxy: https://proxy.example.com + noProxy: 10.10.128.10,10.0.0.0/8 + + nameserver: 1.1.1.1 + interfaces: + enp0s3: + type: static + ipAddress: 10.0.10.25/24 + gateway: 10.0.10.1 + nameserver: 10.10.128.8 + enp0s4: + type: dhcp + caCerts: + - | + ------BEGIN CERTIFICATE------ + ***************************** + ***************************** + ------END CERTIFICATE------ + - | + ------BEGIN CERTIFICATE------ + ***************************** + ***************************** + ------END CERTIFICATE------ + registryCredentials: + domain: registry.example.com + username: bob + password: #### + insecure: false install: poweroff: true users: @@ -616,20 +632,16 @@ Use the following instructions on your Linux machine to customize the arguments EOF ``` - - View the newly created user data file to ensure the token is set correctly. -
```bash cat user-data ``` If you want further customization, check the existing **user-data.template** file, and refer to the [Edge Configuration Stages](../edge-configuration/cloud-init.md) and [User Data Parameters](../edge-configuration/installer-reference.md) documents to learn more. -
+ 14. CanvOS utility uses [Earthly](https://earthly.dev/) to build the target artifacts. Issue the following command to start the build process. -
```bash sudo ./earthly.sh +build-all-images @@ -640,73 +652,78 @@ Use the following instructions on your Linux machine to customize the arguments ===================== Earthly Build SUCCESS ===================== Share your logs with an Earthly account (experimental)! Register for one at https://ci.earthly.dev. ``` -
- :::info If you plan to build Edge artifacts using a content bundle, use the `+build-provider-images` option instead of the `+build-all-images` option in the command above. The command, `sudo ./earthly.sh +build-provider-images`, will build the provider images but not the Edge installer ISO. ::: +
This command may take up to 15-20 minutes to finish depending on the resources of the host machine. Upon completion, the command will display the manifest, as shown in the example below, that you will use in your cluster profile later in this tutorial. Note that the `system.xxxxx` attribute values in the manifest example are the same as what you defined earlier in the **.arg** file. Copy and save the output attributes in a notepad or clipboard to use later in your cluster profile. -
- ```bash + ```bash hideClipboard pack: content: images: - image: "{{.spectro.pack.edge-native-byoi.options.system.uri}}" + # Below config is default value, please uncomment if you want to modify default values + #drain: + #cordon: true + #timeout: 60 # The length of time to wait before giving up, zero means infinite + #gracePeriod: 60 # Period of time in seconds given to each pod to terminate gracefully. If negative, the default value specified in the pod will be used + #ignoreDaemonSets: true + #deleteLocalData: true # Continue even if there are pods using emptyDir (local data that will be deleted when the node is drained) + #force: true # Continue even if there are pods that do not declare a controller + #disableEviction: false # Force drain to use delete, even if eviction is supported. This will bypass checking PodDisruptionBudgets, use with caution + #skipWaitForDeleteTimeout: 60 # If pod DeletionTimestamp older than N seconds, skip waiting for the pod. Seconds must be greater than 0 to skip. options: system.uri: "{{ .spectro.pack.edge-native-byoi.options.system.registry }}/{{ .spectro.pack.edge-native-byoi.options.system.repo }}:{{ .spectro.pack.edge-native-byoi.options.system.k8sDistribution }}-{{ .spectro.system.kubernetes.version }}-{{ .spectro.pack.edge-native-byoi.options.system.peVersion }}-{{ .spectro.pack.edge-native-byoi.options.system.customTag }}" + system.registry: docker.io/spectrocloud system.repo: opensuse-leap system.k8sDistribution: k3s system.osName: opensuse-leap - system.peVersion: v3.4.3 + system.peVersion: v4.0.6 system.customTag: palette-learn + system.osVersion: ``` -
-
15. List the Docker images to review the provider images created. By default, provider images for all the Palette's Edge-supported Kubernetes versions are created. You can identify the provider images by reviewing the image tag value you used in the **.arg** file's `CUSTOM_TAG` argument. -
```shell docker images --filter=reference='*/*:*palette-learn' ``` - ```hideClipboard bash {3,4} - # Output + ```hideClipboard bash REPOSITORY TAG IMAGE ID CREATED SIZE - spectrocloud/opensuse-leap k3s-1.25.2-v3.4.3-palette-learn 2427e3667b2f 24 minutes ago 2.22GB - spectrocloud/opensuse-leap k3s-1.24.6-v3.4.3-palette-learn 0f2efd533a33 24 minutes ago 2.22GB + spectrocloud/opensuse-leap k3s-1.27.2-v4.0.6-palette-learn 2427e3667b2f 24 minutes ago 2.22GB + spectrocloud/opensuse-leap k3s-1.26.6-v4.0.6-palette-learn 0f2efd533a33 24 minutes ago 2.22GB + spectrocloud/opensuse-leap k3s-1.25.2-v4.0.6-palette-learn 2427e3667b2f 24 minutes ago 2.22GB + spectrocloud/opensuse-leap k3s-1.24.6-v4.0.6-palette-learn 0f2efd533a33 24 minutes ago 2.22GB ``` -
16. To use the provider images in your cluster profile, push them to your image registry mentioned in the **.arg** file. Issue the following command to log in to Docker Hub. Provide your Docker ID and password when prompted. -
```bash docker login ``` ```hideClipboard bash - # Output Login Succeeded ``` -
+ 17. Use the following commands to push the provider images to the Docker Hub image registry you specified. Replace the `[DOCKER-ID]` and version numbers in the command below with your Docker ID and respective Kubernetes versions that the utility created. -
```bash - docker push docker.io/[DOCKER-ID]/opensuse-leap:k3s-1.25.2-v3.4.3-palette-learn - docker push docker.io/[DOCKER-ID]/opensuse-leap:k3s-1.24.6-v3.4.3-palette-learn + docker push docker.io/[DOCKER-ID]/opensuse-leap:k3s-1.27.2-v4.0.6-palette-learn + docker push docker.io/[DOCKER-ID]/opensuse-leap:k3s-1.26.6-v4.0.6-palette-learn + docker push docker.io/[DOCKER-ID]/opensuse-leap:k3s-1.25.2-v4.0.6-palette-learn + docker push docker.io/[DOCKER-ID]/opensuse-leap:k3s-1.24.6-v4.0.6-palette-learn ``` -
18. After pushing the provider images to the image registry, open a web browser and log in to [Palette](https://console.spectrocloud.com). Ensure you are in the **Default** project scope before creating a cluster profile. @@ -721,29 +738,39 @@ Use the following instructions on your Linux machine to customize the arguments |OS|Public Repo|BYOS Edge OS|`1.0.0`| -21. Replace the the cluster profile's BYOOS pack manifest with the following custom manifest so that the cluster profile can pull the provider image from the ttl.sh image registry. +21. Replace the cluster profile's BYOOS pack manifest with the output that was provided to you earlier and that you copied. The `system.xxxxx` attribute values below refer to the arguments defined in the **.arg** file. If you modified the arguments in the **.arg** file, you must modify the attribute values below accordingly. -
- ```yaml + ```yaml hideClipboard pack: content: images: - image: "{{.spectro.pack.edge-native-byoi.options.system.uri}}" + # Below config is default value, please uncomment if you want to modify default values + #drain: + #cordon: true + #timeout: 60 # The length of time to wait before giving up, zero means infinite + #gracePeriod: 60 # Period of time in seconds given to each pod to terminate gracefully. If negative, the default value specified in the pod will be used + #ignoreDaemonSets: true + #deleteLocalData: true # Continue even if there are pods using emptyDir (local data that will be deleted when the node is drained) + #force: true # Continue even if there are pods that do not declare a controller + #disableEviction: false # Force drain to use delete, even if eviction is supported. This will bypass checking PodDisruptionBudgets, use with caution + #skipWaitForDeleteTimeout: 60 # If pod DeletionTimestamp older than N seconds, skip waiting for the pod. Seconds must be greater than 0 to skip. options: system.uri: "{{ .spectro.pack.edge-native-byoi.options.system.registry }}/{{ .spectro.pack.edge-native-byoi.options.system.repo }}:{{ .spectro.pack.edge-native-byoi.options.system.k8sDistribution }}-{{ .spectro.system.kubernetes.version }}-{{ .spectro.pack.edge-native-byoi.options.system.peVersion }}-{{ .spectro.pack.edge-native-byoi.options.system.customTag }}" + system.registry: docker.io/spectrocloud system.repo: opensuse-leap system.k8sDistribution: k3s system.osName: opensuse-leap - system.peVersion: v3.4.3 + system.peVersion: v4.0.6 system.customTag: palette-learn + system.osVersion: ``` The screenshot below displays how to reference a provider image in the BYOOS pack of your cluster profile. ![Screenshot of a sample cluster profile's OS layer ](/tutorials/palette-canvos/clusters_edge_palette-canvos_edit_profile.png) -
:::info @@ -751,11 +778,11 @@ Use the following instructions on your Linux machine to customize the arguments ::: -22. Add the following **Palette Optimized K3s** pack to the Kubernetes layer of your cluster profile. Select the k3s version 1.25.x because earlier in this how-to guide, you pushed a provider image compatible with k3s v1.25.2 to the ttl.sh image registry. +22. Add the following **Palette Optimized K3s** pack to the Kubernetes layer of your cluster profile. Select the k3s version 1.27.x because earlier in this how-to guide, you pushed a provider image compatible with k3s v1.27.2 to the ttl.sh image registry. |**Pack Type**|**Registry**|**Pack Name**|**Pack Version**| |---|---|---|---| - |Kubernetes|Public Repo|Palette Optimized k3s|`1.25.x`| + |Kubernetes|Public Repo|Palette Optimized k3s|`1.27.x`| 23. Add the network layer to your cluster profile, and choose a Container Network Interface (CNI) pack that best fits your needs, such as Calico, Flannel, Cilium, or Custom CNI. For example, you can add the following network layer. This step completes the core infrastructure layers in the cluster profile. @@ -781,7 +808,6 @@ ls build/ ``` ```hideClipboard shell -# Output palette-edge-installer.iso palette-edge-installer.iso.sha256 ``` diff --git a/docs/docs-content/clusters/edge/site-deployment/deploy-cluster.md b/docs/docs-content/clusters/edge/site-deployment/deploy-cluster.md index f10ff5b8da..92a736ffbd 100644 --- a/docs/docs-content/clusters/edge/site-deployment/deploy-cluster.md +++ b/docs/docs-content/clusters/edge/site-deployment/deploy-cluster.md @@ -83,21 +83,18 @@ You can refer to the [Prepare the DHCP Server for vSphere](https://docs.vmware.c In this section, you will use the [CanvOS](https://github.com/spectrocloud/CanvOS/blob/main/README.md) utility to build an Edge installer ISO image and provider images for all the Palette-supported Kubernetes versions. The utility builds multiple provider images, so you can use either one that matches the desired Kubernetes version you want to use with your cluster profile. This tutorial builds and uses the provider image compatible with K3s v1.25.2. -
### Check Out Starter Code Issue the following and subsequent command-line instructions on your Linux machine, which this tutorial refers to as the development environment. Clone the [CanvOS](https://github.com/spectrocloud/CanvOS) GitHub repository containing the starter code to build Edge artifacts. -
```bash git clone https://github.com/spectrocloud/CanvOS.git ``` Change to the **CanvOS** directory. -
```bash cd CanvOS @@ -111,12 +108,10 @@ git tag ``` Check out the newest available tag. This guide uses **v3.4.3** tag as an example. -
```shell git checkout v3.4.3 ``` -
## Define Arguments @@ -124,17 +119,14 @@ CanvOS requires arguments such as image tag, registry, repository, and OS distri Issue the command below to assign an image tag value for the provider images. This guide uses the default value `demo` as an example. However, you can assign any lowercase and alphanumeric string to the `CUSTOM_TAG` variable. -
```bash export CUSTOM_TAG=demo ``` -
Issue the command below to create the **.arg** file with the custom tag. The remaining arguments will use the default values. For example, `ubuntu` is the default operating system, `demo` is the default tag, and [ttl.sh](https://ttl.sh/) is the default image registry. The default ttl.sh image registry is free and does not require a sign-up. Images pushed to ttl.sh are ephemeral and will expire after the 24 hrs time limit. Using the arguments defined in the **.arg** file, the final provider images you generate will have the following naming convention, `[IMAGE_REGISTRY]/[IMAGE_REPO]:[CUSTOM_TAG]`. In this example, the provider images will be `ttl.sh/ubuntu:k3s-1.25.2-v3.4.3-demo`. Refer to the **.arg.template** sample file in the current directory or the [README](https://github.com/spectrocloud/CanvOS#readme) to learn more about the default values. -
```bash cat << EOF > .arg @@ -150,17 +142,19 @@ ARCH=amd64 EOF ``` +:::caution + +Future versions of CanvOS may require different arguments. Refer to the CanvOS [README](https://github.com/spectrocloud/CanvOS#readme) to learn more about the arguments needed for each version tag. + +::: + View the newly created file to ensure the arguments are defined per your requirements. -
```bash cat .arg ``` -
- Refer to the [Build Edge Artifacts](../edgeforge-workflow/palette-canvos.md) guide to learn more about customizing arguments. -
## Create User Data @@ -168,7 +162,6 @@ Next, you will create a **user-data** file that embeds the tenant registration t Issue the command below to save your tenant registration token to a local variable. Replace `[your_token_here]` placeholder with your actual registration token. -
```bash export token=[your_token_here] @@ -176,8 +169,6 @@ export token=[your_token_here] Use the following command to create the **user-data** file containing the tenant registration token. You can click on the *Points of Interest* numbers below to learn more about the main attributes relevant to this example. -
- ```bash sudo ./earthly.sh +build-all-images @@ -261,7 +251,6 @@ Share your logs with an Earthly account (experimental)! Register for one at http This command may take 15-20 minutes to finish depending on the hardware resources of the host machine. Upon completion, the command will display the manifest, as shown in the example below, that you will use in your cluster profile later in this tutorial. Note that the `system.xxxxx` attribute values in the manifest example are the same as what you defined earlier in the **.arg** file. Copy and save the output attributes in a notepad or clipboard to use later in your cluster profile. -
```bash pack: @@ -278,26 +267,22 @@ options: system.customTag: demo system.osVersion: 22 ``` -
## View Artifacts After completing the build process, list the edge installer ISO image and checksum by issuing the following command from the **CanvOS** directory. -
```bash ls build/ ``` ```hideClipboard bash -# Output palette-edge-installer.iso palette-edge-installer.iso.sha256 ``` Export the path to the ISO file, the **build** directory, in the `ISOFILEPATH` local variable. Later in the tutorial, you will use this local variable to mount the **build** directory to a Docker container. -
```bash export ISOFILEPATH=$PWD/build @@ -306,26 +291,22 @@ echo $ISOFILEPATH List the Docker images to review the created provider images. By default, provider images are created for all the Palette-supported Kubernetes versions. You can identify the provider images by the image tag value you used in the **.arg** file's `CUSTOM_TAG` variable. -
```shell docker images --filter=reference='*/*:*demo' ``` ```hideClipboard bash {3,4} -# Output REPOSITORY TAG IMAGE ID CREATED SIZE ttl.sh/ubuntu k3s-1.24.6-v3.4.3-demo 3a672a023bd3 45 minutes ago 4.61GB ttl.sh/ubuntu k3s-1.25.2-v3.4.3-demo 0217de3b9e7c 45 minutes ago 4.61GB ``` -
## Push Provider Images Push the provider images to the image registry indicated in the **.arg** file so that you can reference the provider image later in your cluster profile. Since we used the provider image compatible with K3s v1.25 in the cluster profile, you would use the following command to push the provider image compatible with K3s v1.25 to the image registry. If you want to use the other provider image compatible with K3s v1.24 instead, push that version to the image registry. The example below and default behavior uses the [ttl.sh](https://ttl.sh/) image registry. This image registry is free and does not require you to sign up to use it. Images pushed to ttl.sh are ephemeral and will expire after 24 hours. -
```bash docker push ttl.sh/ubuntu:k3s-1.25.2-v3.4.3-demo @@ -336,7 +317,6 @@ docker push ttl.sh/ubuntu:k3s-1.25.2-v3.4.3-demo As a reminder, [ttl.sh](https://ttl.sh/) is a short-lived image registry. If you do not use these provider images in your cluster profile within 24 hours of pushing to *ttl.sh*, they will expire and must be re-pushed. If you want to use a different image registry, refer to the Advanced workflow in the [Build Edge Artifacts](../edgeforge-workflow/palette-canvos.md) guide to learn how to use another registry. ::: -
## Provision Virtual Machines @@ -350,7 +330,7 @@ This tutorial example will use [Packer](https://www.packer.io/) to create a VM t You will use the **heredoc** script to create a VM template. The script prompts you to enter your VMWare vCenter environment details and saves them as environment variables in a file named **.packerenv**. Packer reads the environment variables during the build process. Before you invoke the **heredoc** script, have values handy in a notepad for the VMWare vCenter environment variables listed in the table. -
+ |**Variable**|**Description**| **How to find its value?**| |---|---|---| @@ -366,7 +346,7 @@ Before you invoke the **heredoc** script, have values handy in a notepad for the Use the **heredoc** script to create the **.packerenv** file shown below that contains the VMware vCenter details as environment variables. -
+ ```bash cat << EOF > .packerenv @@ -382,7 +362,7 @@ PKR_VAR_vcenter_network=$(read -ep 'Enter vCenter Network name: ' vcenter_networ EOF ``` View the file to ensure you have filled in the details correctly. -
+ ```bash cat .packerenv @@ -391,7 +371,7 @@ cat .packerenv You will use the **.packerenv** file later in the tutorial when you start Packer. Next, verify the `ISOFILEPATH` local variable has the path to the ISO file. The `docker run` command uses this variable to bind mount the host's **build** directory to the container. -
+ ```bash echo $ISOFILEPATH @@ -402,10 +382,9 @@ echo $ISOFILEPATH The environment variable you set using `export [var-name]=[var-value]` will not persist across terminal sessions. If you opened a new terminal session in your development environment, you will lose the `ISOFILEPATH` variable and will need to reset it. ::: -
+ The next step is to use the following `docker run` command to trigger Packer build process to create a VM template. Here is an explanation of the options and sub-command used below: -
- The `--env-file` option reads the **.packerenv** file. @@ -418,42 +397,38 @@ The next step is to use the following `docker run` command to trigger Packer bui - The `-force` flag destroys any existing template. - The `--var-file` option reads the **vsphere.hcl** file from the container. This file contains the VM template name, VM configuration, and ISO file name to use. The VM configuration conforms to the [minimum device requirements](../architecture/#minimum-device-requirements). -The **vsphere.hcl** file content is shown below for your reference. This tutorial does not require you to modify these configurations. -
- -```bash hideClipboard -# VM Template Name -vm_name = "palette-edge-template" -# VM Settings -vm_guest_os_type = "ubuntu64Guest" -vm_version = 14 -vm_firmware = "bios" -vm_cdrom_type = "sata" -vm_cpu_sockets = 4 -vm_cpu_cores = 1 -vm_mem_size = 8192 -vm_disk_size = 51200 -thin_provision = true -disk_eagerly_scrub = false -vm_disk_controller_type = ["pvscsi"] -vm_network_card = "vmxnet3" -vm_boot_wait = "5s" -# ISO Objects -iso = "build/palette-edge-installer.iso" -iso_checksum = "build/palette-edge-installer.iso.sha256" -``` -
+ The **vsphere.hcl** file content is shown below for your reference. This tutorial does not require you to modify these configurations. + + ```bash hideClipboard + # VM Template Name + vm_name = "palette-edge-template" + # VM Settings + vm_guest_os_type = "ubuntu64Guest" + vm_version = 14 + vm_firmware = "bios" + vm_cdrom_type = "sata" + vm_cpu_sockets = 4 + vm_cpu_cores = 1 + vm_mem_size = 8192 + vm_disk_size = 51200 + thin_provision = true + disk_eagerly_scrub = false + vm_disk_controller_type = ["pvscsi"] + vm_network_card = "vmxnet3" + vm_boot_wait = "5s" + # ISO Objects + iso = "build/palette-edge-installer.iso" + iso_checksum = "build/palette-edge-installer.iso.sha256" + ``` -:::info + :::info -Should you need to change the VM template name or VM settings defined in the **vsphere.hcl** file, or review the Packer script, you must open a bash session into the container using the `docker run -it --env-file .packerenv --volume "${ISOFILEPATH}:/edge/vmware/packer/build" ghcr.io/spectrocloud/tutorials:1.0.7 bash` command, and change to the **edge/vmware/packer/** directory to make the modifications. After you finish the modifications, issue the `packer build -force --var-file=vsphere.hcl build.pkr.hcl` command to trigger the Packer build process. + Should you need to change the VM template name or VM settings defined in the **vsphere.hcl** file, or review the Packer script, you must open a bash session into the container using the `docker run -it --env-file .packerenv --volume "${ISOFILEPATH}:/edge/vmware/packer/build" ghcr.io/spectrocloud/tutorials:1.0.7 bash` command, and change to the **edge/vmware/packer/** directory to make the modifications. After you finish the modifications, issue the `packer build -force --var-file=vsphere.hcl build.pkr.hcl` command to trigger the Packer build process. -::: -
+ ::: Issue the following command to trigger the Packer build process to create a VM template in the VMware vCenter. It will also upload and keep a copy of the **palette-edge-installer.iso** to the **packer_cache/** directory in the specified datastore. -
```bash docker run --interactive --tty --rm \ @@ -464,7 +439,6 @@ docker run --interactive --tty --rm \ ``` Depending on your machine and network, the build process can take 7-10 minutes to finish. -
```hideClipboard bash {10,11} # Sample output @@ -479,8 +453,6 @@ Build 'vsphere-iso.edge-template' finished after 7 minutes 13 seconds. ==> Builds finished. The artifacts of successful builds are: --> vsphere-iso.edge-template: palette-edge-template ``` -
- ### Provision VMs @@ -488,7 +460,6 @@ Once Packer creates the VM template, you can use the template when provisioning GOVC requires the same VMware vCenter details as the environment variables you defined earlier in the **.packerenv** file. Use the following command to source the **.packerenv** file and echo one of the variables to ensure the variables are accessible on your host machine. -
```bash source .packerenv @@ -496,7 +467,6 @@ echo $PKR_VAR_vcenter_server ``` Use the following command to create a **.goenv** environment file. The **.goenv** file contains the VMware vCenter credentials and information required to deploy VMs in your VMware environment. -
```bash cat << EOF > .goenv @@ -512,7 +482,6 @@ vcenter_network=$PKR_VAR_vcenter_network EOF ``` View the file to ensure variable values are set correctly. -
```bash cat .goenv @@ -520,7 +489,6 @@ cat .goenv The next step is to use the following `docker run` command to clone the VM template and provision three VMs. Here is an explanation of the options and sub-command used below: -
- The `--env-file` option reads the **.goenv** file in our official `ghcr.io/spectrocloud/tutorials:1.0.7` tutorials container. @@ -529,7 +497,6 @@ The next step is to use the following `docker run` command to clone the VM templ The **edge/vmware/clone_vm_template/** directory in the container has the following files: -
- **deploy-edge-host.sh** - Provisions the VMs. @@ -541,7 +508,6 @@ The **edge/vmware/clone_vm_template/** directory in the container has the follow Below is the **setenv.sh** file content for your reference. This tutorial does not require you to modify these configurations. -
```bash hideClipboard #!/bin/bash @@ -562,17 +528,14 @@ export GOVC_NETWORK="${vcenter_network}" export GOVC_RESOURCE_POOL="${vcenter_resource_pool}" export GOVC_FOLDER="${vcenter_folder}" ``` -
:::info Suppose you have changed the VM template name in the previous step or need to change the number of VMs to provision. In that case, you must modify the **setenv.sh** script. To do so, you can reuse the container bash session from the previous step if it is still active, or you can open another bash session into the container using the `docker run -it --env-file .goenv ghcr.io/spectrocloud/tutorials:1.0.7 bash` command. If you use an existing container bash session, create the **.goenv** file described above and source it in your container environment. Next, change to the **edge/vmware/clone_vm_template/** directory to modify the **setenv.sh** script, and issue the `./deploy-edge-host.sh` command to deploy the VMs. ::: -
Issue the following command to clone the VM template and provision three VMs. -
```bash docker run -it --rm \ @@ -582,7 +545,6 @@ docker run -it --rm \ ``` The cloning process can take 3-4 minutes to finish and displays output similar to that shown below. The output displays the Edge host ID for each VM, as highlighted in the sample output below. VMs use this host ID to auto-register themselves with Palette. -
```bash hideClipboard {7} # Sample output for one VM @@ -614,27 +576,22 @@ Open a web browser and log in to [Palette](https://console.spectrocloud.com). Na If the three Edge hosts are not displayed in the **Edge hosts** tab, the automatic registration failed. If this happens, you can manually register hosts by clicking the **Add Edge Hosts** button and pasting the Edge host ID. Repeat this host registration process for each of the three VMs. If you need help, the detailed instructions are available in the [Register Edge Host](../site-deployment/site-installation/edge-host-registration.md) guide. -
## Deploy a Cluster Once you verify the host registration, the next step is to deploy a cluster. In this section, you will use the Palette User Interface (UI) to deploy a cluster that is made up of the three Edge hosts you deployed. -
## Create a Cluster Profile Validate you are in the **Default** project scope before creating a cluster profile. -
![A screenshot of Palette's Default scope selected.](/tutorials/deploy-pack/registries-and-packs_deploy-pack_default-scope.png) -
Next, create a cluster profile with the core infrastructure layers and a manifest of a sample application, [Hello Universe](https://github.com/spectrocloud/hello-universe#hello-universe). Navigate to the left **Main Menu** and select **Profiles**. Click on the **Add Cluster Profile** button, and fill out the required input fields. The cluster profile wizard contains the following sections. -
### Basic Information @@ -649,13 +606,10 @@ Use the following values when filling out the **Basic Information** section. |Tags|`spectro-cloud-education, app:hello-universe, terraform_managed:false`| Click on **Next** to continue. -
- ### Cloud Type In the **Cloud Type** section, choose **Edge Native** and click on **Next** at the bottom to proceed to the next section. -
### Profile Layers @@ -668,7 +622,6 @@ In the **Profile Layers** section, add the following [BYOS Edge OS](../../../int Replace the OS layer manifest with the following custom manifest so that the cluster profile can pull the provider image from the *ttl.sh* image registry. You may recall that the CanvOS script returned an output containing a custom manifest after building the Edge artifacts. You will copy the CanvOS output into the cluster profile's BYOOS pack YAML file. The `system.xxxxx` attribute values in the manifest below are as same as those you defined in the **.arg** file while building the Edge artifacts. Copy the code snippet below into the YAML editor for the BYOOS pack. -
```yaml pack: @@ -685,21 +638,15 @@ options: system.customTag: demo system.osVersion: 22 ``` -
- The screenshot below shows you how to reference your provider OS image in a cluster profile by using the utility build output with the BYOOS pack. -
- -![A screenshot of k3s OS layer in a cluster profile.](/tutorials/edge/clusters_edge_deploy-cluster_edit-profile.png) - + ![A screenshot of k3s OS layer in a cluster profile.](/tutorials/edge/clusters_edge_deploy-cluster_edit-profile.png) :::caution *ttl.sh* is a short-lived image registry. If you do not use the provider image in your cluster profile within 24 hours of pushing to *ttl.sh*, they will no longer exist and must be re-pushed. In a production environment, use a custom registry for hosting provider images. ::: -
Click on the **Next layer** button to add the following Kubernetes layer to your cluster profile. @@ -736,7 +683,6 @@ Use the following values to add the Hello Universe manifest metadata. |Manifests|Add new manifest, and name it `hello-universe`| When you provide the `hello-universe` value in the **Manifest** field, a blank text editor opens at right. Copy the following manifest and paste it into the text editor. -
```yaml apiVersion: v1 @@ -780,20 +726,20 @@ The screenshot below shows the manifest pasted into the text editor. Click on th If there are no errors or compatibility issues, Palette displays the newly created full cluster profile for review. Verify the layers you added, and click on the **Next** button. -
+ Review all layers and click **Finish Configuration** to create the cluster profile. -
+ ## Create a Cluster Click on the newly created cluster profile to view its details page. Click the **Deploy** button to deploy a new Edge cluster. -
+ ![Screenshot of the Profile Layers success.](/tutorials/edge/clusters_edge_deploy-cluster_profile-success.png) The cluster deployment wizard displays the following sections. -
+ ### Basic Information @@ -806,14 +752,13 @@ Use the following values in the **Basic Information** section. |Tags|`spectro-cloud-education, app:hello-universe, terraform_managed:false`| Click **Next** to continue. -
+ ### Parameters The **Parameters** section offers you another opportunity to change the profile configuration. For example, clicking on the **BYOS Edge OS 1.0.0** layer allows you to configure the `system.registry`, `system.repo`, and other available attributes. Use the default values for all attributes across all layers and click **Next**. -
### Cluster configuration @@ -822,7 +767,6 @@ Provide the Virtual IP (VIP) address for the host cluster to use during the clus If available, you can optionally select an SSH key to remote into the host cluster and provide a Network Time Protocol (NTP) server list. Click **Next** to continue. -
### Nodes configuration @@ -857,19 +801,16 @@ The screenshot below shows two Edge hosts added to the worker pool. ![Screenshot of Edge hosts added to the worker pool.](/tutorials/edge/clusters_edge_deploy-cluster_add-worker-node.png) Click **Next** to continue. -
### Settings This section displays options for OS patching, scheduled scans, scheduled backups, cluster role binding, and location. Use the default values, and click on the **Validate** button. -
### Review Review all configurations in this section. The **Review** page displays the cluster name, tags, node pools, and layers. If everything looks good, click on the **Finish Configuration** button to finish deploying the cluster. Deployment may take up to *20 minutes* to finish. While deployment is in progress, Palette displays the cluster status as **Provisioning**. While you wait for the cluster to finish deploying, you can explore the various tabs on the cluster details page, such as **Overview**, **Workloads**, and **Events**. -
## Validate @@ -885,7 +826,6 @@ The screenshot below highlights the NodePort to access the application. Clicking on the exposed NodePort displays the Hello Universe application. -
:::caution @@ -899,12 +839,9 @@ We recommend waiting to click on the service URL, as it takes one to three minut You have successfully provisioned an Edge cluster and deployed the Hello Universe application on it. -
- ## Cleanup The following steps will guide you in cleaning up your environment, including the cluster, cluster profile, and Edge hosts. -
### Delete Cluster and Profile @@ -924,12 +861,10 @@ After you delete the cluster, click **Profiles** on the left **Main Menu**, and Wait for Palette to successfully delete the resources. -
### Delete Edge Hosts Switch back to the **CanvOS** directory in the Linux development environment containing the **.goenv** file, and use the following command to delete the Edge hosts. -
```bash docker run --interactive --tty --rm --env-file .goenv \ @@ -937,12 +872,9 @@ docker run --interactive --tty --rm --env-file .goenv \ sh -c "cd edge/vmware/clone_vm_template/ && ./delete-edge-host.sh" ``` -
- ### Delete Edge Artifacts If you want to delete Edge artifacts from your Linux development environment, delete the Edge installer ISO image and its checksum by issuing the following commands from the **CanvOS/** directory. -
```bash rm build/palette-edge-installer.iso @@ -950,7 +882,6 @@ rm build/palette-edge-installer.iso.sha256 ``` Issue the following command to list all images in your current development environment. -
```bash docker images @@ -958,13 +889,10 @@ docker images Note the provider image name and tags, and use the following command syntax to remove all provider images. -
- ```bash docker image rm --force ttl.sh/ubuntu:k3s-1.25.2-v3.4.3-demo docker image rm --force ttl.sh/ubuntu:k3s-1.24.6-v3.4.3-demo ``` -
### Delete VMware vSphere Resources diff --git a/static/assets/docs/images/tutorials/palette-canvos/clusters_edge_palette-canvos_edit_profile.png b/static/assets/docs/images/tutorials/palette-canvos/clusters_edge_palette-canvos_edit_profile.png index d3fec79b2a..b91225d53b 100644 Binary files a/static/assets/docs/images/tutorials/palette-canvos/clusters_edge_palette-canvos_edit_profile.png and b/static/assets/docs/images/tutorials/palette-canvos/clusters_edge_palette-canvos_edit_profile.png differ