Skip to content

Instantly share code, notes, and snippets.

@juniorz
Last active May 24, 2019 13:38
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 juniorz/2f3730ae6627ab980d52853de89734f0 to your computer and use it in GitHub Desktop.
Save juniorz/2f3730ae6627ab980d52853de89734f0 to your computer and use it in GitHub Desktop.
CI/CD in Kubernetes

Kubernetes based/native CI/CD

Prow

Components

See: https://github.com/kubernetes/test-infra/blob/master/prow/cmd/README.md

  • ProwJob: CRD that represents a job.

    • PipelineRunSpec defines how a PipelineRun will be created by the pipeline controller.
    • Agent is used to determine which controller will take care of this job:
      • empty -> plank (which uses the pod_spec field).
      • KnativeBuildAgent -> build (which uses the build_spec field).
      • JenkinsAgent -> jenkins
    • phaino can be used to run a ProwJob in your machine.
  • hook: dispatches Github web hooks to (prow) plugins.

  • Prow plugin: Can be used to trigger jobs, implement 'slash' commands (/lgtm), etc.

    • TODO: list current plugins and explain what they can do.
  • plank: manages the job execution and lifecycle for jobs running in k8s.

  • horologium: trigger periodic jobs.

  • sinker: cleans up old jobs.

  • tide: merge automation

  • crier: reports for prowjobs status changes.

  • peribolos: manages github org settings, teams and memberships via a yaml file.

  • deck: web dashboard for Prow. Example: https://prow.k8s.io/

  • spyglass: artifact viewer framework for Prow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment