Skip to content

Latest commit

 

History

History
77 lines (58 loc) · 3.34 KB

README.md

File metadata and controls

77 lines (58 loc) · 3.34 KB

Phaino

Run prowjobs on your local workstation with phaino.

Plato believed that ideas and forms are the ultimate truth, whereas we only see the imperfect physical appearances of those idea.

He linkens this in his Allegory of the Cave to someone living in a cave who can only see the shadows projected on the wall from objects passing in front of a fire.

Phaino is act of making those imperfect shadows appear.

Phaino shares a prefix with Pharos, meaning lighthouse and in particular the ancient one in Alexandria.

Usage

Usage:

# Use a job from deck
bazel run //prow/cmd/phaino -- $URL # or /path/to/prowjob.yaml
# Use mkpj to create the job
bazel run //prow/cmd/mkpj -- --config-path=/path/to/prow/config.yaml --job-config-path=/path/to/prow/job/configs --job=foo > /tmp/foo
bazel run //prow/cmd/phaino -- /tmp/foo

Phaino is an interactive utility; it will prompt you for a local copy of any secrets or volumes that the Prow Job may require.

Common options

  • --grace=5m controls how long to wait for interrupted jobs before terminating
  • --print the command that runs each job without running it
  • --privileged jobs are allowed to run instead of rejected
  • --timeout=10m controls how long to allow jobs to run before interrupting them
  • --gopath=/go provides the GOPATH that is used in the container
  • --skip-volume-mounts=volume1,volume2 includes the unwanted volume mounts that are defined in the job spec
  • --extra-volume-mounts=/go/src/k8s.io/test-infra=/Users/xyz/k8s-test-infra includes the extra volume mounts needed for the container. Key is the mount path and value is the local path
  • --skip-envs=env1,env2 includes the unwanted env vars that are defined in the job spec
  • --extra-envs=env1=val1,env2=val2 includes the extra env vars needed for the container
  • --use-local-gcloud-credentials controls whether to use the same gcloud credentials as local or not
  • --use-local-kubeconfig controls whether to use the same kubeconfig as local or not

See bazel run //prow/cmd/phaino -- --help for full option list.

Usage examples

URL example

Configuration example:

  • Use mkpj to create the job and pipe this to phaino
    • For prow.k8s.io jobs use //config:mkpj
      bazel run //config:mkpj -- --job=pull-test-infra-bazel > /tmp/foo
      bazel run //prow/cmd/phaino -- /tmp/foo
      
    • Other deployments will need to clone that rule and/or pass in extra flags:
      bazel run //prow/cmd/mkpj -- --config-path=/my/config.yaml --job=my-job
      bazel run //prow/cmd/phaino -- /tmp/foo
      

If you cannot use bazel (or do not want to), use go get -u k8s.io/test-infra/prow/cmd/phaino.