Skip to content

Instantly share code, notes, and snippets.

@palnabarun
Created May 18, 2022 05:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save palnabarun/fcc4cc527a765980027e7d5b38a96226 to your computer and use it in GitHub Desktop.
Save palnabarun/fcc4cc527a765980027e7d5b38a96226 to your computer and use it in GitHub Desktop.

footer: KubeCon + CloudNativeCon Europe 2022 build-lists: true slidenumbers: true

Prow! Leveraging Developer Centric CI for your OSS project!

Arsh Sharma & Nabarun Pal


$ whoarewe


[.build-lists: false]

Arsh Sharma

  • Developer Experience Engineer at Okteto
  • Kubernetes Contributor

[.build-lists: false]

Nabarun Pal

  • Senior Engineer at VMware
  • Kubernetes Release Engineering
  • Kubernetes Code of Conduct Committee

What is Prow?

  • Kubernetes based CI/CD system
  • GitHub automation through policies
  • Configuration as code
  • Highly pluggable
  • ChatOps via /honk style commands

^ -- Nabarun -- ^ Being based on top of Kubernetes, it brings us all the benefits that any application running on Kubernetes has like scalability, replication, rolling updates. ^ Prow can manage lifecycle of a Pull Request like Review Approvals and Merging through something called Tide, which we have a look at later. You can define policies on who can on what conditions are satisfied in the PR and by the author. ^ Prow is configured through structures written in YAML files. The configuration can either reside in the same repo as code or can reside in a separate repo common to all of your repositories. ^ Prow ships with an amazing plugin ecosystem which can be extended. We have plugins which do a range of jobs ranging from interacting with tests to reviewing PRs to things like commenting :this-is-fine: picture of the PR. ^ You can interact with those plugins from the GitHub UI itself by using /honk style commands. Arsh is going to show you in the next section how we interact with our CI.


ChatOps

  • /yolo` style commands which allow interacting with GitHub issues and PRs
  • Assign issues to contributors or PRs to reviewers
  • Label issues and PRs
  • Provide approval for PRs
  • Merge PRs
  • Run tests for a PR
  • A lot more stuff!

^ -- Arsh -- ^ Notes needed!


Architecture

^ -- Nabarun -- ^ Let's try to understand the flow of data by a typical event of when someone submits a Pull Request on a repository that Prow has been configured to listen on GitHub.


Architecture

Image 1


Architecture

Image N


Tide


Testgrid


Configuration

^ -- Arsh --


Inrepo

  • Point 1
  • Point 2
  • Point 3

^ -- Arsh --


Centralizing configuration

  • Point 1
  • Point 2
  • Point 3

^ -- Arsh --


Deploying your own instance of Prow

^ -- Arsh/Nabarun --


Benefits of using Prow

  • Enables Effective Collaboration
  • Accessible!
  • New Contributor Friendly

^ You are spending 25 mins listening to us, but what are you getting out of it


[.build-lists: true]

Contribute

Come join us in Kubernetes SIG Testing to maintain Prow.

^ Like any other community driven project, SIG Testing needs your help. If you are using Prow in any capacity, we would like to hear from you and see contributions from you in improving Prow.


[.hide-footer] [.slidenumbers: false]

[fit] Thank You!

^ Thank you for joining us! We would be in the hallway. Feel free to ask any questions that we missed here.


$ gcloud iam service-accounts create prow-gcs-publisher

$ identifier="$(gcloud iam service-accounts list --filter 'name:prow-gcs-publisher' --format 'value(email)')"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment