Skip to content

Schedule Daily

Schedule Daily #549

# This workflow is responsible for performance, UI and compatibility tests
name: Schedule Daily
permissions:
contents: read
on:
schedule:
- cron: '0 4 * * *' # Run every day at 5:00 CET (4:00 UTC)
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref_name }}
cancel-in-progress: true
env:
IMAGE_NAME: "europe-docker.pkg.dev/kyma-project/prod/istio/main/istio-manager"
jobs:
get-image:
name: Get manager image
runs-on: ubuntu-latest
outputs:
image: "${{ steps.get-image.outputs.image }}"
operator_version: "${{ steps.get-image.outputs.operator_version }}"
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- id: get-image
name: Get image for tests
shell: bash
run: |
commit_id=$("./hack/ci/get-latest-sha.sh" "${IMAGE_NAME}")
image="${IMAGE_NAME}:${commit_id}"
operator_version="${commit_id}"
echo "image=${image}"
echo "image=${image}" >> $GITHUB_OUTPUT
echo "operator_version=${operator_version}"
echo "operator_version=${operator_version}" >> $GITHUB_OUTPUT
- id: check-image
name: Check whether image exists
shell: bash
run: docker pull "${{ steps.get-image.outputs.image }}"
#############################################
# Performance tests
# Run on: AWS
#############################################
istio-performance-test:
name: Istio performance test
environment:
name: e2e
deployment: false
runs-on: ubuntu-latest
needs: [ get-image ]
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/perf-test-gardener
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
manager_image: ${{ needs.get-image.outputs.image }}
gardener_secret: ${{ secrets.GARDENER_TOKEN }}
gardener_project_name: ${{ vars.GARDENER_PROJECT_NAME }}
gardener_configuration: aws-ipv4
#############################################
# UI tests
# Run on: K3D
#############################################
run-ui-tests-periodic:
name: Run UI tests
runs-on: ubuntu-latest
needs: [ get-image ]
steps:
- uses: actions/checkout@v7
- uses: actions/setup-go@v7
with:
go-version-file: "go.mod"
- name: Run tests
run: |
sudo echo "127.0.0.1 local.kyma.dev" | sudo tee -a /etc/hosts
wget -q -O - https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | sudo bash
docker pull ${{ needs.get-image.outputs.image }}
IMG="${{ needs.get-image.outputs.image }}" ./tests/ui/scripts/k3d-ci-kyma-dashboard-integration.sh stage
- uses: actions/upload-artifact@v7
if: always()
name: Export Cypress output
with:
name: cypress
path: tests/ui/cypress/
#############################################
# Compatibility tests
# Run on: AWS, K3D
#############################################
k8s-compatibility-check-k3d:
name: Kubernetes version compatibility test - K3D
runs-on: ubuntu-latest
needs: [ get-image ]
strategy:
fail-fast: false
matrix:
test_make_target:
- "installation-e2e-test"
- "configuration-e2e-test"
- "mesh_communication-e2e-test"
- "observability-e2e-test"
- "extauth-e2e-test"
- "egress-e2e-test"
- "networkpolicy-e2e-test"
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/k8s-compatibility-test
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
operator_image_name: ${{ needs.get-image.outputs.image }}
operator_version: ${{ needs.get-image.outputs.operator_version }}
test_make_target: ${{ matrix.test_make_target }}
k8s-compatibility-check-aws:
name: Kubernetes version compatibility test - AWS
environment:
name: e2e
deployment: false
runs-on: ubuntu-latest
needs: [ get-image ]
strategy:
fail-fast: false
matrix:
test_make_target:
- "installation-e2e-test"
- "configuration-e2e-test"
- "mesh_communication-e2e-test"
- "observability-e2e-test"
- "extauth-e2e-test"
- "egress-e2e-test"
- "networkpolicy-e2e-test"
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/k8s-compatibility-test-aws
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
manager_image: ${{ needs.get-image.outputs.image }}
operator_version: ${{ needs.get-image.outputs.operator_version }}
test_make_target: ${{ matrix.test_make_target }}
gardener_secret: ${{ secrets.GARDENER_TOKEN }}
gardener_project_name: ${{ vars.GARDENER_PROJECT_NAME }}
gardener_configuration: aws-ipv4-compatibility
istio-e2e-test-k3d:
name: Istio E2E test K3D
runs-on: ubuntu-latest
needs: [ get-image ]
strategy:
fail-fast: false
matrix:
test-make-target:
- "installation-e2e-test"
- "configuration-e2e-test"
- "mesh_communication-e2e-test"
- "observability-e2e-test"
- "extauth-e2e-test"
- "egress-e2e-test"
- "networkpolicy-e2e-test"
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/e2e-test-k3d
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
test_make_target: ${{ matrix.test-make-target }}
operator-image-name: ${{ needs.get-image.outputs.image }}
operator-version: ${{ needs.get-image.outputs.operator_version }}
servers-memory: "16"
agents: 2
istio-restarter-e2e-test-k3d:
name: Istio Restarter E2E test K3D
runs-on: ubuntu-latest
needs: [ get-image ]
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/e2e-test-k3d
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
test_make_target: "restarter-e2e-test"
operator-image-name: ${{ needs.get-image.outputs.image }}
operator-version: ${{ needs.get-image.outputs.operator_version }}
servers-memory: "16"
agents: 2
kwok: 'true'
kwok-nodes: 50
istio-e2e-test-evaluation-k3d:
name: Istio E2E test (evaluation) K3D
runs-on: ubuntu-latest
needs: [ get-image ]
strategy:
fail-fast: false
matrix:
test-make-target: [ "evaluation-e2e-test" ]
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/e2e-test-k3d
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
test_make_target: ${{ matrix.test-make-target }}
operator-image-name: ${{ needs.get-image.outputs.image }}
operator-version: ${{ needs.get-image.outputs.operator_version }}
servers-memory: "4"
agents: 0
istio-e2e-test-calico-k3d:
name: Istio E2E test (Calico) K3D
runs-on: ubuntu-latest
needs: [ get-image ]
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/e2e-test-k3d
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
test_make_target: "networkpolicy-e2e-test"
operator-image-name: ${{ needs.get-image.outputs.image }}
operator-version: ${{ needs.get-image.outputs.operator_version }}
servers-memory: "16"
agents: 0
calico: "true"
istio-e2e-test-experimental-k3d:
name: Istio E2E test (experimental) K3D
runs-on: ubuntu-latest
needs: [ get-image ]
strategy:
fail-fast: false
matrix:
test-make-target: [ "ambient-e2e-test" ]
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/e2e-test-k3d
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
test_make_target: ${{ matrix.test-make-target }}
operator-image-name: ${{ needs.get-image.outputs.image }}-experimental
operator-version: ${{ needs.get-image.outputs.operator_version }}-experimental
servers-memory: "16"
agents: 2
istio-upgrade-test-k3d:
name: Istio upgrade test K3D
runs-on: ubuntu-latest
needs: [ get-image ]
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- uses: ./.github/actions/e2e-test-k3d
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TARGET_BRANCH: ${{ github.ref_name }}
with:
test_make_target: "upgrade-test"
operator-version: ${{ needs.get-image.outputs.operator_version }}
operator-image-name: ${{ needs.get-image.outputs.image }}
servers-memory: "16"
agents: 2
istio-e2e-test-fips-k3d:
name: Istio E2E test (FIPS) K3D
environment:
name: e2e
deployment: false
runs-on: ubuntu-latest
needs: [ get-image ]
strategy:
fail-fast: false
matrix:
test-make-target:
- "installation-e2e-test"
- "smoke_test-e2e-test"
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/e2e-test-k3d
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
FIPS_REGISTRY_SA: ${{ secrets.FIPS_REGISTRY_SA }}
KYMA_FIPS_MODE_ENABLED: "true"
REGISTRY_SECRET_NAME: "regcred"
with:
test_make_target: ${{ matrix.test-make-target }}
operator-image-name: ${{ needs.get-image.outputs.image }}
operator-version: ${{ needs.get-image.outputs.operator_version }}
servers: 3
servers-memory: "16"
agents: 0
calico: "true"
istio-e2e-test-aws:
name: Istio E2E test AWS
environment:
name: e2e
deployment: false
runs-on: ubuntu-latest
needs: [ get-image ]
strategy:
fail-fast: false
matrix:
test_make_target:
- "xff_header-e2e-test"
- "trustdomain-e2e-test"
- "networkpolicy-e2e-test"
- "dnsproxying-e2e-test"
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/e2e-test-gardener
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
manager_image: ${{ needs.get-image.outputs.image }}
gardener_secret: ${{ secrets.GARDENER_TOKEN }}
gardener_project_name: ${{ vars.GARDENER_PROJECT_NAME }}
gardener_configuration: aws-ipv4
test_ip_family: ipv4
test_make_target: ${{ matrix.test_make_target }}
operator_version: ${{ needs.get-image.outputs.operator_version }}
istio-e2e-test-gcp:
name: Istio E2E test GCP
environment:
name: e2e
deployment: false
runs-on: ubuntu-latest
needs: [ get-image ]
strategy:
fail-fast: false
matrix:
test_make_target:
- "xff_header-e2e-test"
- "trustdomain-e2e-test"
- "networkpolicy-e2e-test"
- "dnsproxying-e2e-test"
steps:
- uses: actions/checkout@v7
- uses: ./.github/actions/e2e-test-gardener
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
manager_image: ${{ needs.get-image.outputs.image }}
gardener_secret: ${{ secrets.GARDENER_TOKEN }}
gardener_project_name: ${{ vars.GARDENER_PROJECT_NAME }}
gardener_configuration: gcp-ipv4
test_make_target: ${{ matrix.test_make_target }}
operator_version: ${{ needs.get-image.outputs.operator_version }}
slack_failed_notification:
name: Slack Notification
environment:
name: notifications
deployment: false
runs-on: ubuntu-latest
if: ${{ failure() }}
needs:
- istio-performance-test
- run-ui-tests-periodic
- k8s-compatibility-check-k3d
- k8s-compatibility-check-aws
- istio-e2e-test-k3d
- istio-e2e-test-evaluation-k3d
- istio-e2e-test-calico-k3d
- istio-e2e-test-experimental-k3d
- istio-upgrade-test-k3d
- istio-e2e-test-gcp
- istio-e2e-test-aws
- istio-e2e-test-fips-k3d
steps:
- uses: actions/checkout@v7
- name: Notify
uses: ./.github/actions/slack-notification-failed-workflow
with:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}