Updates to the Katello Release Workflow

Howdy,

Over the past week I have been working to change the Katello nightly RPM
release workflow to mirror that of Foreman. In the process, we have run
into an issue that requires some input with respect to our repositories [1].

Old workflow:

  1. On every successful commit to master, a new rubygem-katello is built
  2. Every 4 hours the repositories are mashed and pushed out to fedorapeople
    on a cronjob

New workflow:

  1. When tests pass on master after a commit, job is triggered to build
    katello, rubygem-katello and hammer-cli-katello
  2. RPMs on Koji are mashed
  3. A systest and repoclosure job are run against the repositories on Koji
  4. RPMs are copied to fedorapeople every 4 hours

As you can see, with the current new workflow, we still do not have control
over when the RPMs are pushed out which can result in RPMs that are broken
in some way. The reason we are currently stuck is that fedorapeople.org
requires a user to ssh into fedorapeople.org and run a script to rsync the
repositories over to it from Koji. Thus, to switch from the cronjob, we'd
have to use someone's account and SSH key to perform the copy.

Options as I see it:

  1. Use someone's account on fedorapeople and SSH key within a Jenkins job
    to ssh and run the copy script
  2. Find a different location to house our repositories that we have more
    control over and update our release RPMs and scripts for nightly and 2.1+.
    Would it make sense to consolidate on http://yum.theforeman.org/ ?

[1] https://fedorapeople.org/groups/katello/releases/yum/

Howdy,

The Katello team recently completed updates to our nightly release
workflow. For developers this knowledge may be useful if you need to
propagate a code change or adjust the workflow. For users of the nightlies,
this should help explain when changes will appear and process.

Changes:

  1. The release workflow is now kicked off every 12 hours around noon and
    midnight Jenkins time.
  2. The test_katello job that is run after every commit to Katello no longer
    builds RPMs.
  3. The previous 4 hour mash has been stopped on Koji.
  4. The script that lived on fedorapeople and rsync'd koji repos has been
    updated to exit 1 given that we never isolated the cronjob running to copy
    RPMs. A new script has been put in place that is triggered by Jenkins.

The release workflow is as follows (for an outline of the process see –
http://ci.theforeman.org/view/Katello%20Pipeline/):

build RPMs (katello, rubygem-katello, hammer-cli-katello) -> mash RPMs ->
systest on el6/7 -> push RPMs to fedorapeople

                           -> repoclosure

Thanks,
Eric

··· On Mon, Nov 17, 2014 at 2:14 PM, Eric D Helms wrote:

Howdy,

Over the past week I have been working to change the Katello nightly RPM
release workflow to mirror that of Foreman. In the process, we have run
into an issue that requires some input with respect to our repositories [1].

Old workflow:

  1. On every successful commit to master, a new rubygem-katello is built
  2. Every 4 hours the repositories are mashed and pushed out to
    fedorapeople on a cronjob

New workflow:

  1. When tests pass on master after a commit, job is triggered to build
    katello, rubygem-katello and hammer-cli-katello
  2. RPMs on Koji are mashed
  3. A systest and repoclosure job are run against the repositories on Koji
  4. RPMs are copied to fedorapeople every 4 hours

As you can see, with the current new workflow, we still do not have
control over when the RPMs are pushed out which can result in RPMs that are
broken in some way. The reason we are currently stuck is that
fedorapeople.org requires a user to ssh into fedorapeople.org and run a
script to rsync the repositories over to it from Koji. Thus, to switch from
the cronjob, we’d have to use someone’s account and SSH key to perform the
copy.

Options as I see it:

  1. Use someone’s account on fedorapeople and SSH key within a Jenkins job
    to ssh and run the copy script
  2. Find a different location to house our repositories that we have more
    control over and update our release RPMs and scripts for nightly and 2.1+.
    Would it make sense to consolidate on http://yum.theforeman.org/ ?

[1] https://fedorapeople.org/groups/katello/releases/yum/

> Howdy,
>
> The Katello team recently completed updates to our nightly release
> workflow. For developers this knowledge may be useful if you need to
> propagate a code change or adjust the workflow. For users of the nightlies,
> this should help explain when changes will appear and process.
>
> Changes:
> 1. The release workflow is now kicked off every 12 hours around noon and
> midnight Jenkins time.
>
is Jenkins time a new timezone? :slight_smile: I tried
TZ=Jenkins date
Thu Dec 4 07:43:52 Jenkins 2014

  1. The test_katello job that is run after every commit to Katello no longer
··· On Thu, Dec 4, 2014 at 5:31 AM, Eric D Helms wrote: > builds RPMs. > 3. The previous 4 hour mash has been stopped on Koji. > 4. The script that lived on fedorapeople and rsync'd koji repos has been > updated to exit 1 given that we never isolated the cronjob running to copy > RPMs. A new script has been put in place that is triggered by Jenkins. > > The release workflow is as follows (for an outline of the process see -- > http://ci.theforeman.org/view/Katello%20Pipeline/): > > build RPMs (katello, rubygem-katello, hammer-cli-katello) -> mash RPMs -> > systest on el6/7 -> push RPMs to fedorapeople > > -> repoclosure > > > Thanks, > Eric > > On Mon, Nov 17, 2014 at 2:14 PM, Eric D Helms > wrote: > >> Howdy, >> >> Over the past week I have been working to change the Katello nightly RPM >> release workflow to mirror that of Foreman. In the process, we have run >> into an issue that requires some input with respect to our repositories [1]. >> >> Old workflow: >> 1. On every successful commit to master, a new rubygem-katello is built >> 2. Every 4 hours the repositories are mashed and pushed out to >> fedorapeople on a cronjob >> >> New workflow: >> 1. When tests pass on master after a commit, job is triggered to build >> katello, rubygem-katello and hammer-cli-katello >> 2. RPMs on Koji are mashed >> 3. A systest and repoclosure job are run against the repositories on Koji >> 4. RPMs are copied to fedorapeople every 4 hours >> >> As you can see, with the current new workflow, we still do not have >> control over when the RPMs are pushed out which can result in RPMs that are >> broken in some way. The reason we are currently stuck is that >> fedorapeople.org requires a user to ssh into fedorapeople.org and run a >> script to rsync the repositories over to it from Koji. Thus, to switch from >> the cronjob, we'd have to use someone's account and SSH key to perform the >> copy. >> >> Options as I see it: >> >> 1. Use someone's account on fedorapeople and SSH key within a Jenkins job >> to ssh and run the copy script >> 2. Find a different location to house our repositories that we have more >> control over and update our release RPMs and scripts for nightly and 2.1+. >> Would it make sense to consolidate on http://yum.theforeman.org/ ? >> >> >> [1] https://fedorapeople.org/groups/katello/releases/yum/ >> >> > -- > You received this message because you are subscribed to the Google Groups > "foreman-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to foreman-dev+unsubscribe@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. >