Skip to content

ci: nested SDS E2E on skeleton #1821

ci: nested SDS E2E on skeleton

ci: nested SDS E2E on skeleton #1821

Workflow file for this run

# Copyright 2025 Flant JSC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: E2E Storage Matrix
on:
push:
branches:
- chore/ci/e2e-matrix-skeleton
pull_request:
types: [opened, reopened, synchronize, labeled, unlabeled]
branches:
- main
- chore/ci/e2e-matrix-skeleton
schedule:
- cron: "30 2 * * *"
workflow_dispatch:
permissions:
contents: read
env:
E2E_K8S_URL: https://api.e2e.virtlab.flant.com
jobs:
setup:
name: Setup (${{ matrix.profile }})
runs-on: ubuntu-latest
strategy:
matrix:
include:
- profile: sds-replicated-volume
storage_name: sds
storage_class: linstor-thin-r2
parent_storage_class: linstor-thin-r1-immediate
image_storage_class: linstor-thin-r1-immediate
attach_disk_size: 10Gi
data_disk_count: 2
concurrency:
group: setup-${{ github.head_ref || github.ref_name }}-${{ matrix.profile }}
cancel-in-progress: true
env:
RUN_ID: nightly-nested-e2e-${{ matrix.storage_name }}-${{ github.run_number }}
PROFILE: ${{ matrix.profile }}
STORAGE_CLASS: ${{ matrix.storage_class }}
PARENT_STORAGE_CLASS: ${{ matrix.parent_storage_class }}
IMAGE_STORAGE_CLASS: ${{ matrix.image_storage_class }}
ATTACH_DISK_SIZE: ${{ matrix.attach_disk_size }}
DATA_DISK_COUNT: ${{ matrix.data_disk_count }}
steps:
- uses: actions/checkout@v4
- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: Install Helm
uses: azure/[email protected]
with:
version: v3.17.2
- name: Install kubectl
uses: azure/setup-kubectl@v4
with:
version: "latest"
- name: Setup d8
uses: werf/trdl/actions/[email protected]
with:
repo: d8
url: https://deckhouse.ru/downloads/deckhouse-cli-trdl/
root-version: 1
root-sha512: 343bd5f0d8811254e5f0b6fe292372a7b7eda08d276ff255229200f84e58a8151ab2729df3515cb11372dc3899c70df172a4e54c8a596a73d67ae790466a0491
group: 0
channel: stable
- name: Install yq
run: |
echo "Installing yq..."
curl -L -o /usr/local/bin/yq https://github.com/mikefarah/yq/releases/download/v4.44.1/yq_linux_amd64
chmod +x /usr/local/bin/yq
- name: Setup nested environment
env:
RUN_ID: ${{ env.RUN_ID }}
PROFILE: ${{ env.PROFILE }}
STORAGE_CLASS: ${{ env.STORAGE_CLASS }}
PARENT_STORAGE_CLASS: ${{ env.PARENT_STORAGE_CLASS }}
IMAGE_STORAGE_CLASS: ${{ env.IMAGE_STORAGE_CLASS }}
ATTACH_DISK_SIZE: ${{ env.ATTACH_DISK_SIZE }}
DATA_DISK_COUNT: ${{ matrix.data_disk_count }}
REGISTRY_DOCKER_CFG: ${{ secrets.DEV_REGISTRY_DOCKER_CFG }}
API_URL: ${{ env.E2E_K8S_URL }}
SA_TOKEN: ${{ secrets.E2E_NESTED_SA_SECRET }}
working-directory: ci/dvp-e2e
run: |
task ci:setup-nested-env
cleanup:
name: Cleanup (${{ matrix.profile }})
needs: setup
if: always()
runs-on: ubuntu-latest
strategy:
matrix:
include:
- profile: sds-replicated-volume
storage_name: sds
storage_class: linstor-thin-r2
parent_storage_class: linstor-thin-r1-immediate
image_storage_class: linstor-thin-r1-immediate
attach_disk_size: 10Gi
data_disk_count: 2
env:
CLEANUP_PREFIX: ${{ vars.CLEANUP_PREFIX || 'nightly-nested-e2e-' }}
steps:
- uses: actions/checkout@v4
- name: Install Task
uses: arduino/setup-task@v2
with:
version: 3.x
- name: Install kubectl
uses: azure/setup-kubectl@v4
with:
version: "latest"
- name: Cleanup test namespaces
working-directory: ci/dvp-e2e
run: |
task cleanup:namespaces \
PREFIX="${CLEANUP_PREFIX}" \
API_URL="${E2E_K8S_URL}" \
SA_TOKEN="${{ secrets.E2E_NESTED_SA_SECRET }}"