Since now Packetary is a recommended tool to build/clone
rpm/deb repositories and Fuel client is to be used
to modify default repository settings.
Change-Id: Ifd4ee718e70ff7dc8b4724c2a00f2aaeb3813b7f
- Running chroot without 'sh -c' doesn't set environment variables. This
patch wraps command in 'sh -c'
- add force to mv command as xenial is more strict for changing
permissions
Change-Id: I83122397c2a8c457abb9687909352179831a46f3
Implements: mos-xenial
Though build packages during ISO build is going to depracate
we still need to align all fuel packages build flow
Change-Id: Ic4c3917a608dbdc955263dd13871012a8f498dee
Partial-Bug: #1471763
Implements: blueprint separate-fuel-ui-repo
We got rid of using docker containers
on the master node. Now we deploy all
Fuel service directly on the host.
Implements blueprint: get-rid-docker-containers
Change-Id: Ie636d33d091a95fb0ff8fbd71e49cbccf1cb34fa
This allows to use words as mos repo version
identifiers while it is still possible to build
packages with versions defined like X.Y.Z
Change-Id: I24e88192c6e52cb3de000fcf99ef3eec03c4e8c3
Closes-Bug: #1529251
Env var $TEMP is not set anywhere, and always empty.
There is no point to run 'mkdir $TEMP'.
Change-Id: I04345d8431dca0b703e0edaf00aee168df8acc3c
Related-Bug: #1522909
Since some functionality is missing in 'fuel-bootstrap' that is needed
for Ironic, we have to revert fuel-bootstrap-image-builder.
Once bugs in fuel-bootstrap are fixed and fuel-bootstrap proper tested
with Ironic, Ironic can be switched to fuel-bootstrap.
Related-Bug: #1527605
Related-Bug: #1527608
This reverts commit 74e9affd54.
Change-Id: Ic8738fdf386ddb4770a164b599e0c3ac609fb208
Fuel packages should be aligned to the same versioning schema
as we have in perestroika and specs [1]
[1] https://github.com/openstack/fuel-specs/blob/master/specs/ \
8.0/separate-mos-from-centos.rst
Closes-bug: #1524758
Change-Id: I1b5bd2617b6d388b2c4852d5f74ae3adf84f8991
This module has not been used since 6.1 when
we suspended support Centos based clusters.
Anyway, target image building must be a part
of deployment process not ISO build process, so
target images should be built on the master node
in runtime.
Closes-Bug: #1523931
Change-Id: I86d4b2c886ea7da3254ce95033ce9f14d8a8e191
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
Let's install only base packages (into chroot), required by
rpm packages build. The rest of the packages should come from
BuildRequires section.
This will allow us to prepare late artifacts a little bit faster
in case of BUILD_PACKAGES=0
Change-Id: Ica432b3c5e80ac9e6fbda4030a07b312732c4a29
Build iso with BUILD_PACKAGES=0:
* Late packages:
- fuel-bootstrap-image,
- fuel-docker-images,
should be always built in spite of BUILD_PACKAGES flag,
since they depend on the first level artifacts (packages)
and are not updated in the mirrors yet;
* Build fuel-bootstrap-image-builder package for astute container
* Update requirements-*.txt file by adding all fuel packages only in case
BUILD_PACKAGES=0
* Update docker-images spec to support fakeroot rpmbuild approach
Related-bug: #1460480
Change-Id: I00ea15c9df9277d48a294f8379d87352c017becb
We moved fuel-web/network_checker directory to a separate project
and now we need to build network-checker package using the
source code from this new repo.
Change-Id: I365a9ee20374be1515c577ab6c6426bdb20a53e6
We moved fuel-web/shotgun directory to a separate project
and now we need to reflect the fact in here.
Change-Id: Ibe1e229391b941710355e862b956f50f2dea37ec
Related-Bug: #1506894
We moved fuel-web/fuelmenu directory to a separate project
and now we need to reflect the fact in here.
Change-Id: I89547a4e177dfdb9194d4b9f202a4faaf25d5d87
Related-Bug: #1506885
This reverts commit b59f69257b.
We're implementing automatic configuration of DHCP ranges in
dnsmasq so this workaround is no longer needed.
Co-Authored-By: Aleksandr Didenko <adidenko@mirantis.com>
Blueprint: dynamic-dnsmasq
Change-Id: I9dc55ff18b6faac36ff7603dffe9de0dcd4ada22
To support several Centos versions we need
both Centos6.5 and Centos6.6 images to be
in place. But during master node upgrade
we update fuel-target-centos-images package
and Centos6.5 images disappear. The case is
the same as for fuel-library.
Change-Id: I5b974593d2375bcc6367322fcf182f3dcc006d05
Closes-Bug: #1485527
Now Multiple Cluster Networks implented by
manual modification of dnsmasq.template inside container.
With this approach user-difened networks will be overwritten
by puppet when docker container will be restarted.
We going to create astute section EXTRA_ADMIN_NETWORKS
which will contaion all additional networks used for dhcp.
For backward compatibility we going to execute script which
will create this section from dnsmasq.template
Closes-Bug: #1473483
Change-Id: I287e717cd6b1c70e62ddcdd09aee421805862d37
The bootstrap image is generated during the master node deployment.
Note: the CentOS based image is used by default.
blueprint fuel-bootstrap-on-ubuntu
Depends-On: I2fce1a4b1f485bf509bfe2ea81291ceebf57e4ef
Depends-On: I8916208ec5a7e54b4c784861fe20a94737267f76
Depends-On: Icdca2858889b83bb86c8d62fdc6fe530d2af705c
Change-Id: I3581b4d997a82aafe9744b33bbb65a60b5dca8cd
We need to be able to build packages-late target in staging
mirror job, which builds late artifacts:
- fuel-bootstrap-image
- fuel-target-centos-images
- fuel-docker-images
Related-blueprint: package-fuel-components
Change-Id: Ia64ad186c4e33585df6915576300e33df2d37265
1) Re-Define release value for packages:
* Building from master branch:
${num_of_commits}.1.git${git_sha}
* Building from gerrit:
${num_of_commits}.2.gerrit${request_number}.${patchset_number}.git${git_sha}
2) BUILD_PACKAGES=1 (true by default), we build packages during make iso
process. The resulted packages should have naming schema described above (see 1).
To define the correct naming schema we created version file during source preparation:
$(BUILD_DIR)/packages/sources/$1/$2
Format of the version file is:
VERSION=$(PRODUCT_VERSION)
#ifdef gerrit
RELEASE=${num_of_commits}.2.gerrit${request_number}.${patchset_number}.git${git_sha}
#else
RELEASE=${num_of_commits}.1.git${git_sha}
#endif
DEBFULLNAME=Commit Author
DEBEMAIL=Commit Author email address
DEBMSG=Commit message
This file is parsed each time on building corresponding package and the values
passed to build uility:
* rpmbuild
* dch
3) Versioning applied to all Fuel packages:
- fuel-main
- fuel-library$(PRODUCT_VERSION)
- astute
- nailgun
- fuel-ostf
- python-fuelclient
Versioning is NOT used for late-packages and docker-images:
- fuel-docker-images
- fuel-bootstrap-image
- fuel-target-centos-images
4) FUELMAIN_GERRIT_COMMIT variable added, which only used for custom_iso job and
must be defined explixitly if we are working on some patchset from fuel-main
project, otherwise fuel-main packages will have master branch naming schema (see 1).
Implements blueprint: package-fuel-components
Change-Id: Id43a507d521bb13f06b33ef2967277098f242211
Because of the shift of ruby-2.1 to ruby21
package naming, the ruby21 package should be
used as the default ruby env for RPM building
Change-Id: Id2802bf1c3ab163efff905741c62beadf3d4b82d
Partial-Bug: #1403088
rpmbuild verbose option generated very huge output.
These output messages are useless, so they could be skipped
Closes-bug: #1443496
Change-Id: Iedcde7d3a195d5037d17ae60fc5062ac362e6eb5
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
* Use "make sources" to prepare sources for building packages
The list of packages is defined in packages_list
* Use "make clean-repos" to clean repos
Related-bug: #1427239
Related-bug: #1433653
Change-Id: Ieef6728535f435bb7190c4cf0f90d19903a7ef8b
This package is going to provide a set of executable
scripts which we need for provisioning to make it work.
At this iteration we only put download-debian-installer
script which is going to be used for downloading ubuntu debian-installer
kernel and initrd from user defined repositories.
Depends on: I9e7ac50d19ea8b984e1ad2831c73f2cb88ddbd54
Change-Id: I6628d85c681f21269cba157fc2650e45d730fbb9
Implements: blueprint consume-external-ubuntu