Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 21 additions & 4 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,8 @@ const config = {
},
"v1.6": {
label: 'v1.6 (Latest)',
path: 'v1.6',
path: '',
// path: 'v1.6',
},
"v1.5": {
label: 'v1.5',
Expand Down Expand Up @@ -233,10 +234,26 @@ const config = {
* @returns {RedirectsReturn}
*/
createRedirects(existingPath) {
if (typeof existingPath === 'string' && existingPath.includes('/v1.6')) {
return [existingPath.replace('/v1.6', '/latest')];
if (typeof existingPath !== 'string') {
return undefined;
}
return undefined;

if (/^\/(?:api|dev\/api)(?:\/|$)/.test(existingPath)) {
return undefined;
}

if (/^\/v\d+\.\d+\/(?:api)(?:\/|$)/.test(existingPath)) {
return undefined;
}

if (existingPath === '/') {
return ['/v1.6/', '/v1.6', '/latest/', '/latest'];
}

return [
`/v1.6${existingPath}`,
`/latest${existingPath}`,
];
}
},
],
Expand Down
6 changes: 0 additions & 6 deletions src/pages/index.js

This file was deleted.

15 changes: 15 additions & 0 deletions src/pages/v1.6/[...slug].js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import React from 'react';
import {Redirect, useLocation} from '@docusaurus/router';

function toLatestPath(pathname) {
const rewritten = pathname.replace(/\/v1\.6(?=\/|$)/, '');
return rewritten === '' ? '/' : rewritten;
}

export default function LegacyV16PathRedirect() {
const location = useLocation();
const pathname = toLatestPath(location.pathname);
const target = `${pathname}${location.search || ''}${location.hash || ''}`;

return <Redirect to={target} />;
}
15 changes: 15 additions & 0 deletions src/pages/v1.6/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import React from 'react';
import {Redirect, useLocation} from '@docusaurus/router';

function toLatestPath(pathname) {
const rewritten = pathname.replace(/\/v1\.6(?=\/|$)/, '');
return rewritten === '' ? '/' : rewritten;
}

export default function LegacyV16RootRedirect() {
const location = useLocation();
const pathname = toLatestPath(location.pathname);
const target = `${pathname}${location.search || ''}${location.hash || ''}`;

return <Redirect to={target} />;
}
10 changes: 5 additions & 5 deletions versioned_docs/version-v1.6/advanced/settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,7 @@ A VM that is configured to have `1 CPU, 64 Gi Memory, 1 Volume and 1 NIC` will g
The yaml output of this setting on a new cluster:

```
apypervisor: harvesterhci.io/v1beta1
apypervisor: hypervisorhci.io/v1beta1
default: "1.5"
kind: Setting
metadata:
Expand Down Expand Up @@ -467,7 +467,7 @@ Changing the `additional-guest-memory-overhead-ratio` setting affects the VMs pe

:::

### `release-download-url`
<!-- ### `release-download-url`

**Definition**: URL for downloading the software required for upgrades.

Expand All @@ -486,7 +486,7 @@ metadata:
spec:
isoChecksum: ${ISO_CHECKSUM}
isoURL: ${ISO_URL}
```
``` -->

### `server-version`

Expand Down Expand Up @@ -766,7 +766,7 @@ If the collection process is not completed within the allotted time, Hypervisor
false
```

### `upgrade-checker-url`
<!-- ### `upgrade-checker-url`

**Definition**: URL used to check for available Hypervisor upgrades.

Expand All @@ -778,7 +778,7 @@ This setting can only be used if the `upgrade-checker-enabled` setting is set to

```
https://your.upgrade.checker-url/v99/checkupgrade
```
``` -->

### `upgrade-config`

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ You can download the installation files from the [Hypervisor Releases](https://g
| --- | --- | --- |
| [ISO](../install/iso-install.md) | ISO | N/A |
| [USB](../install/usb-install.md) | ISO | USB flash drive; utility such as [balenaEtcher](https://etcher.balena.io/) or the Linux [dd command](https://man7.org/linux/man-pages/man1/dd.1.html) |
| [PXE](../install/pxe-boot-install.md) | ISO, Linux kernel image (vmlinuz), initrd, SquashFS image | Directory on the HTTP server (for serving boot files); iPXE boot scripts (for automatic installation); DHCP server configuration |

<!-- | [PXE](../install/pxe-boot-install.md) | ISO, Linux kernel image (vmlinuz), initrd, SquashFS image | Directory on the HTTP server (for serving boot files); iPXE boot scripts (for automatic installation); DHCP server configuration | -->

## 3. Prepare the cluster configuration requirements.

Expand Down Expand Up @@ -100,7 +101,8 @@ You can create [Linux VMs](../vm/create-vm.md) using one of the following method

- Hypervisor UI: On the **Virtual Machines** screen, click **Create** and configure the settings on each tab.
- Kubernetes API: Create a `VirtualMachine` object.
- [Hypervisor Terraform Provider](../terraform/terraform-provider.md): Define a `harvester_virtualmachine` resource block.

<!-- - [Hypervisor Terraform Provider](../terraform/terraform-provider.md): Define a `harvester_virtualmachine` resource block. -->

Creating [Windows VMs](../vm/create-windows-vm.md) on the Hypervisor UI involves slightly different steps. Hypervisor provides a VM template named `windows-iso-image-base-template` that adds a volume with the Virtio drivers for Windows, which streamlines the VM configuration process. If you require Virtio devices but choose to not use the template, you must add your own Virtio drivers for Windows to enable correct hardware detection.

Expand Down
8 changes: 4 additions & 4 deletions versioned_docs/version-v1.6/networking/best-practice.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,10 +128,10 @@ Before any action is taken, it is important to collect the current network infor
```
$ grep "renamed" kernel.log

Jan 08 00:34:48 localhost kernel: tg3 0000:02:00.0 eno1: renamed from eth2 // eth2 / eno1 is not used by Harvester
Jan 08 00:34:48 localhost kernel: tg3 0000:02:00.3 eno4: renamed from eth6 // eth6 / eno4 is not used by Harvester
Jan 08 00:34:48 localhost kernel: tg3 0000:02:00.2 eno3: renamed from eth5 // eth5 / eno3 is not used by Harvester
Jan 08 00:34:48 localhost kernel: tg3 0000:02:00.1 eno2: renamed from eth3 // eth3 / eno2 is not used by Harvester
Jan 08 00:34:48 localhost kernel: tg3 0000:02:00.0 eno1: renamed from eth2 // eth2 / eno1 is not used by Hypervisor
Jan 08 00:34:48 localhost kernel: tg3 0000:02:00.3 eno4: renamed from eth6 // eth6 / eno4 is not used by Hypervisor
Jan 08 00:34:48 localhost kernel: tg3 0000:02:00.2 eno3: renamed from eth5 // eth5 / eno3 is not used by Hypervisor
Jan 08 00:34:48 localhost kernel: tg3 0000:02:00.1 eno2: renamed from eth3 // eth3 / eno2 is not used by Hypervisor
Jan 08 00:34:49 localhost kernel: i40e 0000:5d:00.0 eno5: renamed from eth0
Jan 08 00:34:49 localhost kernel: i40e 0000:af:00.0 ens4f0: renamed from eth4
Jan 08 00:34:49 localhost kernel: i40e 0000:5d:00.1 eno6: renamed from eth1
Expand Down
2 changes: 1 addition & 1 deletion versioned_docs/version-v1.6/networking/deep-dive.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ We leverage [multus CNI](https://github.com/k8snetworkplumbingwg/multus-cni) and
3. To achieve high availability and fault tolerance, a bond device where the real NICs are bound is created to serve as the uplink of the bridge. By default, this bond device will allow the target tagged traffic/packets to pass through.

```shell
harvester-0:/home/rancher # bridge -c vlan show dev oob-bo
hypervisor-0:/home/rancher # bridge -c vlan show dev oob-bo
port vlan ids
oob-bo 1 PVID Egress Untagged
100
Expand Down
10 changes: 5 additions & 5 deletions versioned_docs/version-v1.6/troubleshooting/vm.md
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,7 @@ Node level operation, node by node:

1. [Uncordon](../host/host.md#cordoning-a-node) this node.

1. [Start](#vm-general-operations) the affected VMs from harvester UI.
1. [Start](#vm-general-operations) the affected VMs from hypervisor UI.

Wait some time, the VM will run successfully.

Expand Down Expand Up @@ -563,7 +563,7 @@ metadata:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: network.harvesterhci.io/cn2
- key: network.hypervisorhci.io/cn2
operator: In
values:
- 'true'
Expand All @@ -588,7 +588,7 @@ spec:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: network.harvesterhci.io/cn2
- key: network.hypervisorhci.io/cn2
operator: In
values:
- "true"
Expand All @@ -610,11 +610,11 @@ status:

### Root Cause

Hypervisor migtht [automatically apply affinity rules](../vm/create-vm.md#automatically-applied-affinity-rules) based on the definition of a virtual machine. In the above example, the virtual machine `vm100` attaches to the cluster network `cn2`, and Hypervisor applies the affinity rule `network.harvesterhci.io/cn2`. However, no nodes meet the rule's criteria, so the virtual machine cannot be scheduled.
Hypervisor migtht [automatically apply affinity rules](../vm/create-vm.md#automatically-applied-affinity-rules) based on the definition of a virtual machine. In the above example, the virtual machine `vm100` attaches to the cluster network `cn2`, and Hypervisor applies the affinity rule `network.hypervisorhci.io/cn2`. However, no nodes meet the rule's criteria, so the virtual machine cannot be scheduled.

### Solution

Ensure there are active nodes which sets up the cluster network `cn2` successfully, then these nodes are labeled with `network.harvesterhci.io/cn2`, finally the pending pod can be scheduled to them.
Ensure there are active nodes which sets up the cluster network `cn2` successfully, then these nodes are labeled with `network.hypervisorhci.io/cn2`, finally the pending pod can be scheduled to them.

## Unintentional Virtual Machine Template Modification via Cloud Config YAML

Expand Down
Loading