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
40 changes: 0 additions & 40 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -165,46 +165,6 @@ const config = {
},
],
},
{
type: 'dropdown',
label: 'More from SUSE',
position: 'right',
items: [
{
href: 'https://www.rancher.com',
label: 'Rancher',
className: 'navbar__icon navbar__rancher',
},
{
type: 'html',
value: '<hr style="margin: 0.3rem 0;">',
},
{
href: 'https://elemental.docs.rancher.com/',
label: 'Elemental',
className: 'navbar__icon navbar__elemental',
},
{
href: 'https://fleet.rancher.io/',
label: 'Fleet',
className: 'navbar__icon navbar__fleet',
},
{
href: 'https://rancherdesktop.io/',
label: 'Rancher Desktop',
className: 'navbar__icon navbar__rancherdesktop',
},
{
type: 'html',
value: '<hr style="margin: 0.3rem 0;">',
},
{
href: 'https://opensource.suse.com/',
label: 'More Projects...',
className: 'navbar__icon navbar__suse',
},
],
},
],
},
colorMode: {
Expand Down
12 changes: 12 additions & 0 deletions src/theme/DocItem/Paginator/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import React from 'react';
import DocItemPaginator from '@theme-original/DocItem/Paginator';

export default function DocItemPaginatorWrapper(props) {
return (
<>
{/*
<DocItemPaginator {...props} />
*/}
</>
);
}
35 changes: 35 additions & 0 deletions src/theme/DocVersionBadge/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import React from 'react';
import clsx from 'clsx';
import Translate from '@docusaurus/Translate';
import {ThemeClassNames} from '@docusaurus/theme-common';
import {useDocsVersion} from '@docusaurus/theme-common/internal';

function getBadgeLabel(versionLabel) {
if (/latest/i.test(versionLabel)) {
return 'Latest';
}
return versionLabel;
}

export default function DocVersionBadge({className}) {
const versionMetadata = useDocsVersion();

if (!versionMetadata.badge) {
return null;
}

return (
<span
className={clsx(
className,
ThemeClassNames.docs.docVersionBadge,
'badge badge--secondary',
)}>
<Translate
id="theme.docs.versionBadge.label"
values={{versionLabel: getBadgeLabel(versionMetadata.label)}}>
{'Version: {versionLabel}'}
</Translate>
</span>
);
}
51 changes: 51 additions & 0 deletions src/theme/LastUpdated/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import React from 'react';
import Translate from '@docusaurus/Translate';
import {ThemeClassNames} from '@docusaurus/theme-common';

function getCurrentDate() {
const now = new Date();
const formatted = new Intl.DateTimeFormat('en-US', {
month: 'short',
day: 'numeric',
year: 'numeric',
timeZone: 'Asia/Jakarta',
}).format(now);

return {
dateTime: now.toISOString(),
formatted,
};
}

export default function LastUpdated() {
const currentDate = getCurrentDate();

return (
<span className={ThemeClassNames.common.lastUpdated}>
<Translate
id="theme.lastUpdated.lastUpdatedAtBy"
description="The sentence used to display when a page has been last updated"
values={{
atDate: (
<Translate
id="theme.lastUpdated.atDate"
description="The words used to describe on which date a page has been last updated"
values={{
date: (
<b>
<time dateTime={currentDate.dateTime}>
{currentDate.formatted}
</time>
</b>
),
}}>
{' on {date}'}
</Translate>
),
byUser: '',
}}>
{'Last updated{atDate}{byUser}'}
</Translate>
</span>
);
}
Binary file added static/img/v1.0/install-hv/first-time-login.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/v1.2/install-hv/config-dns-server.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/v1.2/install-hv/config-hostname.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/v1.2/install-hv/config-license.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/v1.2/install-hv/config-network.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/v1.2/install-hv/config-ntp-server.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/v1.2/install-hv/config-password.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/v1.2/install-hv/config-proxy.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/v1.2/install-hv/confirm-install.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/v1.2/install-hv/confirm-license.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/v1.2/install-hv/edit-menu-entry.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/v1.2/install-hv/eula.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/v1.2/install-hv/force-resolution.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/v1.2/install-hv/grub-menu.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/v1.2/install-hv/hardware-checks.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/v1.2/install-hv/import-ssh-keys.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/v1.2/install-hv/iso-installation.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/v1.2/install-hv/iso-installed.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/v1.2/install-hv/remote-config.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/v1.2/install-hv/select-role.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/v1.2/install-hv/setup-page.jpeg
Binary file modified static/img/v1.2/storageclass-hv/create-hdd-storageclasses.png
Binary file modified static/img/v1.3/image-hv/create-decrypted-image.png
Binary file modified static/img/v1.3/troubleshooting-hv/edit-rancher-monitoring.png
Binary file modified static/img/v1.4/storagenetwork-hv/storage-network-disabled.png
Binary file modified static/img/v1.4/storagenetwork-hv/storage-network-enabled.png
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ title: "Local Storage Support (Experimental)"
<link rel="canonical" href="https://docs.harvesterhci.io/v1.6/advanced/addons/lvm-local-storage"/>
</head>

:::note
<!-- :::note

**hypervisor-csi-driver-lvm** is an *experimental* add-on. It is not included in the Hypervisor ISO, but you can download it from the [experimental-addons repository](https://github.com/harvester/experimental-addons). For more information about experimental features, see [Feature Labels](../../getting-started/document-conventions.md#feature-labels).

:::
::: -->

Hypervisor allows you to use local storage on the host to create persistent volumes for your workloads with better performance and latency. This functionality is made possible by LVM, which provides logical volume management facilities on Linux.

Expand All @@ -22,11 +22,11 @@ The **hypervisor-csi-driver-lvm** add-on is a CSI driver that supports local pat

If you are using the Hypervisor kubeconfig file, you can install the add-on by performing the following steps:

1. Install the add-on by running the following command:
<!-- 1. Install the add-on by running the following command:

```
# kubectl apply -f https://raw.githubusercontent.com/harvester/experimental-addons/main/harvester-csi-driver-lvm/harvester-csi-driver-lvm.yaml
```
``` -->

1. On the Hypervisor UI, go to **Advanced** > **Add-ons**.

Expand Down
14 changes: 8 additions & 6 deletions versioned_docs/version-v1.6/advanced/addons/managed-dhcp.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,12 @@ title: "Managed DHCP (Experimental)"

:::note

**hypervisor-vm-dhcp-controller** is an *experimental* add-on. It is not included in the Hypervisor ISO, but you can download it from the [experimental-addons repository](https://github.com/harvester/experimental-addons). For more information about experimental features, see [Feature Labels](../../getting-started/document-conventions.md#feature-labels).
**hypervisor-vm-dhcp-controller** is an *experimental* add-on. For more information about experimental features, see [Feature Labels](../../getting-started/document-conventions.md#feature-labels).
<!-- **hypervisor-vm-dhcp-controller** is an *experimental* add-on. It is not included in the Hypervisor ISO, but you can download it from the [experimental-addons repository](https://github.com/harvester/experimental-addons). For more information about experimental features, see [Feature Labels](../../getting-started/document-conventions.md#feature-labels). -->

:::

You can configure IP pool information and serve IP addresses to VMs running on Hypervisor clusters using the embedded Managed DHCP feature. This feature, which is an alternative to the standalone DHCP server, leverages the [hypervisor-vm-dhcp-controller](https://github.com/harvester/vm-dhcp-controller) add-on to simplify guest cluster deployment.
<!-- You can configure IP pool information and serve IP addresses to VMs running on Hypervisor clusters using the embedded Managed DHCP feature. This feature, which is an alternative to the standalone DHCP server, leverages the [hypervisor-vm-dhcp-controller](https://github.com/harvester/vm-dhcp-controller) add-on to simplify guest cluster deployment. -->

:::note

Expand Down Expand Up @@ -74,13 +75,13 @@ kubectl -n kube-system get pods -l component=kube-apiserver -o yaml | grep "serv

After installation, enable the add-on on the **Dashboard** screen of the Hypervisor UI or using the command-line tool kubectl.

![](/img/v1.3/vm-dhcp-controller/enable-addon.png)
![](/img/v1.3/vm-dhcp-controller-hv/enable-addon.png)

## Using the Add-on

1. On the **Dashboard** screen of the Hypervisor UI, [create a VM Network](../../networking/harvester-network.md#create-a-vm-network).

![](/img/v1.3/vm-dhcp-controller/vm-network.png)
![](/img/v1.3/vm-dhcp-controller-hv/vm-network.png)

1. Create an IPPool object using the command-line tool kubectl.

Expand Down Expand Up @@ -111,7 +112,7 @@ After installation, enable the add-on on the **Dashboard** screen of the Hypervi

1. [Create a VM](../../vm/create-vm.md#how-to-create-a-vm) that is connected to the VM Network you previously created.

![](/img/v1.3/vm-dhcp-controller/create-vm.png)
![](/img/v1.3/vm-dhcp-controller-hv/create-vm.png)

1. Wait for the corresponding VirtualMachineNetworkConfig object to be created and for the MAC address of the VM's network interface to be applied to the object.
1. Check the `.status` field of the IPPool and VirtualMachineNetworkConfig objects, and verify that the IP address is allocated and assigned to the MAC address.
Expand Down Expand Up @@ -213,7 +214,7 @@ After installation, enable the add-on on the **Dashboard** screen of the Hypervi

1. Check the [VM's serial console](../../vm/access-to-the-vm.md#access-with-the-harvester-ui) and verify that the IP address is correctly configured on the network interface (via DHCP).

![](/img/v1.3/vm-dhcp-controller/vm-console.png)
![](/img/v1.3/vm-dhcp-controller-hv/vm-console.png)

## Pods and CRDs

Expand Down Expand Up @@ -300,3 +301,4 @@ After the VirtualMachineNetworkConfig object is created, the controller attempts
Manual creation of VirtualMachineNetworkConfig objects for VMs is unnecessary in most cases because **hypervisor-vm-dhcp-controller** handles that task during the VirtualMachine reconciliation process. Automatically-created VirtualMachineNetworkConfig objects are deleted when VirtualMachine objects are removed.

:::

18 changes: 9 additions & 9 deletions versioned_docs/version-v1.6/advanced/addons/pcidevices.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,44 +67,44 @@ This is just like installing drivers in the host. The PCI passthrough feature wi

## Known Issues

* [Issue #6648](https://github.com/harvester/harvester/issues/6648): A virtual machine can be scheduled on an incorrect node if the cluster has multiple instances of the same PCI device.
<!-- * [Issue #6648](https://github.com/harvester/harvester/issues/6648): A virtual machine can be scheduled on an incorrect node if the cluster has multiple instances of the same PCI device. -->

The pcidevices-controller add-on currently uses unique resource descriptors to publish devices to the kubelet. If multiple `PCIDeviceClaims` of the same device type exist within the cluster, the same unique resource descriptor is used for these `PCIDeviceClaims`, and so the virtual machine may be scheduled on an incorrect node. To ensure that the correct device and node are used, select **Run VM on specific node** when configuring **Node Scheduling** settings.

![](/img/v1.4/vm-hv/vm-scheduling.png)

## SRIOV Network Devices
_Available as of v1.2.0_
<!-- _Available as of v1.2.0_ -->

![](/img/v1.2/pcidevices/SriovNetworkDevicesLink.png)

The `pcidevices-controller` addon can now scan network interfaces on the underlying hosts and check if they support SRIOV Virtual Functions (VFs). If a valid device is found, `pcidevices-controller` will generate a new `SRIOVNetworkDevice` object.

![](/img/v1.2/pcidevices/SriovNetworkDevicesList.png)
<!-- ![](/img/v1.2/pcidevices/SriovNetworkDevicesList.png) -->

To create VFs on a SriovNetworkDevice, you can click **⋮ > Enable** and then define the **Number of Virtual Functions**.
![](/img/v1.2/pcidevices/SriovNetworkDeviceEnable.png)
<!-- ![](/img/v1.2/pcidevices/SriovNetworkDeviceEnable.png) -->

![](/img/v1.2/pcidevices/SriovNetworkVFDefinition.png)
<!-- ![](/img/v1.2/pcidevices/SriovNetworkVFDefinition.png) -->

The `pcidevices-controller` will define the VFs on the network interface and report the new PCI device status for the newly created VFs.

![](/img/v1.2/pcidevices/SriovNetworkDevicesVFStatus.png)
<!-- ![](/img/v1.2/pcidevices/SriovNetworkDevicesVFStatus.png) -->

On the next re-scan, the `pcidevices-controller` will create the PCIDevices for VFs. This can take up to 1 minute.

You can now navigate to the **PCI Devices** page to view the new devices.

We have also introduced a new filter to help you filter PCI devices by the underlying network interface.

![](/img/v1.2/pcidevices/SriovNetworkDevicesFilter.png)
<!-- ![](/img/v1.2/pcidevices/SriovNetworkDevicesFilter.png) -->

The newly created PCI device can be passed through to virtual machines like any other PCI device.
![](/img/v1.2/pcidevices/SriovNetworkDevicesFilterResult.png)
<!-- ![](/img/v1.2/pcidevices/SriovNetworkDevicesFilterResult.png) -->

## USB Devices

_Available as of v1.4.0_
<!-- _Available as of v1.4.0_ -->

A `USBDevice` resource in Hypervisor represents a USB device on the node. USB devices can be "passed through" by the hypervisor to allow direct access from VMs. This is accomplished through the `pcidevices-controller` add-on. To use USB passthrough, you can either create a `USBDeviceClaim` resource or enable the feature on the Hypervisor UI.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,25 @@ title: "Rancher Manager (Experimental)"
<link rel="canonical" href="https://docs.harvesterhci.io/v1.6/advanced/addons/rancher-vcluster"/>
</head>

:::note
<!-- :::note

**rancher-vcluster** is an *experimental* add-on. It is not included in the Hypervisor ISO, but you can download it from the [experimental-addons repository](https://github.com/harvester/experimental-addons). For more information about experimental features, see [Feature Labels](../../getting-started/document-conventions.md#feature-labels).

:::
::: -->

The **rancher-vcluster** add-on allows you to run Rancher as a workload on the underlying Hypervisor cluster and is implemented using [vCluster](https://www.vcluster.com).

The add-on runs a nested K3s cluster in the **rancher-vcluster** namespace and deploys Rancher to this cluster.

During the installation, the ingress for Rancher is synced to the Hypervisor cluster, allowing end users to access Rancher.

## Installing the Add-on
<!-- ## Installing the Add-on

If you are using the Hypervisor kubeconfig file, you can install the add-on by running the following command:

```
kubectl apply -f https://raw.githubusercontent.com/harvester/experimental-addons/main/rancher-vcluster/rancher-vcluster.yaml
```
``` -->

## Configuring the Add-on

Expand Down
3 changes: 2 additions & 1 deletion versioned_docs/version-v1.6/advanced/addons/seeder.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,8 @@ If you selected **Enabled** in the **Event** section of the **Out-of-Band Access

## Troubleshooting

The **Out-of-Band Access** settings screen may become unresponsive and display the message `Waiting for "inventories.metal.hypervisorhci.io" to be ready`. You must refresh the page whenever this occurs. For more information, see [Issue #4412](https://github.com/harvester/harvester/issues/4412).
The **Out-of-Band Access** settings screen may become unresponsive and display the message `Waiting for "inventories.metal.hypervisorhci.io" to be ready`. You must refresh the page whenever this occurs.
<!-- For more information, see [Issue #4412](https://github.com/harvester/harvester/issues/4412). -->

If you encounter persistent issues while using **hypervisor-seeder**, submit the following to SUSE Support:

Expand Down
9 changes: 5 additions & 4 deletions versioned_docs/version-v1.6/advanced/csidriver.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ When [creating a virtual machine](../vm/create-vm.md) using the Hypervisor UI (*

In the following example, the root volume is created using NFS, and the data volume is created using the Longhorn V2 Data Engine.

![various-volumes-for-vm-created](/img/v1.5/advanced/various-volumes-for-vm-created.png)
![various-volumes-for-vm-created](/img/v1.5/advanced-hv/various-volumes-for-vm-created.png)

### Volume Creation

Expand Down Expand Up @@ -221,10 +221,10 @@ If the server is already running, check the `squash` option. You must disable sq

Once created, you can use the StorageClass to create virtual machine images, root volumes, and data volumes.

## References
<!-- ## References

- [Use Rook Ceph External Storage with Hypervisor](https://harvesterhci.io/kb/use_rook_ceph_external_storage)
- [Using NetApp Storage on Hypervisor](https://harvesterhci.io/kb/install_netapp_trident_csi)
- [Using NetApp Storage on Hypervisor](https://harvesterhci.io/kb/install_netapp_trident_csi) -->
<!-- - [Third Party Storage Support](https://github.com/harvester/harvester/blob/master/enhancements/20250203-third-party-storage-support.md) -->

## Known Issues
Expand Down Expand Up @@ -270,7 +270,7 @@ Increasing the overhead value does not affect the image PVC size. The scratch vo

:::

<!-- Related issue: [#7993](https://github.com/harvester/harvester/issues/7993) (See this [comment](https://github.com/harvester/harvester/issues/7993#issuecomment-2790260841).) -->
<!-- Related issue: [#7993](https://github.com/harvester/harvester/issues/7993) (See this??[comment](https://github.com/harvester/harvester/issues/7993#issuecomment-2790260841).) -->

### 2. Multipath support
<!-- _Available as of v1.4.3_ -->
Expand Down Expand Up @@ -319,3 +319,4 @@ spec:
- multipathd
paused: false
```

1 change: 1 addition & 0 deletions versioned_docs/version-v1.6/advanced/customsuseimages.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
id: customsuseimages
sidebar_position: 8
sidebar_class_name: hide-sidebar-item
sidebar_label: Custom SUSE VM Images
title: "Custom SUSE VM Images"
draft: true
Expand Down
3 changes: 2 additions & 1 deletion versioned_docs/version-v1.6/advanced/longhorn-v2.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,8 @@ Starting with Hypervisor v1.5.0 and Longhorn v1.8.1, these limitations are remov

:::info important

- If you are using the SPDK AIO bdev driver (i.e. if your disks were added using `/dev/sd*` device paths), _V2 volumes created before the upgrade will be unusable after upgrading, and cannot be recovered_. For more details see https://github.com/longhorn/longhorn/issues/10461.
- If you are using the SPDK AIO bdev driver (i.e. if your disks were added using `/dev/sd*` device paths), _V2 volumes created before the upgrade will be unusable after upgrading, and cannot be recovered_.
<!-- For more details see https://github.com/longhorn/longhorn/issues/10461. -->

- If you are using the SPDK NVMe bdev driver (i.e. your disks were added using `/dev/nvme*` device paths), V2 volumes created before the upgrade will function after the upgrade, but will continue to use the Longhorn v1.7.x engine. As mentioned above, these volumes will remain non-migratable, but it is possible to export the data and create new migratable volumes (see below for details).

Expand Down
Loading
Loading