The Istio module contains several pipelines that run on pull requests, on the main branch, on the release branch, and periodically. They perform various tasks such as running a linter, executing unit tests with code coverage, generating artifacts for development and production purposes, and running integration tests. The integration tests ensure the functional correctness of Kyma Istio Operator and verify if upgrading to the new version of Kyma Istio Operator is possible.
To ensure that the required actions always run, the Istio module uses a GitHub ruleset. This enforces the execution of all jobs that determine whether a particular workflow should start.
By default, GitHub Actions that don't run because of reasons other than being skipped in the if
statement have the Pending
status and do not appear as a check in a PR. The ruleset acts as a safeguard to prevent situations when, for example, an external action is not allowed to run. In such cases, the ruleset ensures that the PR cannot be merged unless the check is executed and has a status of either Skipped
or Success
.
The following CI jobs are part of the development cycle.
Name | Description |
---|---|
Pull Request pipeline / Build manager image |
Builds the manager image so that the image-dependent jobs can be executed. |
Pull Request integration tests / Istio integration test |
Executes the integration test suites for the Istio module on a k3d cluster. |
Pull Request integration tests / Istio integration test evaluation |
Executes the evaluation integration test suite for the Istio module on a k3d cluster. |
Pull Request integration tests / Kubernetes version compatibility test |
Executes the integration test suites for the Istio module and checks if any incompatibilities occurred during the execution. |
Pull Request integration tests / Istio upgrade integration test |
Executes the upgrade integration test suite for the Istio module on k3d cluster and verifies if the existing release can be successfully upgraded to the new version without downtime. |
Pull Request unit & lint / lint |
Performs linting. |
Pull Request unit & lint / Run unit tests |
Runs unit tests with code coverage information. |
Pull Request unit & lint / Run unit tests with experimental build tag |
Runs unit tests with experimental build tag. |
PR Integration Gardener / Build and push manager image |
Builds the managers's image and pushs it to a GCP Artifact Registry so that the jobs running tests on Gardener clusters can be executed. |
PR Integration Gardener / Istio integration test GCP |
Executes the integration test suites for the Istio module on a GCP Gardener cluster. |
PR Integration Gardener / Istio integration test AWS specific |
Executes the integration test suite specific for AWS Hyperscaler. |
PR Integration Gardener / Istio integration test GCP specific |
Executes the integration test suite specific for GCP Hyperscaler. |
UI Tests / Run UI tests |
Runs UI tests for Busola extensions of the Istio module. |
Workflow validation / Ensure SHA pinned actions |
Verifies that all external actions are pinned to a commit. |
Pull Request pipeline / gitleaks |
Runs the Gitleaks scan to detect any leaks of secrets. |
Sync External Images / sync-external-images |
Executes image syncer to import external images. |
The following CI jobs are part of the development cycle.
Name | Description |
---|---|
Build manager image / Build manager image |
Builds Kyma Istio Operator's image and pushes it to the dev registry. |
Dispatch integration tests / Istio integration test |
Executes the integration test suites for the Istio module on a k3d cluster. |
Dispatch integration tests / Istio integration test evaluation |
Executes the evaluation integration test suite for the Istio module on a k3d cluster. |
Dispatch integration tests / Kubernetes version compatibility test |
Executes the integration test suites for the Istio module and checks if any incompatibilities occurred during the execution. |
Dispatch integration tests / Istio upgrade integration test |
Executes the upgrade integration test suite for the Istio module on k3d cluster and verifies if the existing release can be successfully upgraded to the new version without downtime. |
Dispatch unit test / Lint |
Performs linting. |
Dispatch unit test / Run unit tests |
Runs unit tests with code coverage information. |
Dispatch unit test / Run unit tests with experimental build tag |
Runs unit tests with experimental build tag. |
Dispatch Gardener integration tests / Istio integration test GCP |
Executes the integration test suites for the Istio module on a GCP Gardener cluster. |
Dispatch Gardener integration tests / Istio integration test AWS specific |
Executes the integration test suite specific for AWS Hyperscaler. |
Dispatch Gardener integration tests / Istio integration test GCP specific |
Executes the integration test suite specific for GCP Hyperscaler. |
Dispatch UI tests / Run UI tests |
Runs UI tests for Busola extensions of the Istio module. |
Dispatch verify-commit-pins / Ensure SHA pinned actions |
Verifies that all external actions are pinned to a commit. |
The following CI jobs run when you merge changes to the main
branch.
Name | Description |
---|---|
main integration tests / Build manager image |
Builds Kyma Istio Operator's image and pushes it to the prod registry. |
main integration tests / Build manager image - experimental |
Builds Kyma Istio Operator's experimental image and pushes it to the prod registry. |
main integration tests / Istio integration test |
Executes the integration test suites for the Istio module on a k3d cluster. |
main integration tests / Istio integration test AWS specific |
Executes the integration test suite specific for AWS Hyperscaler. |
main integration tests / Istio integration test GCP specific |
Executes the integration test suite specific for AWS Hyperscaler. |
main integration tests / Istio integration test AWS |
Executes the integration test suites for the Istio module on a AWS Gardener cluster. |
main integration tests / Istio integration test GCP |
Executes the integration test suites for the Istio module on a GCP Gardener cluster. |
main integration tests / Istio upgrade integration tests |
Executes the upgrade integration test suite of Istio Module on GCP Gardener cluster and verifies if the existing release can be successfully upgraded to the new version without downtime. |
main integration tests / Slack Notification |
Sends a Slack notification to the team's channel if any pipelines fail on the main branch. |
The following CI jobs run when you merge changes to the main
branch.
Name | Description |
---|---|
Sync External Images / sync-external-images |
Executes image syncer to import external images. |
The following CI jobs generate release artifacts and verify the functional correctness of Kyma Istio Operator.
Name | Description |
---|---|
Create Release / Check release prerequisites |
Checks whether all pre-requesites for release are met |
Create Release / build-image |
Builds Kyma Istio Operator's image on the release and pushes it to the prod registry. |
Create Release / build-image-experimental |
Builds Kyma Istio Operator's experimental image on the release and pushes it to the prod registry. |
Create Release / Create draft release |
Create a draft release that will be updated with release artifacts |
Create Release / Publish release |
Publish the previously created draft release |
The following CI jobs are scheduled to run at specific times.
Name | Description |
---|---|
main performance tests / Build manager image |
Builds Kyma Istio Operator's image and pushes it to the prod registry. |
main performance tests / Istio performance test |
Runs Istio Manager's performance tests every day at 12:00 AM on a Gardener GCP cluster. |
UI Tests Periodic / Build manager image |
Builds Kyma Istio Operator's image and pushes it to the prod registry. |
UI Tests Periodic / Run UI tests |
Runs UI tests for Busola extensions of Istio Module. |
UI Tests Periodic / Slack Notification |
Sends a Slack notification to the team's channel if any pipelines fail in the workflow. |