Skip to content

Commit d0220d5

Browse files
docs: add guideline to setup harvester ui extension in air gapped env (#722)
Co-authored-by: Jillian Maroket <[email protected]> Signed-off-by: Jack Yu <[email protected]>
1 parent a1988c6 commit d0220d5

18 files changed

+507
-0
lines changed

docs/airgap.md

+94
Original file line numberDiff line numberDiff line change
@@ -76,3 +76,97 @@ ssh rancher@<harvester-node-ip>
7676
sudo -i
7777
docker load -i /tmp/rancher-agent-<version>.tar
7878
```
79+
80+
## Harvester UI extension with Rancher Integration
81+
82+
The Harvester UI Extension is required to access the Harvester UI in Rancher v2.10.x and later versions. However, installing the extension over the network is not possible in air-gapped environments, so you must perform the following workaround:
83+
84+
85+
86+
1. Pull the image [rancher/ui-plugin-catalog](https://hub.docker.com/r/rancher/ui-plugin-catalog/tags) with the newest tag.
87+
88+
1. On the Rancher UI, go to **Extensions**, and then select **⋮ > Manage Extension Catalogs**.
89+
90+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-01.png)
91+
92+
1. Specify the required information.
93+
94+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-02.png)
95+
96+
- **Catalog Image Reference**: Specify the private registry URL and image repository.
97+
- **Image Pull Secrets**: Specify the secret used to access the registry when a username and password are required. You must create that secret in the `cattle-ui-plugin-system` namespace. Use either `kubernetes.io/dockercfg` or `kubernetes.io/dockerconfigjson` as the value of `type`.
98+
Example:
99+
100+
```yaml
101+
apiVersion: v1
102+
kind: Secret
103+
metadata:
104+
name: my-registry-secret-rancher
105+
namespace: cattle-ui-plugin-system
106+
type: kubernetes.io/dockerconfigjson
107+
data:
108+
.dockerconfigjson: {base64 encoded data}
109+
```
110+
111+
1. Click **Load**, and then allow some time for the extension to be loaded.
112+
113+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-03.png)
114+
115+
1. On the **Available** tab, locate the extension named **Harvester**, and then click **Install**.
116+
117+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-04.png)
118+
119+
1. Select the version that matches the Harvester cluster, and then click **Install**.
120+
121+
For more information, see the [Harvester UI Extension Support Matrix](/v1.5/rancher/harvester-ui-extension/#support-matrix).
122+
123+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-05.png)
124+
125+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-06.png)
126+
127+
1. Go to **Virtualization Management > Harvester Clusters**.
128+
129+
You can now import Harvester clusters and access the Harvester UI.
130+
131+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-07.png)
132+
133+
134+
## Troubleshooting
135+
136+
### UI Extensions Do Not Appear
137+
138+
If the **Extensions** screen is empty, go to **Repositories** (**⋮ > Manage Repositories**) and then click **Refresh**.
139+
140+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-04-01.png)
141+
142+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-04-02.png)
143+
144+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-04-03.png)
145+
146+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-04-04.png)
147+
148+
### Installation Failed
149+
150+
If you encounter an error during installation, check the `uiplugins` resource.
151+
152+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-05-01.png)
153+
154+
Example:
155+
156+
```
157+
bash-4.4# k get uiplugins -A
158+
NAMESPACE NAME PLUGIN NAME VERSION STATE
159+
cattle-ui-plugin-system harvester harvester 1.0.3 pending
160+
bash-4.4# k get uiplugins harvester --namespace cattle-ui-plugin-system -o yaml
161+
apiVersion: catalog.cattle.io/v1
162+
kind: UIPlugin
163+
metadata:
164+
# skip
165+
name: harvester
166+
namespace: cattle-ui-plugin-system
167+
spec:
168+
plugin:
169+
endpoint: http://ui-plugin-catalog-svc.cattle-ui-plugin-system:8080/plugin/harvester-1.0.3
170+
```
171+
172+
Ensure that `svc.namespace` is accessible from Rancher. If that endpoint is not accessible, you can directly use a cluster IP such as `10.43.33.58:8080/plugin/harvester-1.0.3`.

docs/rancher/harvester-ui-extension.md

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ Versions of the Harvester operating system and the Harvester UI Extension will a
3434
| v1.4.2 | v1.0.4 | Rancher 2.10.1 |
3535
| v1.5.0 | v1.5.0 | Rancher 2.11.0 |
3636

37+
Installing the extension over the network is not possible in air-gapped environments, so you must perform the workaround outlined in [Harvester UI Extension with Rancher Integration](/v1.5/airgap#harvester-ui-extension-with-rancher-integration).
3738

3839
## Installation on Rancher 2.10
3940

Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading
Loading

versioned_docs/version-v1.3/airgap.md

+94
Original file line numberDiff line numberDiff line change
@@ -76,3 +76,97 @@ ssh rancher@<harvester-node-ip>
7676
sudo -i
7777
docker load -i /tmp/rancher-agent-<version>.tar
7878
```
79+
80+
## Harvester UI extension with Rancher Integration
81+
82+
The Harvester UI Extension is required to access the Harvester UI in Rancher v2.10.x and later versions. However, installing the extension over the network is not possible in air-gapped environments, so you must perform the following workaround:
83+
84+
85+
86+
1. Pull the image [rancher/ui-plugin-catalog](https://hub.docker.com/r/rancher/ui-plugin-catalog/tags) with the newest tag.
87+
88+
1. On the Rancher UI, go to **Extensions**, and then select **⋮ > Manage Extension Catalogs**.
89+
90+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-01.png)
91+
92+
1. Specify the required information.
93+
94+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-02.png)
95+
96+
- **Catalog Image Reference**: Specify the private registry URL and image repository.
97+
- **Image Pull Secrets**: Specify the secret used to access the registry when a username and password are required. You must create that secret in the `cattle-ui-plugin-system` namespace. Use either `kubernetes.io/dockercfg` or `kubernetes.io/dockerconfigjson` as the value of `type`.
98+
Example:
99+
100+
```yaml
101+
apiVersion: v1
102+
kind: Secret
103+
metadata:
104+
name: my-registry-secret-rancher
105+
namespace: cattle-ui-plugin-system
106+
type: kubernetes.io/dockerconfigjson
107+
data:
108+
.dockerconfigjson: {base64 encoded data}
109+
```
110+
111+
1. Click **Load**, and then allow some time for the extension to be loaded.
112+
113+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-03.png)
114+
115+
1. On the **Available** tab, locate the extension named **Harvester**, and then click **Install**.
116+
117+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-04.png)
118+
119+
1. Select the version that matches the Harvester cluster, and then click **Install**.
120+
121+
For more information, see the [Harvester UI Extension Support Matrix](/v1.3/rancher/harvester-ui-extension/#support-matrix).
122+
123+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-05.png)
124+
125+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-06.png)
126+
127+
1. Go to **Virtualization Management > Harvester Clusters**.
128+
129+
You can now import Harvester clusters and access the Harvester UI.
130+
131+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-07.png)
132+
133+
134+
## Troubleshooting
135+
136+
### UI Extensions Do Not Appear
137+
138+
If the **Extensions** screen is empty, go to **Repositories** (**⋮ > Manage Repositories**) and then click **Refresh**.
139+
140+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-04-01.png)
141+
142+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-04-02.png)
143+
144+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-04-03.png)
145+
146+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-04-04.png)
147+
148+
### Installation Failed
149+
150+
If you encounter an error during installation, check the `uiplugins` resource.
151+
152+
![](/img/v1.5/air-gapped/air-gappted-harvester-ui-extension-05-01.png)
153+
154+
Example:
155+
156+
```
157+
bash-4.4# k get uiplugins -A
158+
NAMESPACE NAME PLUGIN NAME VERSION STATE
159+
cattle-ui-plugin-system harvester harvester 1.0.3 pending
160+
bash-4.4# k get uiplugins harvester --namespace cattle-ui-plugin-system -o yaml
161+
apiVersion: catalog.cattle.io/v1
162+
kind: UIPlugin
163+
metadata:
164+
# skip
165+
name: harvester
166+
namespace: cattle-ui-plugin-system
167+
spec:
168+
plugin:
169+
endpoint: http://ui-plugin-catalog-svc.cattle-ui-plugin-system:8080/plugin/harvester-1.0.3
170+
```
171+
172+
Ensure that `svc.namespace` is accessible from Rancher. If that endpoint is not accessible, you can directly use a cluster IP such as `10.43.33.58:8080/plugin/harvester-1.0.3`.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
---
2+
sidebar_position: 9
3+
sidebar_label: Harvester UI Extension
4+
title: Harvester UI Extension
5+
keywords:
6+
- Harvester
7+
- harvester
8+
- Harvester UI Extension
9+
- Rancher Integration
10+
---
11+
12+
<head>
13+
<link rel="canonical" href="https://docs.harvesterhci.io/v1.4/rancher/rancher-integration"/>
14+
</head>
15+
16+
17+
Rancher 2.10.0 and later versions integrate with Harvester using the [Harvester UI Extension](https://github.com/harvester/harvester-ui-extension), which is built on the[@rancher/shell](https://www.npmjs.com/package/@rancher/shell) library.
18+
19+
:::note
20+
The current [Harvester UI](https://github.com/harvester/dashboard) will continue to support Harvester v1.3.x and v1.4.x releases. New features in later releases will be implemented in the Harvester UI Extension.
21+
:::
22+
23+
24+
25+
## Support Matrix
26+
27+
Versions of the Harvester operating system and the Harvester UI Extension will align starting with v1.5.0.
28+
29+
30+
| Harvester Cluster | Harvester UI Extension | Minimum supported Rancher |
31+
| --------------------------| ------------------------------- | ------------------------ |
32+
| v1.3.0, v1.3.1, v1.3.2 | v1.0.2 | Rancher 2.10.1 |
33+
34+
Installing the extension over the network is not possible in air-gapped environments, so you must perform the workaround outlined in [Harvester UI Extension with Rancher Integration](/v1.3/airgap#harvester-ui-extension-with-rancher-integration).
35+
36+
## Installation on Rancher 2.10
37+
38+
### Automatic Installation
39+
40+
You can install the Harvester UI Extension with a single click.
41+
42+
1. On the Rancher UI, go to **Virtualization Management**.
43+
![](/img/v1.5/rancher/auto-install-ui-extension.png)
44+
45+
1. On the **Harvester Clusters** tab, click **Install**.
46+
47+
Allow some time for the extension to be installed. The screen is automatically refreshed once the installation is completed.
48+
49+
:::info important
50+
Do not navigate away from the screen during the installation process.
51+
:::
52+
53+
![](/img/v1.5/rancher/auto-install-ui-extension.png)
54+
55+
56+
### Manual Installation
57+
If the automatic installation fails, you can specify the Harvester UI Extension repository URL and then install the extension.
58+
59+
![](/img/v1.5/rancher/ui-extension-install-failed.png)
60+
61+
1. On the Rancher UI, go to **local > Apps > Repositories**, and then click **Create**.
62+
63+
![](/img/v1.5/rancher/ui-extension-app-repository-setup.png)
64+
65+
1. Configure the following settings:
66+
- Name: Specify a name for the repository.
67+
- Target: Select **Git repository containing Helm chart or cluster template definitions**.
68+
- Git Repo URL: Specify **https://github.com/harvester/harvester-ui-extension**.
69+
- Git Branch: Specify **gh-pages**.
70+
71+
2. Click **Create**.
72+
73+
3. Go to **Extensions > Available**.
74+
![](/img/v1.5/rancher/ui-extension-available-tab.png)
75+
76+
4. Locate the extension named **Harvester**, and then click **Install**.
77+
78+
79+
## Upgrades
80+
81+
### Automatic Upgrade
82+
83+
The **Update** button appears whenever a new version of the extension is available.
84+
85+
1. On the Rancher UI, go to **Virtualization Management**.
86+
87+
![](/img/v1.5/rancher/ui-extension-update.png)
88+
89+
1. Click **Update**.
90+
Allow some time for the extension to be upgraded. The screen is automatically refreshed once the upgrade is completed.
91+
92+
### Manual Upgrades
93+
94+
1. On the Rancher UI, go to **local > Apps > Repositories**.
95+
96+
1. Locate the repository with the following settings, and then select **⋮ > Refresh**.
97+
98+
- URL: **https://github.com/harvester/harvester-ui-extension**
99+
- Branch: **gh-pages**
100+
101+
![](/img/v1.4/upgrade/rancher-2.10.1-repository-page.png)
102+
103+
1. Go to **Extensions > Installed**.
104+
105+
1. Locate the extension named **Harvester**, and then click **Update**.
106+
107+
1. Select the new version, and then click **Update**.
108+
109+
![](/img/v1.4/upgrade/update-harvester-ui-extension-modal.png)
110+
111+
1. Allow some time for the extension to be upgraded, and then refresh the screen.

0 commit comments

Comments
 (0)