Skip to content
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

Use Tekton for at least one Prow triggered job #922

Closed
bobcatfish opened this issue May 28, 2019 · 4 comments
Closed

Use Tekton for at least one Prow triggered job #922

bobcatfish opened this issue May 28, 2019 · 4 comments
Assignees
Labels
area/test-infra Issues or PRs related to the testing infrastructure area/yamls This issue involves writing a lot of yaml

Comments

@bobcatfish
Copy link
Collaborator

Expected Behavior

We want to use Tekton to test Tekton! And now thanks to kubernetes/test-infra#11888 we can use Prow to trigger PipelineRuns instead of prow jobs :D

So this issue is about starting to migrate over to this by picking (at least) one of the jobs we trigger view ProwJobs (https://github.com/tektoncd/plumbing/blob/master/prow/config.yaml) and updating it to create a PipelineRun instead. (Who knows, maybe we'll take care of some other issues in #267 along the way!)

Actual Behavior

All jobs are defined as Prow Jobs in https://github.com/tektoncd/plumbing/blob/master/prow/config.yaml.

Additional Info

@bobcatfish bobcatfish added the area/yamls This issue involves writing a lot of yaml label May 28, 2019
@bobcatfish bobcatfish added this to the Pipelines 0.5 🐱 milestone May 28, 2019
@vdemeester vdemeester added the area/test-infra Issues or PRs related to the testing infrastructure label May 29, 2019
bobcatfish added a commit to bobcatfish/plumbing that referenced this issue Aug 5, 2019
Today I updated Prow as a step toward tektoncd/pipeline#922
- we need an updated version of Prow so that we can have support for
triggering Pipelines! :D

It turned out to be a bit of an ordeal to update Prow, mostly because:
- There were things we'd done a bit differently than the example Prow
  configs
- It turns out if you update Plank without updating the utility images
  it uses, it can get into a pretty bad state (e.g. reporting failed
  tests as passed)

These instructions are pretty messy and manual, but hopefully writing
this down will be a step toward making the process better!

This configuration has already been applied manually.
@bobcatfish
Copy link
Collaborator Author

TODO to make this happen:

tekton-robot pushed a commit to tektoncd/plumbing that referenced this issue Aug 6, 2019
Today I updated Prow as a step toward tektoncd/pipeline#922
- we need an updated version of Prow so that we can have support for
triggering Pipelines! :D

It turned out to be a bit of an ordeal to update Prow, mostly because:
- There were things we'd done a bit differently than the example Prow
  configs
- It turns out if you update Plank without updating the utility images
  it uses, it can get into a pretty bad state (e.g. reporting failed
  tests as passed)

These instructions are pretty messy and manual, but hopefully writing
this down will be a step toward making the process better!

This configuration has already been applied manually.
@bobcatfish
Copy link
Collaborator Author

I got a Pipeline running with Prow against my own repo, so I've got a good idea of what needs to get done here :D

Also @sbwsg has been investigating logs and it looks like all the logs are going to be automatically filterable in stackdriver which might be a decent approach!

@bobcatfish
Copy link
Collaborator Author

I had to use version 0.3.1 or older with Prow, opened kubernetes/test-infra#13948

bobcatfish added a commit to bobcatfish/plumbing that referenced this issue Aug 19, 2019
I am about to start adding some configuration to allow Prow to run
Tekton Pipelines (tektoncd/pipeline#922)
and before I do that I wanted to reorganize the docs a bit to make it
easier to add a bit more detail and make the main README a bit less
busy.
bobcatfish added a commit to bobcatfish/plumbing that referenced this issue Aug 19, 2019
I am about to start adding some configuration to allow Prow to run
Tekton Pipelines (tektoncd/pipeline#922)
and before I do that I wanted to reorganize the docs a bit to make it
easier to add a bit more detail and make the main README a bit less
busy.
bobcatfish added a commit to bobcatfish/plumbing that referenced this issue Aug 19, 2019
I am about to start adding some configuration to allow Prow to run
Tekton Pipelines (tektoncd/pipeline#922)
and before I do that I wanted to reorganize the docs a bit to make it
easier to add a bit more detail and make the main README a bit less
busy.
bobcatfish added a commit to bobcatfish/plumbing that referenced this issue Aug 19, 2019
I am about to start adding some configuration to allow Prow to run
Tekton Pipelines (tektoncd/pipeline#922)
and before I do that I wanted to reorganize the docs a bit to make it
easier to add a bit more detail and make the main README a bit less
busy.
bobcatfish added a commit to bobcatfish/plumbing that referenced this issue Aug 19, 2019
A step toward tektoncd/pipeline#922 !

This commit adds configuration and supporting docs to get Prow to
execute a simple Pipeline on every pull request to the plumbing repo.

I am also working on docs in the Prow repo
(for kubernetes/test-infra#13874 and
tektoncd/pipeline#1187) to explain how
one could put this all together from scratch.

One important caveat is that we were previously using the Tekton
installation in this cluster to do manual releases, and we were keeping
our release configuration up to date with the latest version of Tekton
Pipelines. Because of kubernetes/test-infra#13948
the newest version we can use with Prow is v0.3.1 so we need to keep our
release configs in sync with this for now ( attn folks doing releases
@vdemeester @a-roberts @mnuttall - the next thing I want to do is add
release automation via Prow so hopefully this won't impact you for
long!)

Note I have already manually applied this configuration to the cluster 🙏
tekton-robot pushed a commit to tektoncd/plumbing that referenced this issue Aug 20, 2019
I am about to start adding some configuration to allow Prow to run
Tekton Pipelines (tektoncd/pipeline#922)
and before I do that I wanted to reorganize the docs a bit to make it
easier to add a bit more detail and make the main README a bit less
busy.
tekton-robot pushed a commit to tektoncd/plumbing that referenced this issue Aug 20, 2019
A step toward tektoncd/pipeline#922 !

This commit adds configuration and supporting docs to get Prow to
execute a simple Pipeline on every pull request to the plumbing repo.

I am also working on docs in the Prow repo
(for kubernetes/test-infra#13874 and
tektoncd/pipeline#1187) to explain how
one could put this all together from scratch.

One important caveat is that we were previously using the Tekton
installation in this cluster to do manual releases, and we were keeping
our release configuration up to date with the latest version of Tekton
Pipelines. Because of kubernetes/test-infra#13948
the newest version we can use with Prow is v0.3.1 so we need to keep our
release configs in sync with this for now ( attn folks doing releases
@vdemeester @a-roberts @mnuttall - the next thing I want to do is add
release automation via Prow so hopefully this won't impact you for
long!)

Note I have already manually applied this configuration to the cluster 🙏
bobcatfish added a commit to bobcatfish/plumbing that referenced this issue Aug 22, 2019
In the context of getting a Tekton pipeline running on Prow
(tektoncd/pipeline#922), I have been working
with @sbwsg on how to make logs visible from the running Pipeline
(as of tektoncd#66 we have a simple hello world type pipeline running against
the plumbing repo itself). Prow normally uploads logs to GCS itself via
a sidecar, but Prow + Tekton doesn't do this.

@sbswg discovered that GKE clusters automatically export logs to
Stackdriver and propogate all of the pod labels as well, which means we
should be able to look in Stackdriver and filter logs by PipelineRun
names or Pipeline names or whatever we'd like. This could be an okay
interim solution that would allow us to migrate some work from ProwJobs
to Pipelines, e.g. we can add Release Pipelines and give other OWNERS
access to the Stackdriver logs.

However our Prow cluster was too old to have this feature! I was under
the mistaken impression that I had to make a whole new cluster, so I
started doing that (and writing down how to do it), but then @dlorenc
brought to my attention that instead we can just update the master +
nodes in GKE. So I updated the master node and now we have the feature!

In the future we should be able to keep updating our cluster like this,
but I thought it would still be useful to know how to create the cluster
from scratch so I wrote down what I discovered.

I didn't get as far as updating the DNS entry with the ingress IP which
is why that part is the most sparse but hopefully better than nothing!
bobcatfish added a commit to bobcatfish/plumbing that referenced this issue Aug 22, 2019
In the context of getting a Tekton pipeline running on Prow
(tektoncd/pipeline#922), I have been working
with @sbwsg on how to make logs visible from the running Pipeline
(as of tektoncd#66 we have a simple hello world type pipeline running against
the plumbing repo itself). Prow normally uploads logs to GCS itself via
a sidecar, but Prow + Tekton doesn't do this.

@sbswg discovered that GKE clusters automatically export logs to
Stackdriver and propogate all of the pod labels as well, which means we
should be able to look in Stackdriver and filter logs by PipelineRun
names or Pipeline names or whatever we'd like. This could be an okay
interim solution that would allow us to migrate some work from ProwJobs
to Pipelines, e.g. we can add Release Pipelines and give other OWNERS
access to the Stackdriver logs.

However our Prow cluster was too old to have this feature! I was under
the mistaken impression that I had to make a whole new cluster, so I
started doing that (and writing down how to do it), but then @dlorenc
brought to my attention that instead we can just update the master +
nodes in GKE. So I updated the master node and now we have the feature!

In the future we should be able to keep updating our cluster like this,
but I thought it would still be useful to know how to create the cluster
from scratch so I wrote down what I discovered.

I didn't get as far as updating the DNS entry with the ingress IP which
is why that part is the most sparse but hopefully better than nothing!

I also updated our Boskos configuration with some missing Resources that
are in the kubernetes/test-infra config, and deployed to our cluster,
but now in our committed config.
bobcatfish added a commit to bobcatfish/plumbing that referenced this issue Aug 22, 2019
In the context of getting a Tekton pipeline running on Prow
(tektoncd/pipeline#922), I have been working
with @sbwsg on how to make logs visible from the running Pipeline
(as of tektoncd#66 we have a simple hello world type pipeline running against
the plumbing repo itself). Prow normally uploads logs to GCS itself via
a sidecar, but Prow + Tekton doesn't do this.

@sbswg discovered that GKE clusters automatically export logs to
Stackdriver and propogate all of the pod labels as well, which means we
should be able to look in Stackdriver and filter logs by PipelineRun
names or Pipeline names or whatever we'd like. This could be an okay
interim solution that would allow us to migrate some work from ProwJobs
to Pipelines, e.g. we can add Release Pipelines and give other OWNERS
access to the Stackdriver logs.

However our Prow cluster was too old to have this feature! I was under
the mistaken impression that I had to make a whole new cluster, so I
started doing that (and writing down how to do it), but then @dlorenc
brought to my attention that instead we can just update the master +
nodes in GKE. So I updated the master node and now we have the feature!

In the future we should be able to keep updating our cluster like this,
but I thought it would still be useful to know how to create the cluster
from scratch so I wrote down what I discovered.

I didn't get as far as updating the DNS entry with the ingress IP which
is why that part is the most sparse but hopefully better than nothing!

I also updated our Boskos configuration with some missing Resources that
are in the kubernetes/test-infra config, and deployed to our cluster,
but now in our committed config.
tekton-robot pushed a commit to tektoncd/plumbing that referenced this issue Aug 22, 2019
In the context of getting a Tekton pipeline running on Prow
(tektoncd/pipeline#922), I have been working
with @sbwsg on how to make logs visible from the running Pipeline
(as of #66 we have a simple hello world type pipeline running against
the plumbing repo itself). Prow normally uploads logs to GCS itself via
a sidecar, but Prow + Tekton doesn't do this.

@sbswg discovered that GKE clusters automatically export logs to
Stackdriver and propogate all of the pod labels as well, which means we
should be able to look in Stackdriver and filter logs by PipelineRun
names or Pipeline names or whatever we'd like. This could be an okay
interim solution that would allow us to migrate some work from ProwJobs
to Pipelines, e.g. we can add Release Pipelines and give other OWNERS
access to the Stackdriver logs.

However our Prow cluster was too old to have this feature! I was under
the mistaken impression that I had to make a whole new cluster, so I
started doing that (and writing down how to do it), but then @dlorenc
brought to my attention that instead we can just update the master +
nodes in GKE. So I updated the master node and now we have the feature!

In the future we should be able to keep updating our cluster like this,
but I thought it would still be useful to know how to create the cluster
from scratch so I wrote down what I discovered.

I didn't get as far as updating the DNS entry with the ingress IP which
is why that part is the most sparse but hopefully better than nothing!

I also updated our Boskos configuration with some missing Resources that
are in the kubernetes/test-infra config, and deployed to our cluster,
but now in our committed config.
@bobcatfish
Copy link
Collaborator Author

Did this in tektoncd/plumbing#66 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/test-infra Issues or PRs related to the testing infrastructure area/yamls This issue involves writing a lot of yaml
Projects
None yet
Development

No branches or pull requests

2 participants