-
Notifications
You must be signed in to change notification settings - Fork 177
prow: introduce prow #253
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
prow: introduce prow #253
Conversation
We found a Contributor License Agreement for you (the sender of this pull request), but were unable to find agreements for the commit author(s). If you authored these, maybe you used a different email address in the git commits than was used to sign the CLA (login here to double check)? If these were authored by someone else, then they will need to sign a CLA as well, and confirm that they're okay with these being contributed to Google. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I hope you don't expect us to review 600k lines of code :)
😂 certainly not -- advice on the right way to vendor another Git repo that
we may want to modify in the future welcome...currently approaching with
git subtrees ....
…On Fri, Jun 30, 2017 at 2:16 PM Kuat ***@***.***> wrote:
***@***.**** commented on this pull request.
I hope you don't expect us to review 600k lines of code :)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#253 (review)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ACBRUQf9Q4TaxuZMKZf0HTXo3TE75GuDks5sJWWggaJpZM4OLDo1>
.
|
This is a test. |
Jenkins job test-infra/presubmit passed |
for now axing k8s-test-infra subtree because I don't modify here, and we use the k8s-prow images now (rather than build our own from source). |
This is a test. |
Jenkins job test-infra/presubmit passed |
This is a test. |
Jenkins job test-infra/presubmit passed |
This is a test. |
Jenkins job test-infra/presubmit passed |
This is a test. |
Jenkins job test-infra/presubmit passed |
This is a test. |
Jenkins job test-infra/presubmit passed |
This is a test. |
1 similar comment
This is a test. |
Jenkins job test-infra/presubmit passed |
This is a test. |
Jenkins job test-infra/presubmit passed |
This is a test. |
Jenkins job test-infra/presubmit passed |
This is a test. |
Jenkins job test-infra/presubmit passed |
This is a test. |
Jenkins job test-infra/presubmit passed |
This is a test. |
Jenkins job test-infra/presubmit passed |
This is a test. |
@istio-testing bazel test this |
This is a test. |
Jenkins job test-infra/presubmit passed |
This is a test. |
Jenkins job test-infra/presubmit passed |
This is a test. |
Jenkins job test-infra/presubmit passed |
docker/README.md
Outdated
@@ -0,0 +1,4 @@ | |||
This directory contains standard images maintained by Istio for test infrastructure purposes. | |||
|
|||
* prowbazel - gives an environment with git, gcloud, python, bazel, and go. It is suitable for bazel-based projects. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is this deeply tied to gcloud? Can this be run on other platforms?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reason I ask is because eventually folks would want to run tests against istio/istio on their own environments. Having a jenkins and a prow seems ripe for all sorts of issues such as test environment divergence.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The prowbazel docker image will be used in every job. We are actually uploading artifacts and logs to google cloud storage. Those would be publicly available. If folks want to upload to other cloud, they can modify this image to add new tools or create their own image. In a near future we ll probably use specific image for specific jobs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good point @rshriram -- the prowbazel docker file in particular, not tied to GCP, just a docker file (we do host it on GCR).
to reiterate as @sebastienvas mentioned, the entrypoint of the docker file uploads logs to a gcs bucket, which is google specific. the bucket is read public.
other folks running infrastructure would likely use an image that uploads logs to their preferred storage.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it's exciting to see this taking shape, nice work!
quick random question below:
docker/prowbazel/bootstrap.py
Outdated
@@ -0,0 +1,965 @@ | |||
#!/usr/bin/env python | |||
|
|||
# Copyright 2016 The Kubernetes Authors. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
any way to reference rather than copy this large file ? or did you make changes to it (which change compared to the original ? where is the original?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
prow/cluster/configmaps/config.yaml
Outdated
@@ -150,6 +150,7 @@ presubmits: | |||
|
|||
istio/test-infra: | |||
- name: test-infra-presubmit | |||
skip_report: true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why ? I'm curious to see how prow reports work and I hope it doesn't have the bug that our jenkins report has of posting a comment that triggers a lot of useless github notifications ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This diff introduces the prow/test-infra-presubmit.sh
, but other PRs on these repos don't yet have the file, and the job would fail, therefore I turned off reporting.
re: notifications, Prow does comment on the PR for test failures.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PTAL
docker/README.md
Outdated
@@ -0,0 +1,4 @@ | |||
This directory contains standard images maintained by Istio for test infrastructure purposes. | |||
|
|||
* prowbazel - gives an environment with git, gcloud, python, bazel, and go. It is suitable for bazel-based projects. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The prowbazel docker image will be used in every job. We are actually uploading artifacts and logs to google cloud storage. Those would be publicly available. If folks want to upload to other cloud, they can modify this image to add new tools or create their own image. In a near future we ll probably use specific image for specific jobs.
docker/prowbazel/Dockerfile
Outdated
ENV TEST_TMPDIR /home/bootstrap/.cache/bazel | ||
|
||
# Add bootstrap, the test harness (checks out code, captures log and status) | ||
ADD ./docker/prowbazel/bootstrap.py ${HOME} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Based on our discussion with @ldemailly, this is where you would put an URL. https://docs.docker.com/engine/reference/builder/#add. The url might something like https://raw.githubusercontent.com/kubernetes/test-infra/master/jenkins/bootstrap.py
docker/prowbazel/Makefile
Outdated
|
||
# Open shell to running prowbazel image for experimentation. | ||
run: | ||
docker run -it --entrypoint bash --privileged gcr.io/istio-testing/prowbazel:0.1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
replace istio-testing with
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good catch, done.
jobs/test-infra-presubmit.sh
Outdated
|
||
if [ "$CI" == "bootstrap" ]; then | ||
# ensure correct path | ||
mkdir -p $GOPATH/src/istio.io |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It kind of sucks that we need to do that on every job. Could we move that feature into bootstrap once we have our own fork ?
prow/README.md
Outdated
. | ||
├── anotherdir | ||
│ └── ... | ||
├── jobs |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let s rename this to prow
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
prow/cluster/configmaps/config.yaml
Outdated
@@ -0,0 +1,102 @@ | |||
--- |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let s move this to prow/config.yaml as discussed.
prow/cluster/configmaps/plugins.yaml
Outdated
@@ -0,0 +1,9 @@ | |||
# Plugin repository whitelist. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let move this to prow/plugins.yaml as discussed.
prow/Makefile
Outdated
kubectl apply -f cluster/deck_deployment.yaml | ||
|
||
deck-service: get-cluster-credentials | ||
kubectl create -f cluster/deck_service.yaml |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why not make everything apply?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good call. done
@@ -0,0 +1,6 @@ | |||
apiVersion: extensions/v1beta1 | |||
kind: ThirdPartyResource |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should probably switch to CustomResourceDefinition
since TPRs are deprecated. I'd expect the upstream project to do the work fairly soon.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice catch. I created an issue upstream, I assume the plan is to make the switch.
@istio-testing bazel test this |
1 similar comment
@istio-testing bazel test this |
@istio-testing bazel test this |
the prow results for the presubmit are here. |
CLAs look good, thanks! |
This is a test. |
Jenkins job test-infra/presubmit passed |
CLAs look good, thanks! |
This is a test. |
Jenkins job test-infra/presubmit passed |
@nlandolfi: I updated Prow config for you!I updated Prow plugins config for you!. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
Introduce prow related resources and configurations.
Update 7/6/17: prow is running, view the simple deck frontend here. It is running as the
prow
cluster on istio-testing, so with access to the project one can also get the kubectl context and get the pods:This PR adds the test-infra-presubmit job file. This results of test runs from this file are here. Notice that we are piggy-backing on kubernetes instance of
gubernator
, a UI for viewing job results.I have turned off public reporting for all prow jobs configured in
prow/cluster/configmaps/config.yaml
for the moment, because it was needlessly failing on other PRs (c.f. 254.My intention is to create a pull request against pilot adding its job files in a similar manner. I will wait to see that those are passing (while keeping reporting off), then once that merges master we can turn on the public reporting. As we can turn on public reporting once this PR goes to master (because the jobs/test-infra-presubmit.sh file will be in master).
TODO: