Skip to content

Commit

Permalink
Merge pull request #25 from ThinkParQ/iamjoemccormick/general-1.6-upd…
Browse files Browse the repository at this point in the history
…ates

General v1.6.0 updates
  • Loading branch information
iamjoemccormick authored Feb 28, 2024
2 parents a2911cd + 25ac7d7 commit e442ca0
Show file tree
Hide file tree
Showing 15 changed files with 164 additions and 117 deletions.
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/[email protected]

- 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

0 comments on commit e442ca0

Please sign in to comment.