-
Notifications
You must be signed in to change notification settings - Fork 174
Add pipeline.yaml
#3094
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
Add pipeline.yaml
#3094
Conversation
(Potentially we should have |
ebb1bbd
to
f029f0d
Compare
I'm not opposed to storing some more information in the |
f029f0d
to
c421066
Compare
OK, yes we can debate next week. But here's another way to look at this: The pipeline unification and things like https://github.com/jlebon/fedora-coreos-pipecfg/blob/main/config.yaml are good. But again - even after that lands and is working 100% perfectly, we will still have other "pipelines" - things like https://github.com/openshift/os/blob/master/ci/prow-entrypoint.sh and the CI flows across repositories (some of which use Jenkins, some don't). And even beyond that the SCOS folks are now orchestrating cosa with Tekton: I think this type of thing along with the desire to have typing |
While working on coreos/fedora-coreos-pipeline#619, I did briefly think about something like this too. More specifically, I was thinking about having the config repo declare which features it supports, e.g. something like: # features.yaml
platforms:
- nutanix Imagining when Nutanix support was just added, this file would correctly get promoted/branched during the FCOS/RHCOS promotion process with the supporting code so that we don't actually build Nutanix images for streams which don't support it. And once it becomes supported everywhere, we could remove it from the file. This is similar to this PR but subtly different: the I'm not convinced about having a more pipeline-focused file in the config repo. Conceptually, I consider pipelines a layer of abstraction above the config repo. You could have multiple pipelines using the config repo for different purposes, and they might need to build it differently (signing vs no signing, with some overrides, minimal vs all artifacts, uploading vs no uploading, etc...) or in different stages. I think this is already true today. |
That said, having support for a tool which takes a |
c421066
to
126b1eb
Compare
Rebased 🏄 and fixed the f-string lint thing. |
I know there's a lot going on, but conceptually this doesn't conflict with anything today and I think will be useful. |
This is motivated by coreos/fedora-coreos-pipeline#618 Today the coreos-assembler default for `cosa compress` is `gzip`, and the RHCOS pipeline relies on that. The FCOS pipeline overrides it. My opinion is that this is exactly the kind of thing that should be configured in the source git - it should not live in "the pipeline". By having a new `pipeline.yaml` in this repository, we get closer to the goal of having the default invocations of `cosa $x` do the same thing as production pipelines. If accepted I plan to extend this with numerous other things; most notably for example the set of desired target artifacts i.e. ``` artifacts: - aws - metal - digitalocean - ... ``` etc. Then we can have `cosa buildextend-all`, etc. This PR includes some ugly bridging of Go logic to Python.
126b1eb
to
933b8b7
Compare
Rebased 🏄 |
OK, I still think this makes sense to land. I need to make things such that we inject metadata like this:
that's on the previous/legacy oscontainer on our new one. I think it'd be done most elegantly via this config file. If we configure it code linked to the Jenkins pipeline, then I guess I can stick it in |
Just opened #3215 for the compression bit specifically since I think that's a good fit for DO you have any thoughts about #3094 (comment)? |
@cgwalters: PR needs rebase. 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. |
The concept of a |
This is motivated by
coreos/fedora-coreos-pipeline#618
Today the coreos-assembler default for
cosa compress
isgzip
, and the RHCOS pipeline relies on that. The FCOS pipeline overrides it.My opinion is that this is exactly the kind of thing that should be configured in the source git - it should not live in "the pipeline".
By having a new
pipeline.yaml
in this repository, we get closer to the goal of having the default invocations ofcosa $x
do the same thing as production pipelines.If accepted I plan to extend this with numerous other things; most notably for example the set of desired target artifacts i.e.
etc. Then we can have
cosa buildextend-all
, etc.This PR includes some ugly bridging of Go logic to Python.