From Fedora Project Wiki

(Massive brain dump)
Line 3: Line 3:


== Action ==
== Action ==
1) Log into compose system: <code>compose-x86-01.fedoraproject.org</code>
Fulfilling the images for testing ticket requires composing the images, uploading the images, and updating the ticket.
 
=== Composing the images ===
1) Log into compose system: <code>compose-x86-01</code>
<pre>
$ ssh gateway.fedoraproject.org
$ ssh compose-x86-01
</pre>


2) Update the compose kickstart file in in the git repo in /srv/pungi/spin-kickstarts/
2) Update the compose kickstart file in in the git repo in /srv/pungi/spin-kickstarts/
* '''FIXME''':something here doesn't sound right.  What is the full path to the git repo?  Copy the updated kickstart file from the git repo to /srv/pungi/spin-kickstarts/ ?
<pre>
$ cd /srv/pungi/spin-kickstarts/
$ git pull
</pre>


3) Update / create chroots (fedora-devel-compose-{i386,x86_64} ('''FIXME''': what are the commands to do this?)
3) Update / create chroots (fedora-devel-compose-{i386,x86_64}
<pre>
$ mock -r fedora-devel-compose-i386 --shell
$ yum update
</pre>
If the chroot does not exist yet you will have to create it:
<pre>
$ mock -r fedora-devel-compose-i386 --init
</pre>
 
4) Shell into the chroot (this is not necessary if you already shelled into update above)
<pre>
$ mock -r fedora-devel-compose-i386 --shell
</pre>


4) shell into the chroot ('''FIXME''' what is command to do this?)
5) Run pungi to create the images:
<pre>
<pre>
$ pungi -c /srv/pungi/spin-kickstarts/fedora-install-fedora.ks \
$ pungi -c /srv/pungi/spin-kickstarts/fedora-install-fedora.ks \
     --destdir /srv/pungi/raw22.0 \
     --destdir /srv/pungi/rawhide-20100122.0 \
     --cachedir /srv/pungi/cache \
     --cachedir /srv/pungi/cache \
     --nosource \
     --nosource \
     --nodebug --ver development -GCB
     --nodebug --ver development -GCB
</pre>  
</pre>  
5) rsync the output, minus the packages and repodata, to alt.fedoraproject.org   
When done, exit the mock chroot.
 
=== Upload the images ===
We host the images on alt.fedoraproject.org which has an internal name of <code>secondary1</code>.
 
1) Create the output dir on secondary1
<pre>
$ ssh secondary1 mkdir -p /srv/pub/alt/stage/rawhide-20100122
</pre>
 
2) rsync the output, minus the packages and repodata, to alt.fedoraproject.org   
<pre>
<pre>
$ rsync -avHh --progress --stats --exclude Packages \
$ rsync -avHh --progress --stats --exclude Packages \
       --exclude repodata --exclude repoview \
       --exclude repodata --exclude repoview \
       /srv/pungi/raw22.0/development/ \
       /srv/pungi/rawhide-20100122.0/development/ \
       secondary1:/srv/pub/alt/stage/rawhide-yyyymmdd/
       secondary1:/srv/pub/alt/stage/rawhide-20100122/
</pre>
 
3) Update the 'to be tested' symlink:
<pre>
$ ssh secondar1 ln -sf rawhide-20100122 /srv/pub/alt/stage/rawhide-testing
</pre>
</pre>


6) Update the Release Engineering ticket with the path to the content
=== Update the ticket ===
The ticket should be closed when the images are uploaded and the symlink has been adjusted.  The full path should be noted for clarity sake.


== Verification ==
== Verification ==
* '''FIXME''': what are the verification steps?
Verification can be done as the task steps are being performed.
 
=== Image Creation ===
When pungi exits, you can verify that the <code>development/<arch>/os/images/</code> directory exists and has content.  That path is relative to the destination directory you provide pungi.
 
=== Upload the images ===
One can simply browse to http://alt.fedoraproject.org/pub/alt/stage/rawhide-testing and check the dates on the directories.
 
=== Updating the Ticket ===
One can click the link provided in the ticket update and ensure the path is correct.  Verifying that the ticket is closed should be pretty self evident.


== Consider Before Running ==
== Consider Before Running ==
* '''FIXME''': What should we include here?
Many things can hinder a compose, broken deps in the chroot set, broken deps in the compose set, bugs in the compose software, etc...  If any problem is ran into along the way, it is best to alert QA via a ticket update, and then work with the appropriate party to clear the obstruction.
 
Some of these tasks take a long time to finish, so it is highly recommended that you run these tasks in a screen session.
 
If you need to make use of freshly built packages since the last rawhide compose, you can create a local repository.  <code>/srv/pungi/bleed/<arch>/</code> on the compose system can be used as a temporary repo for new packages.  Don't forget to update the mock chroot with the new packages (if appropriate) and to add the temporary repo to the <code>spin-kickstarts/fedora-install-fedora.ks</code> file for use by pungi.


Disk space on secondary1 is limited, so if you need to go through a number of composes before you get one that tests well, be sure to prune the failed composes.  This is true of disk space on the compose host too, be sure to trim /srv/pungi/ of composes that are no longer needed locally.


[[Category:Release Engineering SOPs]]
[[Category:Release Engineering SOPs]]

Revision as of 01:25, 26 January 2010

Description

From time to time the Quality Assurance team requests official images for testing. Release Engineering is responsible for creating them.

Action

Fulfilling the images for testing ticket requires composing the images, uploading the images, and updating the ticket.

Composing the images

1) Log into compose system: compose-x86-01

$ ssh gateway.fedoraproject.org
$ ssh compose-x86-01

2) Update the compose kickstart file in in the git repo in /srv/pungi/spin-kickstarts/

$ cd /srv/pungi/spin-kickstarts/
$ git pull

3) Update / create chroots (fedora-devel-compose-{i386,x86_64}

$ mock -r fedora-devel-compose-i386 --shell
$ yum update

If the chroot does not exist yet you will have to create it:

$ mock -r fedora-devel-compose-i386 --init

4) Shell into the chroot (this is not necessary if you already shelled into update above)

$ mock -r fedora-devel-compose-i386 --shell

5) Run pungi to create the images:

$ pungi -c /srv/pungi/spin-kickstarts/fedora-install-fedora.ks \
    --destdir /srv/pungi/rawhide-20100122.0 \
    --cachedir /srv/pungi/cache \
    --nosource \
    --nodebug --ver development -GCB

When done, exit the mock chroot.

Upload the images

We host the images on alt.fedoraproject.org which has an internal name of secondary1.

1) Create the output dir on secondary1

$ ssh secondary1 mkdir -p /srv/pub/alt/stage/rawhide-20100122

2) rsync the output, minus the packages and repodata, to alt.fedoraproject.org

$ rsync -avHh --progress --stats --exclude Packages \
       --exclude repodata --exclude repoview \
       /srv/pungi/rawhide-20100122.0/development/ \
       secondary1:/srv/pub/alt/stage/rawhide-20100122/

3) Update the 'to be tested' symlink:

$ ssh secondar1 ln -sf rawhide-20100122 /srv/pub/alt/stage/rawhide-testing

Update the ticket

The ticket should be closed when the images are uploaded and the symlink has been adjusted. The full path should be noted for clarity sake.

Verification

Verification can be done as the task steps are being performed.

Image Creation

When pungi exits, you can verify that the development/<arch>/os/images/ directory exists and has content. That path is relative to the destination directory you provide pungi.

Upload the images

One can simply browse to http://alt.fedoraproject.org/pub/alt/stage/rawhide-testing and check the dates on the directories.

Updating the Ticket

One can click the link provided in the ticket update and ensure the path is correct. Verifying that the ticket is closed should be pretty self evident.

Consider Before Running

Many things can hinder a compose, broken deps in the chroot set, broken deps in the compose set, bugs in the compose software, etc... If any problem is ran into along the way, it is best to alert QA via a ticket update, and then work with the appropriate party to clear the obstruction.

Some of these tasks take a long time to finish, so it is highly recommended that you run these tasks in a screen session.

If you need to make use of freshly built packages since the last rawhide compose, you can create a local repository. /srv/pungi/bleed/<arch>/ on the compose system can be used as a temporary repo for new packages. Don't forget to update the mock chroot with the new packages (if appropriate) and to add the temporary repo to the spin-kickstarts/fedora-install-fedora.ks file for use by pungi.

Disk space on secondary1 is limited, so if you need to go through a number of composes before you get one that tests well, be sure to prune the failed composes. This is true of disk space on the compose host too, be sure to trim /srv/pungi/ of composes that are no longer needed locally.