Skip to content

Commit f2cbd82

Browse files
Merge branch 'main' into main
2 parents a4b4f8f + 734d474 commit f2cbd82

13 files changed

Lines changed: 845 additions & 24 deletions

File tree

.github/workflows/test-deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
name: Test deployment
1212
runs-on: ubuntu-latest
1313
steps:
14-
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
14+
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
1515
with:
1616
submodules: recursive
1717
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0

versions/v1.7/modules/en/pages/upgrades/v1-6-x-to-v1-7-x.adoc

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
= Upgrade from v1.6.x to v1.7.x
2-
:revdate: 2026-06-05
2+
:revdate: 2026-06-10
33
:page-languages: [en, de, es, fr, ja, pt, zh]
4-
:revdate: 2026-02-02
54
:page-revdate: {revdate}
65

76
== General information
@@ -259,22 +258,26 @@ $ grub2-editenv /oem/grubenv set \
259258

260259
[NOTE]
261260
====
262-
This workaround is only necessary when upgrading to v1.7.0 or using bonded interfaces. In v1.7.1 and later versions, these `ifname=` arguments are automatically added to prevent network disruptions during driver updates.
261+
This workaround is only necessary when upgrading to v1.7.0, or if using bonded interfaces with v1.7.1. In v1.7.2 and later versions, these `ifname=` arguments are automatically added to prevent network disruptions during driver updates.
263262
264263
|===
265-
| Version | Interface | Manual workaround
264+
| Version | Interface | Workaround
266265
267266
| v1.7.0
268267
| Any
269-
| Required
268+
| Manual
270269
271-
| v1.7.1+
270+
| v1.7.1
272271
| Standalone
273-
| Not required (automated)
272+
| Automated
274273
275-
| v1.7.1+
274+
| v1.7.1
276275
| Bonded
277-
| Required
276+
| Manual
277+
278+
| v1.7.2+
279+
| Any
280+
| Automated
278281
|===
279282
====
280283

76.5 KB
Loading

versions/v1.8/modules/en/nav.adoc

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
** xref:upgrades/v1-6-x-to-v1-6-y.adoc[]
4141
** xref:upgrades/v1-6-x-to-v1-7-x.adoc[]
4242
** xref:upgrades/v1-7-x-to-v1-7-y.adoc[]
43+
** xref:upgrades/v1-7-x-to-v1-8-x.adoc[]
4344
** xref:upgrades/troubleshooting.adoc[]
4445
4546
// Folder: hosts:
@@ -106,11 +107,12 @@
106107
** xref:networking/vm-isolation.adoc[]
107108
** xref:networking/best-practices.adoc[]
108109
109-
// Folder: resilience:
110+
// Folder: security-resilience:
110111

111-
* Resilience
112-
** xref:resilience/ha-principles.adoc[]
113-
** xref:resilience/failure-domains.adoc[]
112+
* Security and Resilience
113+
** xref:security-resilience/pod-security-standards.adoc[]
114+
** xref:security-resilience/ha-principles.adoc[]
115+
** xref:security-resilience/failure-domains.adoc[]
114116
115117
// Folder: observability:
116118

@@ -141,6 +143,7 @@
141143
** Rancher Integration
142144
*** xref:integrations/rancher/rancher-integration.adoc[]
143145
*** xref:integrations/rancher/virtualization-management.adoc[]
146+
*** xref:integrations/rancher/rancher-rbac.adoc[]
144147
// Folder: integrations/rancher/node-driver/
145148
*** Node Driver
146149
**** xref:integrations/rancher/node-driver/node-driver.adoc[]

versions/v1.8/modules/en/pages/installation-setup/config/settings.adoc

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
= Settings
2-
:revdate: 2026-06-05
2+
:revdate: 2026-06-10
33
:page-revdate: {revdate}
44

55
The following is a list of advanced settings that you can use. You can modify the `settings.harvesterhci.io` custom resource using both the UI and the `kubectl` command.
@@ -95,6 +95,36 @@ For more information, see the https://documentation.suse.com/cloudnative/storage
9595
}
9696
----
9797

98+
=== `cluster-pod-security-standard`
99+
100+
*Definition*: Setting that allows cluster administrators to enforce Pod Security Standards (PSS) at the cluster level while maintaining granular configuration control at the namespace level.
101+
102+
For more information, see xref:security-resilience/pod-security-standards.adoc[cluster-pod-security-standard].
103+
104+
*Default value*:
105+
106+
[,json]
107+
----
108+
{
109+
"enabled":false,
110+
"whitelistedNamespacesList":"",
111+
"privilegedNamespacesList":"",
112+
"restrictedNamespacesList":""
113+
}
114+
----
115+
116+
*Example*:
117+
118+
[,json]
119+
----
120+
{
121+
"enabled":true,
122+
"whitelistedNamespacesList":"namespace1,namespace2,namespace3",
123+
"privilegedNamespacesList":"privileged-ns1,privileged-ns2",
124+
"restrictedNamespacesList":"restricted-ns1,restricted-ns2"
125+
}
126+
----
127+
98128
=== `cluster-registration-url`
99129

100130
*Definition*: JSON object used to import the {harvester-product-name} cluster into {rancher-product-name} for multi-cluster management.

versions/v1.8/modules/en/pages/integrations/rancher/csi-driver.adoc

Lines changed: 165 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
= Harvester CSI Driver
2-
:revdate: 2026-06-03
2+
:revdate: 2026-06-09
33
:page-revdate: {revdate}
44

55
The Harvester Container Storage Interface (CSI) driver provides a standard CSI interface used by guest Kubernetes clusters. It connects to the {harvester-product-name} cluster and hot-plugs volumes to the virtual machines to provide native storage performance.
@@ -510,6 +510,170 @@ Starting with *v0.1.25*, the Harvester CSI Driver supports https://kubernetes.io
510510
* Harvester CSI Driver v0.1.25 or later
511511
* The CSI snapshot controller and the required manifests are properly deployed on the guest cluster. These components are deployed by default on RKE2.
512512

513+
== Volume backups
514+
515+
Starting with **v0.1.28**, the Harvester CSI Driver supports remote volume backup and restore for guest Kubernetes clusters. This feature allows you to back up a PersistentVolumeClaim (PVC) to the {harvester-product-name} backup target, and subsequently restore it to either the source guest cluster or a different guest cluster running on the same {harvester-product-name} cluster.
516+
517+
=== Prerequisites
518+
519+
* {harvester-product-name} v1.8 or later
520+
* Harvester CSI Driver v0.1.28 or later
521+
* The CSI snapshot controller, along with its required CRDs and deployment manifests, is properly deployed on the guest cluster.
522+
* A backup target is configured and ready on the {harvester-product-name} cluster.
523+
524+
To verify the status of the CSI snapshot controller and the required CRDs, run the following commands on RKE2:
525+
526+
[,shell]
527+
----
528+
$ kubectl -n kube-system get po -lapp.kubernetes.io/name=rke2-snapshot-controller
529+
NAME READY STATUS RESTARTS AGE
530+
rke2-snapshot-controller-858d65d54-nvlfq 1/1 Running 0 5d17h
531+
532+
$ kubectl get crd --show-labels | grep -i volumesnapshot
533+
volumesnapshotclasses.snapshot.storage.k8s.io 2026-04-16T23:26:24Z app.kubernetes.io/managed-by=Helm
534+
volumesnapshotcontents.snapshot.storage.k8s.io 2026-04-16T23:26:24Z app.kubernetes.io/managed-by=Helm
535+
volumesnapshots.snapshot.storage.k8s.io 2026-04-16T23:26:24Z app.kubernetes.io/managed-by=Helm
536+
----
537+
538+
=== Creating a volume backup
539+
540+
. Create a `VolumeSnapshotClass` for backups on the guest cluster.
541+
+
542+
[,yaml]
543+
----
544+
apiVersion: snapshot.storage.k8s.io/v1
545+
deletionPolicy: Delete
546+
driver: driver.harvesterhci.io
547+
kind: VolumeSnapshotClass
548+
metadata:
549+
name: harvester-backup
550+
parameters:
551+
type: backup
552+
----
553+
554+
. Create a `VolumeSnapshot` for the source PVC.
555+
+
556+
[,yaml]
557+
----
558+
apiVersion: snapshot.storage.k8s.io/v1
559+
kind: VolumeSnapshot
560+
metadata:
561+
name: snapshot-fs-vol
562+
namespace: default
563+
spec:
564+
volumeSnapshotClassName: harvester-backup
565+
source:
566+
persistentVolumeClaimName: fs-vol
567+
----
568+
569+
. Wait until the `VolumeSnapshot` becomes ready to use.
570+
+
571+
[,shell]
572+
----
573+
kubectl get volumesnapshot snapshot-fs-vol -n default
574+
----
575+
+
576+
Once the `VolumeSnapshot` is ready, a corresponding `VolumeRemoteBackup` resource is automatically generated on the underlying {harvester-product-name} cluster for restore operations.
577+
578+
. On the {harvester-product-name} cluster, retrieve a list of the generated `VolumeRemoteBackup` resources.
579+
+
580+
[,shell]
581+
----
582+
kubectl get volumeremotebackups -A
583+
----
584+
585+
=== Restoring a backup on the same guest cluster
586+
587+
. Create a new PVC and set its `spec.dataSource` to the backup `VolumeSnapshot`.
588+
+
589+
[,yaml]
590+
----
591+
apiVersion: v1
592+
kind: PersistentVolumeClaim
593+
metadata:
594+
name: restore-fs-vol
595+
namespace: default
596+
spec:
597+
accessModes:
598+
- ReadWriteOnce
599+
resources:
600+
requests:
601+
storage: 2Gi
602+
storageClassName: harvester
603+
dataSource:
604+
apiGroup: snapshot.storage.k8s.io
605+
kind: VolumeSnapshot
606+
name: snapshot-fs-vol
607+
volumeMode: Filesystem
608+
----
609+
610+
. Once the PVC is bound, mount it to a pod and verify that the restored data is intact.
611+
612+
=== Restoring a backup on a different guest cluster
613+
614+
You can restore a backup on a different guest cluster _running on the same {harvester-product-name} cluster_.
615+
616+
. On the source guest cluster, <<Creating a volume backup, create a backup>>.
617+
618+
. On the target guest cluster, create a `VolumeSnapshotContent` that points to the {harvester-product-name} backup handle in the format `backup:<VolumeRemoteBackup namespace>/<VolumeRemoteBackup name>`.
619+
+
620+
[,yaml]
621+
----
622+
apiVersion: snapshot.storage.k8s.io/v1
623+
kind: VolumeSnapshotContent
624+
metadata:
625+
name: backup-fs-vol-vsc
626+
spec:
627+
deletionPolicy: Delete
628+
driver: driver.harvesterhci.io
629+
source:
630+
snapshotHandle: backup:<VolumeRemoteBackup namespace>/<VolumeRemoteBackup name>
631+
volumeSnapshotClassName: harvester-backup
632+
volumeSnapshotRef:
633+
name: backup-fs-vol
634+
namespace: default
635+
----
636+
637+
. Create a `VolumeSnapshot` from the `VolumeSnapshotContent`.
638+
+
639+
[,yaml]
640+
----
641+
apiVersion: snapshot.storage.k8s.io/v1
642+
kind: VolumeSnapshot
643+
metadata:
644+
name: backup-fs-vol
645+
namespace: default
646+
spec:
647+
volumeSnapshotClassName: harvester-backup
648+
source:
649+
volumeSnapshotContentName: backup-fs-vol-vsc
650+
----
651+
652+
. Create a restore PVC from the `VolumeSnapshot`.
653+
+
654+
[,yaml]
655+
----
656+
apiVersion: v1
657+
kind: PersistentVolumeClaim
658+
metadata:
659+
name: restore-fs-vol
660+
namespace: default
661+
spec:
662+
accessModes:
663+
- ReadWriteOnce
664+
resources:
665+
requests:
666+
storage: 2Gi
667+
storageClassName: harvester
668+
dataSource:
669+
apiGroup: snapshot.storage.k8s.io
670+
kind: VolumeSnapshot
671+
name: backup-fs-vol
672+
volumeMode: Filesystem
673+
----
674+
675+
. Once the PVC is bound, attach it to a workload on the target guest cluster and verify that the data was restored successfully.
676+
513677
== Upgrade the CSI Driver
514678

515679
[NOTE]

0 commit comments

Comments
 (0)