CI/CD Implementation

1. Summary:

Nephio Project uses combination of Prow with additional help of GitHub Actions as a CI/CD and GitHub management solution.

Prow is a Kubernetes based CI/CD, its main features:

  • Job execution for testing, batch processing, artifact publishing

  • GitHub events are used to trigger post-PR-merge (postsubmit) jobs and on-PR-update (presubmit) jobs

  • Support for multiple execution platforms and source code review sites

  • Pluggable GitHub bot automation that implements /foo style commands and enforces configured policies/processes

  • GitHub merge automation with batch testing logic

  • Front end for viewing jobs, merge queue status, dynamically generated help information

  • Config-as-a-code with automagically applying changes.

  • Automatic GitHub org/repo administration configured in source control.

  • All benefits of running on Kubernetes - replication, load balancing, rolling updates, addons like Istio.

  • JSON structured logs.

  • Prometheus metrics.

What do we do with it:

  • Code checking for syntax, common errors, security problems

  • Licensing compliance scanning

  • Artifacts building and delivery

  • Testing environment provisioning

  • Keeping GitHub policies applied

 

2. Diagram