Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

General v1.6.0 updates #25

Merged
merged 3 commits into from
Feb 28, 2024
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
81 changes: 52 additions & 29 deletions .github/workflows/build-test-publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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 }}
Expand Down Expand Up @@ -271,27 +271,36 @@ 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
with:
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

Expand Down Expand Up @@ -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
Expand All @@ -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 }}
Expand All @@ -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
Expand Down Expand Up @@ -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
18 changes: 17 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
--------------------
Expand Down
32 changes: 18 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

<a name="notable-features"></a>
### Notable Features
Expand Down Expand Up @@ -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+
Expand Down
2 changes: 1 addition & 1 deletion deploy/k8s/bases/csi-beegfs-controller.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion deploy/k8s/bases/csi-beegfs-node.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion deploy/nomad/controller.nomad
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
2 changes: 1 addition & 1 deletion deploy/nomad/node.nomad
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
Loading
Loading