...
The following is an overview of how the directories in the DVD and yum repos would be laid out to allow for different OS versions. It will also split the simp repository into several repositories to match the layout in the simp-project site.
Update simp-gpgkeys
Previously: all the keys were under one directory
GPGKEY/RPM*
New Configuration: Split them according to repo:
GPGKEY/simp/All the simp keys
GPGKEY/puppet/All the puppet keys
GPGKEY/postgresql/All the puppet key
GPGKEY/epel/All the CentOS and RHEL Keys
This will allow us to link them to specific repo when creating repos in puppet module and
allow us, when downloading the from packages.yaml, to determine which repo the downloaded package should belong to.
Update rubygem-simp-rake-helpers:
Restructure the DVD Overlay file:
(Note: There are other files in these directories, if not shown, they will not be moved or reconfigured)
Previously: the DVD_overlay had:
ks
packagelist
SIMP
GPGKEYS
noarch
All the noarch simp RPMS
arch (ussually absent because no arch spec RPMS)
All the arch specific RPMS
Development Key (if development)
New configuration:
ks
packagelist
SIMP
simp (indicating the simp repo)
All the simp RPMs generated during tar build, noarch and arch
GPGKEYS
Dev key or nothing if not a dev build
Restructure the directory on the OS DVD:
Previously: it downloaded the RPMs in packages.yaml and put them in yum_data/packages and added any one off RPMs from the aux_packages directory. It then copied them over to the SIMP directory and created links from noarch to arch.
yum_data
packages.yaml
packages
RPMs downloaded from the internet
aux_packages
any one off RPMs the user puts here.
SIMP
noarch
simp noarch RPMs (either built earlier or extracted from tar file)
depenedency noarch RPMs (both one off and packages.yaml)
arch
simp arch RPMs (either built earlier or extracted from tar file)
dependency arch RPMs (both one off and packages.yaml)
links to any RPM in the noarch directory
New configuration: The RPMs from packages.yaml will be downloaded in the same manner. After they are downloaded the signature of the RPM will be checked against in each of the directories in simp-gpgkeys. The RPM will be placed in appropriate repo. Any RPMs not signed by a key from the known repos will be placed in an UNKNOWN repository. If any RPMs are in the UNKNOWN repository, the build will fail.
One off aux_packages will be checked in the same manner.
Problem: If using tarball how do I get GPGKEYS? Maybe extract from the simp-gpgkey RPM in the tarball? Or is just getting it from simp-core/src/assets ok?
The New directory structure will look like:
yum_data
packages.yaml
packages
RPMs downloaded from the internet
aux_packages
any one off RPMs the user puts here.
SIMP
simp
GPGKEYS
gpg keys from simp-gpgkeys/simp and the dev key if there was one.
simp RPMs (arch and no arch)
any RPM downloaded from packages.yaml or copied from aux_packages and signed by keys in GPGKEYS/simp
puppet
GPGKEYS
gpg keys from simp-gpgkeys/puppet
any RPM downloaded from packages.yaml or copied from aux_packages and signed by GPGKEYS/puppet
epel
GPGKEYS
gpg keys from simp-gpgkeys/epel
any RPM downloaded from packages.yaml or copied from aux_packages and signed by keys in GPGKEYS/epel
postgresql
GPGKEYS
gpg keys from simp-gpgkeys/postgresql
any RPM downloaded from packages.yaml or copied from aux_packages and signed by keys in GPGKEYS/postgresql
PROBLEM: aux_packages: what if they have a different key? Should add a feature to allow users to a key?
Other things that need to be updated:
need to createrepo on all repositories
update repoclosure to include all repos
Update unpack dvd:
Update unpack DVD to copy the contents of the SIMP to /var/www/yum/SIMP/<os major version>/<arch>/ instead of just plopping it in /var/www/yum/SIMP.
The OS and the arch could be determined from the file on the DVD.
(Question… should we put el or CentOS or Redhat in there.? Probably)
Update pupmod-simp-simp
Update the creation of the simp repos to create the 4 repos and enable them where necessary.
Update simp-core DVD files
The kickstart files in simp-core will have to be updated to point to repos in the correct locations.
The DVD/auto.cfg files need to be updated.