Prow jobs for KubeVirt website and Tutorial repo

Introduction

Prow is a Kubernetes based CI/CD system that has several types of jobs and is used at KubeVirt project.

General PR’s, etc are tested by Prow to be validated to be reviewed by doing some sanity checks defined by developers.

In general, the internals on how it works can be checked at Life of a Prow Job.

Community repositories

There are other repos (involved in the project ecosystem) that have tests to validate the information provided on them.

The community repositories include:

Those repos contain useful information for new users, like the try-it scenarios, the Laboratories, Katacoda scenarios, Community supporting files (like logos, proposals, etc).

The jobs

For each repo we’ve some types of jobs:

  • periodical: Run automatically to validate that the repo, without further changes is still working (for example, detecting broken URL’s).
  • presubmit: Validates that the incoming PR will not break the environment.
  • post-submit: After merging the PR, the repo is still working.

Jobs are defined in the project-infra repository, for example:

Those jobs define the image to use (image and tag), and the commands to execute. In the examples above we’re using ‘Docker-in-Docker’ (dind) images and we’re targetting the KubeVirt-tutorial repository.

KubeVirt-tutorial

The jobs, when executed as part of the Prow workflow, run the commands defined in the repo itself, for example for kubevirt-tutorial check the following folder:

That folder contains three scripts: build, test_lab and tests, which do setup the environment for running the validations, that is:

  • install required software on top of the used images.
  • prepare the scripts to be executed via mdsh which extracts markdown from lab files to be executed against the cluster setup by Prow (using dind).
  • Run each script and report status

Once the execution has finished, if the final status is ok, the status is reported back to the GitHub PR so that it can be reviewed by mantainers of the repo.

Job status

The jobs executed and the logs are available on the Prow instance we use, for example:

  • https://KubeVirt.io
    • Pre-submit link checker: https://prow.apps.ovirt.org/?job=kubevirt-io-presubmit-link-checker
    • Periodical link checker: https://prow.apps.ovirt.org/?job=kubevirt-io-periodic-link-checker
  • KubeVirt Tutorial
    • Pre-submit: https://prow.apps.ovirt.org/?job=kubevirt-tutorial-presubmit-lab-testing-k8s-1.13.3
    • Periodical: https://prow.apps.ovirt.org/?job=periodic-kubevirt-tutorial-lab-testing

Wrap-up

If you find that a test should be performed to further validate the integrity and information provided, feel free to raise issues or even a PR against the project-infra repository so that we can get it improved!