Commit Graph

2602 Commits

Author SHA1 Message Date
Ian Wienand
d65678678e Move dib-run-parts into diskimage-builder
Move dib-run-parts from dib-utils into diskimage-builder directly.

For calling outside the chroot, we provide a standard entry-point
script.  However, as noted in the warning comment, the underlying
script is still copied directly into the chroot by the dib-run-parts
element.  I believe this to be the KISS approach.

This removes the dependency on dib-utils.  We have discussed this
previously and nobody seemed to think retiring dib-utils was going to
be an issue.

This also updates the documentation to not mention dib-utils, or using
disk-image-create via $PATH setup, but rather gives instructions on
installing from pip with a virtualenv.

Change-Id: Ic1e22ba498d2c368da7d72e2e2b70ff34324feb8
2016-11-04 17:07:37 +11:00
Luca Lorenzetto
c7219a5a60 Avoid disabling rhel-7-server-rh-common-rpms
while using disk-image-builder for building overcloud images for TripleO
using RDO, this repository is (in my opinion) wrongly disabled because
contains certain dependencies needed by RDO packages.
Example: python-cheetah is required for python-nova, but is not
available through RDO repository but only from
rhel-7-server-rh-common-rpms

Closes-Bug: #1638938
Change-Id: I76824c8ec02590397f1ff1d4f177ad061c7bf441
Signed-off-by: Luca Lorenzetto <lorenzetto.luca@gmail.com>
2016-11-03 15:15:42 +01:00
Markos Chandras
435f52a7d1 elements: zypper-minimal: Mount common pseudo filesystems
Mount all the usual /dev /sys /proc pseudo filesystems during the
root.d phase in order to make sure they are available for the rpm
post-installation phases.

Change-Id: I28221debf1036d9eb5137161757eb30811eafab1
2016-11-02 22:08:35 +00:00
Jenkins
c0219d0528 Merge "Updated from global requirements" 2016-11-02 21:06:16 +00:00
Jenkins
85e97a18bf Merge "Make xenial the ubuntu default" 2016-11-02 16:05:10 +00:00
OpenStack Proposal Bot
bc66298937 Updated from global requirements
Change-Id: Ib41e9cf05743c05fb299f84516d9179ea41e3f46
2016-11-02 15:31:00 +00:00
Derek Higgins
d5225055ef dhcp-all-interfaces: support Centos/RHEL 6
On Centos and RHEL 6 the init system is upsart but but networking is using
sysv compatabiliy and a code path the handle this situation.

We can't use DISTRO_NAME because the centos-minimal element sets it to
centos for CentOS 7 but the centos element sets it to centos for CentOS 6.

Change-Id: Ib8e33ed78b3d6a5737eb7449bccef2d33f72b131
Closes-Bug: #1638527
2016-11-02 11:13:58 +00:00
Ian Wienand
7446c32197 Move diskimage-image-create to an entry point
It has always been a weird thing that dib is a python package, but
is totally driven by the disk-image-create script.  It creates this
strange division that is hard to explain.

This moves disk-image-create to a regular python entry-point

Currently, this simply exec()s the original disk-image-create script.

However, we now have a (private) interface between disk-image-create
written in python and the driver shell script.  Here's some things we
could do, for example:

* Argument parsing is generally nicer in Python, and then end result
  is mostly just setting environment variables to flag different things
  in the shell script.  I could see us moving the argument-parsing into
  diskimage_builder.disk_image_create:main() and just setting things in
  os.environ before the exec()).

* I7092e1845942f249175933d67ab121188f3511fd sets IMAGE_ELEMENT_YAML in
  disk-image-create by calling-back to element-info.  We can just call
  element_dependencies.find_all_elements() in here an export is to
  os.environ before disk-image-create starts.

* remove need for ramdisk-image-create symlink by just exporting
  IS_RAMDISK based on sys.argv[1] value

* you could even unit test some of this :)

Change-Id: I69ca3d26fede0506a6353c077c69f735c8d84d28
2016-11-02 05:12:11 +00:00
Ian Wienand
97c01e48ed Move elements & lib relative to diskimage_builder package
Currently we have all our elements and library files in a top-level
directory and install them into
<root>/share/diskimage-builder/[elements|lib] (where root is either /
or the root of a virtualenv).

The problem with this is that editable/development installs (pip -e)
do *not* install data_files.  Thus we have no canonical location to
look for elements -- leading to the various odd things we do such as a
whole bunch of guessing at the top of disk-image-create and having a
special test-loader in tests/test_elements.py so we can run python
unit tests on those elements that have it.

data_files is really the wrong thing to use for what are essentially
assets of the program.  data_files install works well for things like
config-files, init.d files or dropping documentation files.

By moving the elements under the diskimage_builder package, we always
know where they are relative to where we import from.  In fact,
pkg_resources has an api for this which we wrap in the new
diskimage_builder/paths.py helper [1].

We use this helper to find the correct path in the couple of places we
need to find the base-elements dir, and for the paths to import the
library shell functions.

Elements such as svc-map and pkg-map include python unit-tests, which
we do not need tests/test_elements.py to special-case load any more.
They just get found automatically by the normal subunit loader.

I have a follow-on change (I69ca3d26fede0506a6353c077c69f735c8d84d28)
to move disk-image-create to a regular python entry-point.

Unfortunately, this has to move to work with setuptools.  You'd think
a symlink under diskimage_builder/[elements|lib] would work, but it
doesn't.

[1] this API handles stuff like getting files out of .zip archive
modules, which we don't do.  Essentially for us it's returning
__file__.

Change-Id: I5e3e3c97f385b1a4ff2031a161a55b231895df5b
2016-11-01 17:27:41 -07:00
Gregory Haynes
af69cb8020 Fail on element-info error
If element-info fails we do not detect it due to it being run in a
subshell. Whenever this happens it is a terminal error (theres no way we
can run without an expanded set of elements) so lets detect and fail
early.

Change-Id: Ibdeecf19bc2824982273ef5cda6d7b7b614e484e
2016-11-01 17:25:33 -07:00
Jenkins
db4a88642e Merge "elements: simple-init: Remove SUSE interfaces" 2016-11-01 22:20:33 +00:00
Jenkins
1532053c5f Merge "Remove RedHat grub workaround install" 2016-11-01 12:49:43 +00:00
Jenkins
8859d52834 Merge "Changed the home-page of diskimage-builder in setup.cfg" 2016-11-01 07:11:39 +00:00
Jenkins
c983294f8c Merge "Don't log datestamp by default in functional tests" 2016-11-01 01:55:39 +00:00
Jenkins
cc1b37e731 Merge "Don't set tracing in environment files" 2016-11-01 01:42:59 +00:00
Markos Chandras
290925bd5e elements: zypper-minimal: Refresh repositories after adding the cache
The refresh operation must happen after the cache has been added in
order to ensure that whatever is in the cache is still relevant to
the current build and we are not using stale packages.

Change-Id: Iafd718e9738f85b8c235806c027665730f44d89b
2016-10-31 23:34:39 +00:00
Markos Chandras
348a6b337a elements: opensuse-minimal: Add support for building Tumbleweed images
Add DIB_RELEASE=Tumbleweed option in order to build openSUSE Tumbleweed
images

Change-Id: I44cc04ef5a993c1a7f0078e4161888b52995f247
2016-10-31 23:33:16 +00:00
Gregory Haynes
7cc65d3cbd Merge branch 'master' into feature/v2
Change-Id: I0747a27560161ef869868967ab140b5d0be9d4da
2016-10-31 11:21:38 -07:00
Bruno Cornec
2854f4063b Fix ironic-python-agent image not loading vfat mod
Closes-Bug: 1589450
Load the vfat driver as a Pre Exec action for systemd before starting
ironic-python-agent in order to allow reading of parameters.txt file
required for the ironic-python-agent to find its configuration.

Change-Id: Ibf74dd1b2678ea76e0676711a7aa5ba6b88d5421
2016-10-28 19:47:17 +02:00
nizam
3b855faf5f Don't include openstack/common in flake8 exclude list
The directory openstack/common was used to keep codes from
oslo-incubator, we have retired oslo-incubator, so don't use
this directory any more

Change-Id: Icd13d32674b117626fbecdfdec2881463a87ad5d
2016-10-28 19:52:25 +05:30
nizam
51f982e376 Drop MANIFEST.in - it's not needed by pbr
diskimage-builder already uses PBR:-
setuptools.setup(
    setup_requires=['pbr>=1.8'],
    pbr=True)

This patch removes `MANIFEST.in` file as pbr generates a
sensible manifest from git files and some standard files
and it removes the need for an explicit `MANIFEST.in` file.

Change-Id: Iad8b724c1d1e0ef358606b13da4569d881ec740a
2016-10-28 19:48:33 +05:30
nizam
4095046a25 Changed the home-page of diskimage-builder in setup.cfg
Instead of pointing to
https://git.openstack.org/cgit/openstack/diskimage-builder, the
homepage has been changed to point to the homepage of
diskimage-builder.

Change-Id: I795a5fd343ff7a06bfe43ae4a76dc24136db99a2
2016-10-28 19:47:56 +05:30
Jenkins
8abc90b22d Merge "Turn down yum install-packages" 2016-10-28 01:26:26 +00:00
Jenkins
5d2e7bade5 Merge "elements: source-repositories: Add git package mapping for SUSE" 2016-10-25 05:33:36 +00:00
Jenkins
c00777e761 Merge "elements: growroot: Add SUSE package mappings" 2016-10-25 05:27:38 +00:00
Jenkins
42f1fb6c68 Merge "elements: zypper: Do not pull recommended packages" 2016-10-25 05:26:55 +00:00
Ian Wienand
e531980a14 Remove RedHat grub workaround install
AFAICT this is no longer necessary.  I've tested minimal and image
builds and they seem to work.

The original problem seems to be with installing the package in the
chroot, although it was never quite clear it ever affected the Red Hat
path.

This code is currently broken (see
I884cb1e78ad8c31d985f3fc94a58091b993edd7d).  This is proposed as an
alternative to I74eed074494134334d5e49042bb5214bd0dd7339.

Related-Bug: #1627000

Change-Id: Iafe3611f4eec3c6357587a6cae6a30a261686ead
2016-10-25 15:52:27 +11:00
Jenkins
3a14b531fd Merge "Remove deprecated expand-dependencies arg" into feature/v2 2016-10-24 06:18:44 +00:00
Jenkins
1d3d59470a Merge "Remove deprecated deploy-ironic element" into feature/v2 2016-10-24 03:55:50 +00:00
Jenkins
41dc4ab5f9 Merge "Remove deploy element" into feature/v2 2016-10-24 03:48:06 +00:00
Jenkins
dd93435b77 Merge "Remove deprecated ironic-discoverd-ramdisk" into feature/v2 2016-10-24 03:47:40 +00:00
Paul Belanger
872da68a90
Add support for bindep.txt
Currently, this is a noop, since diskimage-builder currently uses
tests/install_test_deps.sh to manage OS dependencies. The next patch
in the series, will complete the migration to bindep.

Change-Id: I3b599983106b87fec6a4b6348469ed037654810e
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2016-10-23 22:32:40 -04:00
Ian Wienand
6fb658a5f1 Don't log datestamp by default in functional tests
We're getting double time-stamps in the console log of upstream jobs.
Move the logging of a prefix datestamp into a "-t" option to retain
the status quo prior to Id9ea5131f0026c292ca6453ba2c80fe12c47f808 (we
could, of course, do it the other way and turn if off in the jobs, but
since we didn't have it before...)

While poking, make the time-stamp consistent and always prefixed if -t
is turned on.

Also, it seems the parallel options got a bit of sync with what got
merged.  Add "-j" documentation and remove unused "p" option.

Change-Id: Ic7c2ebeca3f9d5784cac59505b6e6181151f5805
2016-10-24 11:21:43 +11:00
Markos Chandras
7f1494a433 elements: zypper: Do not pull recommended packages
Recommended packages are usually useful but we normally don't need
them in order to have a working system. As a result, avoid pulling
them in when doing a regular package installation or a distribution
update. Extra packages can be pulled in using the usual '-p' parameter
or from within the elements that actually need them. The results of
this change are quite significant, resulting to gains from a few dozen
of MBs up to a few hundred depending on the selected elements.

Change-Id: I5838829c631990c7a1f3b67548accd9a603fe20c
2016-10-20 19:24:22 +01:00
Ian Wienand
a44b55ccaa Turn down yum install-packages
When debugging, this is very noisy for very little value.  If we need
to specifically debug this script we can turn up the level.

Change-Id: Ie15f16397c37e718aa919853697cbf2c5c08503c
2016-10-20 15:19:31 +11:00
Ian Wienand
9e392f56b0 Don't set tracing in environment files
Because environment files are sourced into the current environment,
they shouldn't be setting global settings like tracing else they
affect every preceeding import.  This is quite confusing when only
half your imports are traced in the logs, because it was either turned
on, or off, by a preceeding environment import.

There is a corresponding dib-run-parts change in
I29f7df1514aeb988222d1094e8269eddb485c2a0 that will greatly increase
debugability for environment files by deliberately logging what files
are sourced and consistently turning on tracing around their import.

This isn't strictly necessary (since dib-run-parts with the prior
change will just turn tracing off after import anyway) but it's a
decent cleanup for consistency.  A bare-minimum dib-lint check is
added.  Documentation is updated.

Change-Id: I10f68be0642835a04af7e5a2bc101502f61e5357
2016-10-20 13:58:00 +11:00
Markos Chandras
cfcbd4ffbe elements: source-repositories: Add git package mapping for SUSE
The 'git' command line tool is in the git-core SUSE package

Change-Id: Ib2c5dc5ab9bbde2520f43682c654a9c3270bac09
2016-10-19 17:53:01 +01:00
Markos Chandras
1fe1e3f606 elements: growroot: Add SUSE package mappings
Add growpart and e2fsprogs package mappings for SUSE.

Change-Id: I4544c3b5bd561f7483cd10f65e2d6366b52d57cd
2016-10-19 16:16:35 +01:00
Markos Chandras
3d44a08c53 elements: runtime-ssh-host-keys: Add openssh-client mapping for SUSE
The SUSE 'openssh' package contains the openssh client.

Change-Id: Ic1da63b6c62158b128d44ac48a0657d5d7c53f67
2016-10-18 23:26:01 +01:00
Jenkins
2e0f812efa Merge "Add option to be able to run_functests.sh in parallel" 2016-10-18 21:03:05 +00:00
Paul Belanger
18a664dd32 Don't use ssh-keygen -A for init scripts
We are running into race conditions with glean, which ssh-keygen -A is
not handling properly.  So, create a new script to first check if the
file exists, then use 'yes' to disable overwriting of existing files.

Change-Id: Ie82e1e3f832fcc8f32c7e1335c5f0ee16d36f9a8
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
2016-10-18 14:25:28 -04:00
Markos Chandras
89c708ce61 elements: simple-init: Remove SUSE interfaces
Make sure SUSE interfaces are removed as well.

Change-Id: If993dc606217f2ec243392ac2fa588ebae1cce86
2016-10-18 19:02:41 +01:00
Jenkins
85354e5cd8 Merge "Add opensuse-minimal element" 2016-10-18 16:27:03 +00:00
Jenkins
e0f7b6c6d6 Merge "Add zypper-minimal element" 2016-10-18 16:24:07 +00:00
Jenkins
300d5d96a2 Merge "Remove deprecated serial-console element" into feature/v2 2016-10-14 17:13:38 +00:00
Jenkins
96ce53fa16 Merge "Fix grub installation for RHEL" 2016-10-12 14:22:49 +00:00
Jenkins
066b448d7c Merge "start cloud-init-local in the boot runlevel" 2016-10-12 02:37:04 +00:00
Matthew Thode
bb29082910
Document install of diskimage-builder on Gentoo
Change-Id: I27bf3499f998dcbdeb5cfebddde306e5200cc0b5
2016-10-11 20:17:49 -05:00
Gregory Haynes
fdffa56ff2 Add element for setting sysctl values
Theres a pretty standard workflow for setting a sysctl value which will
be applied on image boot which was written by tripleo. Lets move this in
tree as other folks (like Octavia) would like to depend on it.

Change-Id: I3c266870d417cdba3196f5fa65c4cd634ab13173
2016-10-10 15:33:48 +00:00
Jenkins
22bdaad684 Merge "Move the opensuse mkinitrd script to the zypper element" 2016-10-10 14:36:12 +00:00