We need to have an abitily to pass some custom rpm repos into
rpm build-sandbox
Closes-bug: #1619309
Change-Id: Ie328e5b18c3a81f67b5d19ef0d3992594e7f58c6
All related internal mirrors can be re-defined through
the env variables, so we can freely remove them
Change-Id: Iae8bb0fbba8097e67287406a8aaf378283545c5c
Closes-bug: #1582701
Disable SSL certificates check since we can have self signed
certs for yum repos
Change-Id: I38067ec3cf4e86b0b2623d716059763308ae0c5b
Closes-bug: #1541934
We need to clean RPM chroot each time on installing packages from
$(SANDBOX_PACKAGES), since some of them can "bring" centos-release
as dependency
Change-Id: I274f3e3675d327c700262058682200d7781ff1b9
Related-bug: #1541871
We need to remove CentOS upstream sandbox repos, which comes with
centos-release package before any yum operations.
Change-Id: I6322ab90c6aca744820446021432a78a2ba5f37a
Closes-bug: #1541871
Env var $TEMP is not set anywhere, and always empty.
There is no point to run 'mkdir $TEMP'.
Change-Id: I04345d8431dca0b703e0edaf00aee168df8acc3c
Related-Bug: #1522909
Start using yum-builddep from chroot:
1. Prepare chroot from upstream mirrors only for installing yum inside it
2. Update yum.conf with mos mirrors with path related to chroot
3. Mount local_mirror into chroot
4. Use all yum stuff from chroot
Closes-bug: #1522607
Change-Id: Ifd9d7c6a35c4977e78eba10ffcd0b1a8dcfee4ca
Existing ISO build scripts can't build CentOS7 based
ISO due to changes in package names, files, and so on.
This review fixes issue have been found, and introduces
several minor improvements.
Blueprint: master-on-centos7
Breaks: centos6
Co-Authored-By: Ivan Suzdal <isuzdal@mirantis.com>
Change-Id: I830ff03aa1051f14f2bdafb16cca1979d38e9ad5
Fix the problem with separate repos to support rebuild docker
1. Make a symlink for mos-centos in /var/www/nailgun in iso/ks.template
2. Add mos-repos to the bootstrap_admin_node.sh
This reverts commit 32b1363015.
Closes-bug: #1521551
Change-Id: I8ef58b581f253b26d158b725a9e366d7f1b3706d
The commit this patch reverts breaks Fuel CI
on docker container rebuilds.
This reverts commit bc9c3117c7.
Change-Id: I18fe16cf8f0be40e30fec6229606d1d69cbfe73d
Closes-Bug: #1521551
Release ISO must contain only packages that are
modified by MOS team, and CentOS upstream packages
for Fuel node deployment.
MOS repo, as well as the ones specified in the
EXTRA_RPM_REPOS variable, are downloaded and
placed on the ISO as-is.
Blueprint: separate-mos-from-centos
Change-Id: I983f37371a70d2901bdf0ebef122ba1a2f2e44b9
The thing is that when using 'yum install package1 package2'
yum is not going to fail if one of the packages fails to
install. Instead we use 'echo package1 package2 | xargs -n1 yum install'
to install them in turn.
Change-Id: I878d6c2589636aa39495c0fefc0c1dc9f1b33a56
Closes-Bug: #1465388
Perestroika builds both rpm and deb fuel repos.
We use perestroika rpm repository to build fwm
repository which includes fuel packages as well
as those packages which are listed in requirements-rpm.txt.
Deb repository can be used directly.
Closes-Bug: #1479761
Change-Id: I236144759eb38e71977d175226f81772d23de9b3
We can talk about several types of repos configurations:
* Ubuntu sandbox (make show-ubuntu-sandbox-repos);
* CentOS:
- for building local mirror (make show-yum-repos-centos);
- for using in sandbox (make show-centos-sandbox-repos);
This patch introduces several changes
1. Rename show-apt-source-list target to show-ubuntu-sandbox-repos
to be closer to centos naming (show-centos-sandbox-repos)
2. Add show-centos-sandbox-repos target, which will show yum
configuration for centos sandbox
3. Add show-yum-repos-centos, which will show yum configuration
used while building local centos mirror
Examples:
- make show-ubuntu-sandbox-repos
- make show-centos-sandbox-repos
- USE_MIRROR=none \
EXTRA_RPM_REPOS=extra,http://my.repo \
make show-yum-repos-centos
Change-Id: I0b1141f8b7acfa682f7d4c4cc6e2fd09363eb3ca
Add target to get the content of files from ubuntu sandbox:
- source.list (repos)
- preferences (pinning)
Change-Id: I918516857753c5caca48c4c9f71866df817fde1d
Copying local certificates and CA to chroot
Useful in case deb repositories behind https
Change-Id: I44fe3126cb5a817dc317afbe7c56d37e61dac392
Partial-Bug:#1420793
This also requires swapping priorities for Mirantis and upstream
repos, to ensure that packages will be actually updated.
Related-Bug: #1476245
Change-Id: I7509ecca711737ab7a307dc573bf99c71fa62a21
- Make SANDBOX_UBUNTU fail if something goes wrong to prevent it from
producing a broken chroot,
- Suppress package configuration dialogs so they don't block the build,
- Quite of postinst scripts rely on /proc. Mount /proc in the chroot
to make those packages happy.
Depends-On: I37e20b4e022ddbf946cf3b161416e1ab24e36fb3
Change-Id: I275c82ccec08f0f34d7280089a59091ce1cbfa68
The (APT) repo @ mirror.fuel-infra.org has Codename=mos6.1 instead of 'trusty',
and the repo @ obs has Codename='trusty'. SANDBOX_UBUNTU should work with
both variants.
blueprint fuel-bootstrap-on-ubuntu
Change-Id: Ia249bab2012c83e836b3d43eaf5b7293dd146d9a
Allows people with weird setups (no DNS) to build the ISO. Having
the build system resolv.conf and hosts in the produced chroot might
be a wrong thing, so backup the original /etc/hosts (and resolv.conf)
so it's possible to restore them should that be necessary.
Closes-Bug: #1471155
Change-Id: I8a8b1305c9419d7bcddb1272e01c9c9eaf08716c
Since we are using several repos with priorities in rpm SANDBOX,
we need to have this plugin inside it
Change-Id: Ib07ea4902e8e69ba2b05adfd197b9e24ef3e9c66
Implements blueprint: package-fuel-components
This commit is a squashed version of commits that
implement packaging of fuel components. In order to
make our packaging process better I had to introduce
some new macros and do additional cleanup.
The main paradigm that we are following with this commit is
the following:
1 GIT REPO -> 1 PACKAGING SPEC -> N PACKAGES
Though it would be ideal to have only one package per git repo,
but this is left for further releases
This change is very essential to make updates process easier
as we provide only one type of artifacts that a user can fetch -
distro-specific package
This particular commit does not introduce new DEB packages
(such as packages of OCF scripts and other binaries that
we currently put onto the slave nodes with puppet instead of
installing them as packages) which will be introduced as
a part of whole packaging initiative a little bit later
1) Add prepare_git_source macro
This change is important to always
checkout the code from git working
or we can end up with garbage getting
into package source code and add
version.txt file to source archives
2) Remove nailgun-redhat-license package
This package is obsolete - we do not need
it.
3) Package fuel-library into RPM package
4) Delete old packages and misc stuff
This change is a little cleanup of python-tasklib
and other leftovers
5) Change RPM sandbox configuration
Change RPM sandbox configuration to use upstream mirrors
to be able to install nailgun build dependencies
6) Alter Nailgun spec
a) Change nailgun spec to use NPM during package
build
b) Switch nailgun to prepare_git_source
c) Package all packages of fuel-web repo using
only nailgun.spec
7) Alter RPM sandbox preparation to install build-deps
8) Package astute and mcagents using astute.spec
9) Include all built RPMs
Include all RPMS that were built inside the sandbox
10) Package fuel-ostf with git-archive
11) Build python-fuelclient using git_archive macro
12) Move specs to particular git repositories
13) Rename fuel-library and ostf to make macros easier
14)Adjust build scripts to fetch specs from particular
fuel repositories
FUEL DEB-packaging related code
15) Restore part of make system code for DEB packages building
16) Nailgun debian spec files for all nailgun-based packages
17) Clean up SANDBOX for Ubuntu generation
18) Clean up some package building scripts
19) Put PACKAGE_VERSION variable into the top config.mk
20) Add dockerctl and change fuel-library tar.tg path
21) Move deb rules to particula repos
22) Allow to rebuild deb repo with reprepro on-the-fly
24) Fix repocleanup stanza to parse source packages metadata
25) Debmirror whole repos in order not to break reprepro
26) Make docker image build depend on late RPM packages
or it may lead to race conditions
27) Clean up old deb packages with one shot instead
of parallel run
Change-Id: I15ae4d0abe51c72b28793e1a1ef30fec0f668b73
Blueprint: package-fuel-components
1) Change mirroring procedure for Ubuntu:
- USE_MIRROR=none: rsync the whole mirror from build server
- USE_MIRROR=<location>: mirror only required MOS distro
Added support for different mirroring methods.
2) Remove procedure of building Fuel deb packages
3) Remove building of deb-based IBP images
4) Remove deb-based chroots
5) Modify creation of Ubuntu diff mirror artifact
Implements: separate-mos-from-linux
Change-Id: Icd10aea6ebddb27976e88ceb930be9afac0241ad
Create the standard build chroot (as a tarball) and use it instead of
bootstrapping from the scratch.
Change-Id: I55d7d3f36b50ca4d96dfb7c73790dc8256078855
Create a tarball of a base system + build-essential packages, and use that
for building the packages instead of bootstrapping Ubuntu from the scratch
for every package.
Change-Id: I91a1aa326fc8de51e1e5305fbe8b9dd3ae6c226e
Without this patch a copy of udevd gets started in the staging chroot (where
the Debian packages are built), and that udevd process starts hogging CPU
after the chroot gets removed. To solve the problem prevent services from
being started in the staging chroot.
blueprint support-ubuntu-trusty
Change-Id: I7f213a0299752a7b85feeccb21a61603538caee7
As of now Fuel related deb packages are built using the upstream mirror.
This yeilds inconsistent dependencies, for instance, packages depend on
both the upstream and the customized python versions, and provisioning of
Ubuntu node fails as a result.
To resolve the problem setup the build chroot using the official Fuel apt
repo. While at it use the locally created apt mirror instead of downloading
packages once more, and fix a number of inconsistencies/bugs.
* sandbox.mk:
- sandbox define is modified so as to use local pre-built mirror.
* packages/deb/module.mk:
- use the helper script to create build sandbox.
* requirements-deb.txt:
- make sure tools required for building Debian packages are included
into the local apt repo.
Change-Id: I9f7b06bba94a65b2d65168cc1122257f4bec78be
Related-bug: #1390416
1) Add routines for building deb packages and adding them to local mirror.
2) Add commands for creating Ubuntu-based build sandbox.
3) Update deb specs for Fuel components.
Closes-Bug: 1373400
Change-Id: If098654d1158aca6676f9cbb3fc3100fc2e8674d