[
https://ovirt-jira.atlassian.net/browse/OVIRT-1984?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Barak Korren updated OVIRT-1984:
--------------------------------
Epic Link: OVIRT-2178 (was: OVIRT-400)
> Create "out-of-band" slave cleanup and setup jobs
> -------------------------------------------------
>
> Key: OVIRT-1984
> URL: https://ovirt-jira.atlassian.net/browse/OVIRT-1984
> Project: oVirt - virtualization made easy
> Issue Type: New Feature
> Components: Jenkins Slaves
> Reporter: Barak Korren
> Assignee: infra
>
> Right now, we run slave cleaup and setup steps as part or every single job we
> run. This has several shortcomings:
> # It takes a long time from the point a user submitted a patch to the point
> his actual test or build code runs
> # If slave setup or cleanup steps fail - they fail the whole job for the user
> # If slave setup or cleanup steps fail - they can keep failing for many jobs
> until the CI team intervenes manually
> # There is a "chicken and an egg" issue where some parts of the CI code have
> to run before the slave was properly cleaned up and configured. This makes
> if harder to add new slaves for the system.
> Here is a suggested scheme to fix all this:
> # Label all slaves that should be cleaned up automatically as 'cleanable'.
> This is mostly to prevent the jobs described here from operating on the
> master node.
> # Have a "cleanup scheduler" job that finds all slaves labelled as
> "cleanable" but not as "dirty" or "clean", labels them as "dirty" and runs a
> cleanup job on them.
> # Have a "cleanup" job that is triggered on particular slaves by the "cleanup
> scheduler" job, runs cleaup and setup steps on them and then labels them as
> "clean" and removes the "dirty" label.
> # Have all other CI jobs only use slaves with the "clean" label.
> Notes:
> # The "dirty" label is there to make the "cleanup scheduler" job not trigger
> twice on the same slave before the"cleanup" job started cleaning it up.
> # Since all slaves used by the real jobs will always be clean - there will no
> longer be a need to run cleanup steps in the real jobs, thus saving time.
> # If cleanup steps fail - the cleanup job will fail and the slave will not be
> marked as "clean" so real jobs will never try to use it.
> # To solve the "chicken and egg" issue, the cleanup job probably must be a
> FreeStyle jobs and all the cleanup and setup code must be embedded into it by
> JJB. This will probably require a newer version of JJB then what we have so
> setting OVIRT-1983 as a blocker.
> # There is an issue of how to make CI for this - if cleanup and setup steps
> are removed from the normal STDCI jobs, they they will not be checked by the
> "check-patch" job of the "jenkins repo". Here is a suggested scheme to solve
> this:
> ## Have a way to "loan" slaves from the production jenkins to other Jenkins
> instances - this could be done by having a job that starts up the Jenkins
> JNLP client and tells it to connect to another Jenkins master.
> ## As part of the "check-patch" job for the 'jenkins' repo - start a Jenkins
> master in a container - attach some production slaves to it and have it run
> cleanup and setup steps on them
--
This message was sent by Atlassian Jira
(v1001.0.0-SNAPSHOT#100087)
_______________________________________________
Infra mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Privacy Statement: https://www.ovirt.org/site/privacy-policy/
oVirt Code of Conduct:
https://www.ovirt.org/community/about/community-guidelines/
List Archives:
https://lists.ovirt.org/archives/list/[email protected]/message/Y3OR4S2H3CKQT24SAWDOKCYJEP43S2DN/