Skip to content

Commit

Permalink
docs: DOC-1490 DOC-1494 Self-Hosted Updates (#4792)
Browse files Browse the repository at this point in the history
* docs: DOC-1490

* docs: added a prereq to install pages

* docs: 1494

* docs: apply suggestions from code review

Co-authored-by: Lenny Chen <[email protected]>

* docs: Apply suggestions from code review

---------

Co-authored-by: Lenny Chen <[email protected]>
  • Loading branch information
karl-cardenas-coding and lennessyy authored Nov 25, 2024
1 parent 32360ab commit 4b0be97
Show file tree
Hide file tree
Showing 6 changed files with 175 additions and 50 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,11 @@ Complete the [Environment Setup](./kubernetes-airgap-instructions.md) steps befo
- The Kubernetes cluster must have a Container Storage Interface (CSI) installed and configured. Palette requires a CSI
to store persistent data. You may install any CSI that is compatible with your Kubernetes cluster.

- If you are using MongoDB Atlas, or a self-hosted MongoDB instance, ensure the MongoDB database has a user named
`hubble` with the permission `readWriteAnyDatabase`. Refer to the
[Add a Database User](https://www.mongodb.com/docs/guides/atlas/db-user/) guide for guidance on how to create a
database user in Atlas.

- We recommended the following resources for Palette. Refer to the
[Palette size guidelines](../../install-palette.md#size-guidelines) for additional sizing information.

Expand Down Expand Up @@ -726,6 +731,25 @@ environment. Reach out to our support team if you need assistance.
TEST SUITE: None
```
<!-- prettier-ignore -->
<details>
<summary>How to update containerd to use proxy configurations</summary>
If your Kubernetes cluster is behind a network proxy, ensure the containerd service is configured to use proxy
settings. You can do this by updating the containerd configuration file on each node in the cluster. The
configuration file is typically located at ` /etc/systemd/system/containerd.service.d/http-proxy.conf`. Below is an
example of the configuration file. Replace the values with your proxy settings. Ask your network administrator for
guidance.
```
[Service]
Environment="HTTP_PROXY=http://example.com:9090"
Environment="HTTPS_PROXY=http://example.com:9090"
Environment="NO_PROXY=127.0.0.1,localhost,100.64.0.0/17,192.168.0.0/16,172.16.0.0/12,10.0.0.0/8,,.cluster.local"
```
</details>
10. Install the Palette Helm Chart using the following command.
```shell
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,13 @@ You can use the Palette Helm Chart to install Palette in a multi-node Kubernetes
- The Kubernetes cluster must have a Container Storage Interface (CSI) installed and configured. Palette requires a CSI
to store persistent data. You may install any CSI that is compatible with your Kubernetes cluster.

- If you are using MongoDB Atlas, or a self-hosted MongoDB instance, ensure the MongoDB database has a user named
`hubble` with the permission `readWriteAnyDatabase`. Refer to the
[Add a Database User](https://www.mongodb.com/docs/guides/atlas/db-user/) guide for guidance on how to create a
database user in Atlas.

- https://spectrocloud.atlassian.net/browse/DOC-1490

- We recommended the following resources for Palette. Refer to the
[Palette size guidelines](../install-palette.md#size-guidelines) for additional sizing information.

Expand Down Expand Up @@ -368,7 +375,7 @@ your environment. Reach out to our support team if you need assistance.

<TabItem label="OCI Registry" value="oci">

```yaml {53,68-75,110-115}
```yaml {53,68-75,87-96,110-115}
#########################
# Spectro Cloud Palette #
#########################
Expand Down Expand Up @@ -455,15 +462,15 @@ your environment. Reach out to our support team if you need assistance.
# insecureSkipVerify: false
# caCert: ""
# ociImageRegistry:
# endpoint: "" #<Contact Spectro Cloud Sales for More info>
# name: "" #<Contact Spectro Cloud Sales for More info>
# password: "" #<Contact Spectro Cloud Sales for More info>
# username: "" #<Contact Spectro Cloud Sales for More info>
# baseContentPath: "" #<Contact Spectro Cloud Sales for More info>
# insecureSkipVerify: false
# caCert: ""
# mirrorRegistries: ""
ociImageRegistry:
endpoint: "example.harbor.org" #<Contact Spectro Cloud Sales for More info>
name: "Palette Packs OCI" #<Contact Spectro Cloud Sales for More info>
password: "**************" #<Contact Spectro Cloud Sales for More info>
username: "**************" #<Contact Spectro Cloud Sales for More info>
baseContentPath: "spectro-images" #<Contact Spectro Cloud Sales for More info>
insecureSkipVerify: false
caCert: ""
mirrorRegistries: ""
# Instruction for mirrorRegistries.
# ----------------------------------
Expand Down Expand Up @@ -615,7 +622,47 @@ your environment. Reach out to our support team if you need assistance.

:::

5. Install the Palette Helm Chart using the following command.
5. This step is only required if you are installing Palette in an environment where a network proxy must be configured
for Palette to access the internet. If you are not using a network proxy, skip to the next step.

Install the reach-system chart using the following command. Point to the **values.yaml** file you configured in step
four. Make sure you configure the `reach-system.enable` section in the **values.yaml** file.

```shell
helm upgrade --values palette/values.yaml \
reach-system extras/reach-system/reach-system-*.tgz --install
```

```shell hideClipboard
Release "reach-system" does not exist. Installing it now.
NAME: reach-system
LAST DEPLOYED: Mon Jan 29 17:04:23 2024
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
```

<!-- prettier-ignore -->
<details>
<summary>How to update containerd to use proxy configurations</summary>

If your Kubernetes cluster is behind a network proxy, ensure the containerd service is configured to use proxy
settings. You can do this by updating the containerd configuration file on each node in the cluster. The
configuration file is typically located at ` /etc/systemd/system/containerd.service.d/http-proxy.conf`. Below is an
example of the configuration file. Replace the values with your proxy settings. Ask your network administrator for
guidance.

```
[Service]
Environment="HTTP_PROXY=http://example.com:9090"
Environment="HTTPS_PROXY=http://example.com:9090"
Environment="NO_PROXY=127.0.0.1,localhost,100.64.0.0/17,192.168.0.0/16,172.16.0.0/12,10.0.0.0/8,,.cluster.local"
```

</details>

6. Install the Palette Helm Chart using the following command.

```shell
helm upgrade --values palette/values.yaml \
Expand All @@ -632,7 +679,7 @@ your environment. Reach out to our support team if you need assistance.
TEST SUITE: None
```

6. Track the installation process using the command below. Palette is ready when the deployments in the namespaces
7. Track the installation process using the command below. Palette is ready when the deployments in the namespaces
`cp-system`, `hubble-system`, `ingress-nginx`, `jet-system` , and `ui-system` reach the _Ready_ state. The
installation takes between two to three minutes to complete.

Expand All @@ -647,7 +694,7 @@ your environment. Reach out to our support team if you need assistance.

:::

7. Create a DNS CNAME record that is mapped to the Palette `ingress-nginx-controller` load balancer. You can use the
8. Create a DNS CNAME record that is mapped to the Palette `ingress-nginx-controller` load balancer. You can use the
following command to retrieve the load balancer IP address. You may require the assistance of your network
administrator to create the DNS record.

Expand All @@ -665,7 +712,7 @@ your environment. Reach out to our support team if you need assistance.

:::

8. Use the custom domain name or the IP address of the load balancer to visit the Palette system console. To access the
9. Use the custom domain name or the IP address of the load balancer to visit the Palette system console. To access the
system console, open a web browser and paste the custom domain URL in the address bar and append the value
`/system`. Replace the domain name in the URL with your custom domain name or the IP address of the load balancer.
Alternatively, you can use the load balancer IP address with the appended value `/system` to access the system
Expand All @@ -677,7 +724,7 @@ your environment. Reach out to our support team if you need assistance.

![Screenshot of the Palette system console showing Username and Password fields.](/palette_installation_install-on-vmware_palette-system-console.webp)

9. Log in to the system console using the following default credentials. Refer to the
10. Log in to the system console using the following default credentials. Refer to the
[password requirements](../../system-management/account-management/credentials.md#password-requirements-and-security)
documentation page to learn more about password requirements

Expand All @@ -692,7 +739,7 @@ your environment. Reach out to our support team if you need assistance.
Refer to the [Account Management](../../system-management/account-management/account-management.md) documentation
page for more information.

10. After login, a summary page is displayed. Palette is installed with a self-signed SSL certificate. To assign a
11. After login, a summary page is displayed. Palette is installed with a self-signed SSL certificate. To assign a
different SSL certificate you must upload the SSL certificate, SSL certificate key, and SSL certificate authority
files to Palette. You can upload the files using the Palette system console. Refer to the
[Configure HTTPS Encryption](../../system-management/ssl-certificate-management.md) page for instructions on how to
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,20 +37,23 @@ Palette uses MongoDB Enterprise as its internal database and supports two modes

- MongoDB Enterprise deployed and active inside the cluster.

- MongoDB Enterprise is hosted on a software-as-a-service (SaaS) platform, such as MongoDB Atlas.
- MongoDB Enterprise is hosted on a Software-as-a-Service (SaaS) platform, such as MongoDB Atlas. If you choose to use
MongoDB Atlas, ensure the MongoDB database has a user named `hubble` with the permission `readWriteAnyDatabase`. Refer
to the [Add a Database User](https://www.mongodb.com/docs/guides/atlas/db-user/) guide for guidance on how to create a
database user in Atlas.

The table below lists the parameters used to configure a MongoDB deployment.

| **Parameters** | **Description** | **Type** | **Default value** |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------------------- |
| `internal` | Specifies the MongoDB deployment either in-cluster or using Mongo Atlas. | Boolean | `true` |
| `databaseUrl` | The URL for MongoDB Enterprise. If using a remote MongoDB Enterprise instance, provide the remote URL. This parameter must be updated if `mongo.internal` is set to `false`. | String | `mongo-0.mongo,mongo-1.mongo,mongo-2.mongo` |
| `databasePassword` | The base64-encoded MongoDB Enterprise password. If you don't provide a value, a random password will be auto-generated. | String | `""` |
| `replicas` | The number of MongoDB replicas to start. | Integer | `3` |
| `memoryLimit` | Specifies the memory limit for each MongoDB Enterprise replica. | String | `4Gi` |
| `cpuLimit` | Specifies the CPU limit for each MongoDB Enterprise member. | String | `2000m` |
| `pvcSize` | The storage settings for the MongoDB Enterprise database. Use increments of `5Gi` when specifying the storage size. The storage size applies to each replica instance. The total storage size for the cluster is `replicas` \* `pvcSize`. | string | `20Gi` |
| `storageClass` | The storage class for the MongoDB Enterprise database. | String | `""` |
| **Parameters** | **Description** | **Type** | **Default value** |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------------------- |
| `internal` | Specifies the MongoDB deployment either in-cluster or using Mongo Atlas. | Boolean | `true` |
| `databaseUrl` | The URL for MongoDB Enterprise. If using a remote MongoDB Enterprise instance, provide the remote URL. This parameter must be updated if `mongo.internal` is set to `false`. You also need to ensure the MongoDB database has a user named `hubble` with the permission `readWriteAnyDatabase`. Refer to the [Add a Database User](https://www.mongodb.com/docs/guides/atlas/db-user/) guide for guidance on how to create a database user in Atlas. | String | `mongo-0.mongo,mongo-1.mongo,mongo-2.mongo` |
| `databasePassword` | The base64-encoded MongoDB Enterprise password. If you don't provide a value, a random password will be auto-generated. | String | `""` |
| `replicas` | The number of MongoDB replicas to start. | Integer | `3` |
| `memoryLimit` | Specifies the memory limit for each MongoDB Enterprise replica. | String | `4Gi` |
| `cpuLimit` | Specifies the CPU limit for each MongoDB Enterprise member. | String | `2000m` |
| `pvcSize` | The storage settings for the MongoDB Enterprise database. Use increments of `5Gi` when specifying the storage size. The storage size applies to each replica instance. The total storage size for the cluster is `replicas` \* `pvcSize`. | string | `20Gi` |
| `storageClass` | The storage class for the MongoDB Enterprise database. | String | `""` |

```yaml
mongo:
Expand Down
Loading

0 comments on commit 4b0be97

Please sign in to comment.