Skip to content

S3CSI-225: Port prefix parsing fix from upstream PR #658 #1385

S3CSI-225: Port prefix parsing fix from upstream PR #658

S3CSI-225: Port prefix parsing fix from upstream PR #658 #1385

Workflow file for this run

name: E2E Integration Tests with RING S3
on:
push:
branches:
- main
pull_request:
branches:
- '**'
paths-ignore:
- 'docs/**'
- '*.md'
- 'mkdocs.yml'
- 'requirements.txt' # MkDocs requirements
- 'NOTICE'
- '.lychee.toml'
- '.markdownlint.yaml'
- "CLAUDE.md"
env:
KUBECONFIG: "/home/runner/.kube/config"
jobs:
dev-image:
name: Dev Image
permissions:
contents: read
packages: write
uses: scality/workflows/.github/workflows/docker-build.yaml@v2
with:
context: .
name: mountpoint-s3-csi-driver
namespace: ${{ github.repository_owner }}
tag: ${{ github.sha }}
e2e-tests:
name: v${{ matrix.ring_version }}
runs-on: ubuntu-22.04-8core
needs: dev-image
strategy:
fail-fast: false
matrix:
include:
- ring_version: "9.5"
github_varirable_name: "CLOUDSERVER_RING_9_5"
env:
CLOUDSERVER_TAG: ${{ vars[matrix.github_varirable_name] }}
steps:
- name: Check out repository
uses: actions/checkout@v5
with:
ref: ${{ github.sha }}
fetch-depth: 0
- name: CI Setup
uses: ./.github/actions/ci-setup
with:
cluster_name: helm-test-cluster
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version-file: "tests/e2e/go.mod"
cache: true
- name: Install Ginkgo CLI
run: go install github.com/onsi/ginkgo/v2/ginkgo@v2.25.2
- name: Pull Container Images and Download Go Dependencies in Parallel
run: |
CSI_IMAGE_REPOSITORY=ghcr.io/${{ github.repository }} \
CSI_IMAGE_TAG=${{ github.sha }} \
CLOUDSERVER_TAG=${CLOUDSERVER_TAG} \
mage e2e:pullImages
- name: Load CSI Driver into KIND and Deploy Cloudserver (S3)
run: |
kind load docker-image ghcr.io/${{ github.repository }}:${{ github.sha }} --name helm-test-cluster
mage e2e:deployS3
- name: Get Host IP Address
id: get_ip
run: echo "host_ip=$(hostname -I | awk '{print $1}')" >> $GITHUB_OUTPUT
- name: Configure hosts file for S3 FQDN
run: |
echo "${{ steps.get_ip.outputs.host_ip }} s3.scality.com" | sudo tee -a /etc/hosts
# Verify the hosts entry
cat /etc/hosts | grep s3.scality.com
- name: Configure CoreDNS for S3 FQDN
run: S3_HOST_IP=${{ steps.get_ip.outputs.host_ip }} mage e2e:configureCIDNS
- name: Start Kubernetes Event and Log Capture
run: mage e2e:startCapture
- name: Apply CRDs
run: mage e2e:applyCRDs
- name: Run CSI Compliance Tests
run: S3_ENDPOINT_URL=http://s3.scality.com:8000 mage e2e:complianceTest
- name: Run Scality Tests
run: |
mkdir -p test-results
S3_ENDPOINT_URL=http://s3.scality.com:8000 \
CSI_IMAGE_TAG=${{ github.sha }} \
CSI_IMAGE_REPOSITORY=ghcr.io/${{ github.repository }} \
JUNIT_REPORT=./test-results/e2e-tests-results.xml \
mage e2e:all
- name: Stop Capture and Collect Artifacts
if: always()
run: mage e2e:stopCapture
- name: Upload Test Artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: e2e-test-artifacts-${{ matrix.ring_version }}
path: artifacts
- name: Upload test results to Codecov
if: ${{ always() }}
uses: codecov/test-results-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./tests/e2e/test-results/e2e-tests-results.xml
flags: e2e_tests,cloudserver_${{ matrix.ring_version }}
slug: scality/mountpoint-s3-csi-driver
s3-tls-verify:
name: S3 TLS Verification
runs-on: ubuntu-22.04
steps:
- name: Check out repository
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: CI Setup
uses: ./.github/actions/ci-setup
with:
cluster_name: tls-test-cluster
- name: Get Host IP Address
id: get_ip
run: echo "host_ip=$(hostname -I | awk '{print $1}')" >> $GITHUB_OUTPUT
- name: Configure hosts file for S3 FQDN
run: |
echo "${{ steps.get_ip.outputs.host_ip }} s3.scality.com" | sudo tee -a /etc/hosts
- name: Deploy S3 with TLS
run: CLOUDSERVER_TAG=${{ vars.CLOUDSERVER_RING_9_5 }} mage e2e:deployS3TLS
- name: Start Kubernetes Event and Log Capture
run: mage e2e:startCapture
- name: Verify S3 TLS Endpoint Locally
run: mage e2e:verifyS3TLS
- name: Configure CoreDNS for S3 FQDN
run: S3_HOST_IP=${{ steps.get_ip.outputs.host_ip }} mage e2e:configureCIDNS
- name: Verify S3 TLS from Kubernetes Pod
run: mage e2e:verifyS3TLSInCluster
- name: Stop Capture and Collect Artifacts
if: always()
run: mage e2e:stopCapture
- name: Upload Test Artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: s3-tls-verify-artifacts
path: artifacts