[openstack-dev] [infra] [all] project pipeline definition should stay in project-config or project side ?
Balázs Gibizer
balazs.gibizer at ericsson.com
Wed Feb 14 09:21:08 UTC 2018
On Wed, Feb 14, 2018 at 6:45 AM, Andreas Jaeger <aj at suse.com> wrote:
> On 2018-02-14 01:28, Ghanshyam Mann wrote:
>> On Wed, Feb 14, 2018 at 12:06 AM, Paul Belanger
>> <pabelanger at redhat.com> wrote:
>>> On Tue, Feb 13, 2018 at 11:05:34PM +0900, gmann wrote:
>>>> Hi Infra Team,
>>>>
>>>> I have 1 quick question on zuulv3 jobs and their migration part.
>>>> From
>>>> zuulv3 doc [1], it is clear about migrating the job definition
>>>> and use
>>>> those among cross repo pipeline etc.
>>>>
>>>> But I did not find clear recommendation that whether project's
>>>> pipeline definition should stay in project-config or we should
>>>> move
>>>> that to project side.
>>>>
>>>> IMO,
>>>> 'template' part(which has system level jobs) can stay in
>>>> project-config. For example below part-
>>>>
>>>>
>>>> https://github.com/openstack-infra/project-config/blob/e2b82623a4ab60261b37a91e311118301927b9b6/zuul.d/projects.yaml#L10507-L10523
>>>>
>>>> Other pipeline definition- 'check', 'gate', 'experimental' etc
>>>> should
>>>> be move to project repo, mainly this list-
>>>>
>>>> https://github.com/openstack-infra/project-config/blob/master/zuul.d/projects.yaml#L10524-L11019
>>>>
>>>> If we move those past as mentioned above then, we can have a
>>>> consolidated place to control the project pipeline for
>>>> 'irrelevant-files', specific branch etc
>>>>
>>>> ..1 https://docs.openstack.org/infra/manual/zuulv3.html
>>>>
>>> As it works today, pipeline stanza needs to be in a config
>>> project[1]
>>> (project-config) repo. So what you are suggestion will not work.
>>> This was done
>>> to allow zuul admins to control which pipelines are setup /
>>> configured.
>>>
>>> I am mostly curious why a project would need to modify a pipeline
>>> configuration
>>> or duplicate it into all projects, over having it central located
>>> in
>>> project-config.
>>
>> pipeline stanza and configuration stay in project-config. I mean
>> list
>> of jobs defined in each pipeline for specific project for example
>> here[2]. Now we have list of jobs for each pipeline in 2 places, one
>> in project-config [2] and second in project repo[3].
>>
>> Issue in having it in 2 places:
>> - No single place to check what all jobs project will run with what
>> conditions
>> - If we need to modify the list of jobs in pipeline or change other
>> bits like irrelevant-files etc then it has to be done in
>> project-config. So no full control by project side.
>
For me it is even more than two places as the project templates like
'integarted-gate'[4] defines jobs to be executed on a project that
includes the template in the project-config. Which leads to problems
like [5]. This shows that tracking down why some job runs on a change
is fairly non-trivial from a developer perspective. Therefore I support
to define which jobs run on a given project as close to the project as
possible and as small number of different places as possible. I even
volunteer to help with the moving from nova perspective.
> This should be explained in:
> https://docs.openstack.org/infra/manual/zuulv3.html#what-to-convert
>
> So, the standard templates/jobs - incl. PTI mandated ones - should
> stay
> in project-config, you can move everything else in-tree,
As far as I understand this list allows us to solve [5] by simply
moving every jobs from 'integrated-gate' to the respective project in
tree as the jobs in that template are not part of the PTI.
[4]
https://github.com/openstack-infra/openstack-zuul-jobs/blob/df8a8e8ee41c1ceb4da458a8681e39de39eafded/zuul.d/zuul-legacy-project-templates.yaml#L93
[5] https://review.openstack.org/#/c/538908
Cheers,
gibi
More information about the OpenStack-dev
mailing list