-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Comments
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.
TODO to make this happen:
|
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.
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! |
I had to use version 0.3.1 or older with Prow, opened kubernetes/test-infra#13948 |
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.
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.
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.
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.
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 🙏
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.
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 🙏
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!
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.
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.
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.
Did this in tektoncd/plumbing#66 🎉 |
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
The text was updated successfully, but these errors were encountered: