Commit graph

2246 commits

Author SHA1 Message Date
Monty Taylor
4bddca2573 Add base element for using docker as image base
Docker can export root filesystems, which is what we want out of root
elements. Make a very simple passthrough element that will grab a docker
image and export it into a root filesystem.

Change-Id: Ie1e2d5dd5a61558f100e02c953b18d697a8fe8a2
2015-07-19 10:23:34 +00:00
Monty Taylor
1187f9d5df Add docker output support
We can already produce tarballs, which is the input format docker import
expects. This makes it trivial to add docker as an output format.

Co-Authored-By: Dan Prince <dprince@redhat.com>

Change-Id: Ib60db3b717d33d4cf3181d70fe0ffbfa86fd5d02
2015-07-19 10:20:39 +00:00
Jenkins
61914629f1 Merge "Work around yum/dnf differences" 2015-07-17 23:44:43 +00:00
Jenkins
148a5fc40a Merge "Add YUM variable to for Fedora >= 22" 2015-07-17 23:44:14 +00:00
Jenkins
1663c42dab Merge "ramdisk: enable ppc64 support for symlink" 2015-07-16 23:07:12 +00:00
Gregory Haynes
3a186698a6 Add init-scripts directory support
There is a common pattern of if init_system == foo then install init
script foo-service-init into /etc/init... Lets encode this pattern by
allowing elements to put files into init-scripts/init-system directories
and then copying the appropriate files for them.

Change-Id: I541db18a0a8c5e0755a0af5732f4e15a5e5cf984
2015-07-16 17:59:05 +01:00
Jenkins
cdf4467a8a Merge "Cleanup the build directories earlier" 2015-07-14 11:50:53 +00:00
Gregory Haynes
89d0896b97 Document our supported distributions
Before we commit to supporting a set of distributions, we should
document what they are.

Change-Id: I076c326ec0eb4d1640a4229c0dfebd3d2cc880b4
2015-07-13 00:36:44 +00:00
Clint Adams
b0ee421a2a Use official mirror name for debian-minimal
The canonical name of the official Debian mirror redirector is
httpredir.debian.org.

Change-Id: I61455919d84d414d5da7df699a5b14439f07ff3d
2015-07-09 23:41:49 -04:00
Antoine Musso
ec2be8a75e debian: install DHCP client and ifconfig packages
When building an image having the elements debian and vm, cloud-init
fails with:

    ci-info: !!!!!!!!Net device info failed!!!!!!!!

Looking at the source code, it executes ifconfig to gather informations
but the `debian` elements does not provide it.  There is also no DHCP
client available which is rather painful.

Install isc-dhcp-client to provide a DHCP client.
Install net-tools to provide ifconfig, required by cloud-init.

Ref: https://phabricator.wikimedia.org/T105152
Change-Id: I76dfd4f87a5c9f08e7c572fb4f5ebeeb34f5f66a
2015-07-09 14:01:13 +02:00
Om Kumar
870ea5bb5e Removes hardcoded refrences for ethernet interface
Remove hardcoded refrences for ethernet interfaces from ironic-agent
and sets a dependency on dhcp-all-interfaces to ensure it works for
all interfaces for all other operating systems.

Change-Id: I7ae6d1c5bd9911ef3db45187c0010cf0973badf1
Closes-Bug: #1471802
2015-07-08 07:14:06 +05:30
Jenkins
7aab6c63c2 Merge "Remove deprecated disk-image-get-kernel" 2015-07-07 01:37:51 +00:00
Gregory Haynes
8cf37064a5 Remove deprecated disk-image-get-kernel
This script has been deprecated in favor of the baremetal element for
some time. Lets remove it.

Change-Id: Idd7db766a039ba8e74f0e98e74eb27246e753f4b
2015-07-06 16:44:07 +00:00
Jenkins
e33c3d96ad Merge "Document only exectuables in phase dirs policy" 2015-07-02 20:03:27 +00:00
Dirk Mueller
5f5d9e3548 opensuse: Update README
The fix for static links to the latest image has been rolled out.
Update documentation accordingly.

Change-Id: Ic92d0e1d584ca2bf1d82f411102079cb4455bddb
2015-07-01 22:03:50 +02:00
Dirk Mueller
b422d3af16 openSUSE: Fix link to the images download folder
Change-Id: Idc1c3c354bb77871b40e8c0f3144ee38d016c3d5
2015-07-01 22:03:45 +02:00
Jenkins
c08d1cbaec Merge "Optimize Python install in deploy-targetcli" 2015-06-29 20:21:46 +00:00
Jenkins
fb52bb0e1e Merge "dib-lint: make it work on Mac OS X" 2015-06-29 13:43:07 +00:00
Monty Taylor
1603aa2457 Use the init scripts from the glean package
The init scripts have now been moved in to glean itself, so just consume
them directly.

Change-Id: Ib85128579c62020df23d73404c0563894038d2dd
Depends-On: I2ed25ce434023bfc8b6a88a08c0c06c1cef63982
2015-06-27 12:51:25 -04:00
Jenkins
96c134b429 Merge "Have glean set hostname if a config drive exists" 2015-06-26 20:44:37 +00:00
Jenkins
070c8d34c8 Merge "Add oat-client element" 2015-06-26 19:49:29 +00:00
Gregory Haynes
243d28ba72 Have glean set hostname if a config drive exists
Glean now supports setting a hostname, lets ask it to do this.

Change-Id: Iea8d210b4b5add8fed4038cf81ce28d1d7c7c1c4
Depends-on: Ia9155bc565ad79af44d88acc06759be2bf4e5f20
2015-06-26 14:40:34 +00:00
Jenkins
8fe0009534 Merge "Change simple-init to use a PATH variable" 2015-06-26 02:32:56 +00:00
Lin Tan
59f83ef37b Add oat-client element
This element installs oat-client on the image, that's necessary for
trusted boot feature in Ironic to work. This element only works on Fedora.

Intel TXT will measure BIOS, Option Rom and Kernel/Ramdisk during trusted
boot, the oat-client will securely fetch the hash values from TPM.

Change-Id: I0f1221b5708e9a5792df62ee6e73034f8bf1577c
2015-06-26 09:57:12 +08:00
Jenkins
ba6959bb92 Merge "Allow source-repositories ref to be "*"" 2015-06-26 01:40:54 +00:00
Jenkins
c2a0b7e949 Merge "Only chown tmp dirs when they are a tmpfs mount" 2015-06-26 01:40:29 +00:00
Jenkins
c742daaa95 Merge "Wait longer for root device to become available" 2015-06-25 20:43:00 +00:00
Jeremy Stanley
f82400b432 Allow source-repositories ref to be "*"
Passing a source-repositories ref of "*" should signal fetching all
heads similar to when a non-cached ref is requested. Reuse the same
fallback logic, but skip unnecessary checks since "*" is not a real
refname. Also expand the fallback to update tags, and to --purge
local refs that no longer exist on the remote for additional safety.

Change-Id: I4562c9689a8d235ebe09b2f7178aa5890dbc85f1
2015-06-24 20:50:06 +00:00
Antoine Musso
9bd84d4044 Only chown tmp dirs when they are a tmpfs mount
Temp dirs are created with mktemp and thus belong to the user. There
is no need to chown them unless we used `mount -t tmpfs`.

Move chown under the tmpfs_check conditional.

Change-Id: I37efe18ced3a06d461364dc5cb20600f1527e995
2015-06-24 13:58:31 +00:00
Ian Wienand
b183e024ba Work around yum/dnf differences
Some minor workarounds for Fedora >= 22 where dnf is the default
package manager. The changes are documented on the Fedora release
notes https://fedoraproject.org/wiki/Changes/ReplaceYumWithDNF

Change-Id: I7d7d6f5d294980dcb217d6190a1efd9e0bbea9a6
2015-06-24 09:20:45 +10:00
Ian Wienand
f112b6f690 Add YUM variable to for Fedora >= 22
Add a YUM variable that defaults to dnf for Fedora 22 and greater.  At
this stage the yum element can do double-duty with dnf -- it's mostly
the same.  If we find it starts getting too unwieldy we can separate
this later.

Modify the install-packages for yum to use this variable when set, but
default back to "yum" to retain the status-quo.

Change-Id: Ibff71465b392d9f66b6f93955ff9223575d6165c
2015-06-24 09:20:45 +10:00
Ben Nemec
3f3cded06b Optimize Python install in deploy-targetcli
Installing Python to a ramdisk takes quite a long time because of
the way dracut checks for dependencies of every single file
installed.  We could avoid that, but then we might miss a required
library file.

This change alters the installation method to speed up
the process.  First, it creates a list of files that are needed and
then installs them all at once using inst_multiple instead of calling
inst on each file separately.  This doesn't make a huge difference,
but in my testing it is marginally faster.

Second, and more significantly, we don't need the *.pyo and *.pyc
files as those are simply an optimization to speed up module
loading.  Because the deploy ramdisk is a short-lived operation,
we probably lose more time transferring those extra files to the
target system than we save in improved load times.

In my testing, these two changes netted about a 20% improvement
in build times, and about 13% decrease in image size.

Change-Id: Ibc2b778c28fc9fb7177380dffe8dbce5722d0733
2015-06-22 13:19:14 -05:00
OpenStack Proposal Bot
c4ab253653 Updated from global requirements
Change-Id: Iff075e25eeb091650ac85ca1e1af7a1fd3394d3e
2015-06-22 08:20:17 +00:00
Antoine Musso
35584efa90 dib-lint: make it work on Mac OS X
Pass an explicit template to mktemp since that is required on Mac OS X.
Hardcoded to /tmp since I did not want to bother validating TMPDIR which
is user supplied.

Explicit define a repeating group which causes a grep error:
    repetition-operator operand invalid

Change-Id: Ib23cc15db7f7dfdd611280884e46342562d545df
2015-06-18 11:12:01 +02:00
Jenkins
6bf4631cfa Merge "Add debian build test case" 2015-06-17 21:10:23 +00:00
Ben Nemec
05764de6e7 Wait longer for root device to become available
On some systems, it can take longer than 10 seconds for the root
disk to be detected.  Because enterprise hardware.  Increase the
wait time to 60 seconds so we don't incorrectly fail due to a
missing root device.

Change-Id: I4f67ef0295af8f2ae783fe3aea347b41987c6a66
2015-06-17 11:53:57 -05:00
Ian Wienand
19f769f049 Revert "Revert "Ensure DIB_RELEASE is exported for fedora""
This reverts commit 7a4c396948.

Note this time it sets it to F21, not F22, and gets rid of the
duplicate definition that doesn't get exported.

Change-Id: I240ad25d7a73c379559517a2a8399ae8c098314b
2015-06-17 11:24:35 +10:00
Gregory Haynes
1fe62a5211 Add test for centos 6
Lets have a test that we can build centos 6 images using the centos
element.

Change-Id: I9c818b9404db2e337fbdb5837d883b2fe103a8db
2015-06-16 21:23:12 +00:00
Gregory Haynes
9a166b9df6 Document only exectuables in phase dirs policy
Having data files in the phase subdirs is an easy source of confusion
in reviews (especially when the data file is a script) and theres really
no reason to be putting data files there at this point. Lets make a
convention out of not doing this.

Change-Id: I99571a2a49e14e8c709af20f6d13d662ac745eb4
2015-06-16 17:03:17 +00:00
Julia Kreger
5487af6b2a Change simple-init to use a PATH variable
Changed simple-init to utilize a PATH variable in order to allow
for glean to be executed in the event the operating system places
glean in /usr/bin, such as what occurs on CentOS 7.

Change-Id: Ibf95fcd7ca368595e8fb3473f25eb0a919726e39
2015-06-16 10:24:28 -04:00
Jenkins
d711b5fefb Merge "Revert "Remove unused map_nbd function"" 2015-06-12 20:47:43 +00:00
Jenkins
de90ad1cbe Merge "Dont fail if were missing setfiles" 2015-06-12 04:53:37 +00:00
Jenkins
1f9a113926 Merge "CentOS-6 resize support" 2015-06-12 04:05:32 +00:00
Gregory Haynes
037e71c023 Add explicit f21 test
Now that we are changing fedora to default to f22, lets gate on f21
still working.

Depends-On: Icbd08fb5aa69446ad65ff72af631902c4e1fa12b

Change-Id: I8b7b957fafc028aa2970803bd23ea644114f9b7f
2015-06-11 16:39:50 +00:00
Gregory Haynes
fe559242cb Dont fail if were missing setfiles
We are using which to find the location of setfiles. Our script is set
-e though, and we need to also be able to handle the case where setfiles
does not exist (like on centos-minimal).

Change-Id: If53c7a80efc081b95b143c28be64d39b12bfb469
2015-06-11 01:47:07 +00:00
Dan Prince
96b01a7d2a Revert "Remove unused map_nbd function"
This reverts commit ea4a823810.

This function was actually still in use in lib/common-functions
and removing it causes the disk-image-get-kernel /bin
to fail entirely.

Change-Id: Icddb3ca369922a6ea915af8b1b62c434cb1bdf28
Closes-bug: 1464031
2015-06-10 18:37:08 -04:00
yogananth subramanian
f0f945d136 ramdisk: enable ppc64 support for symlink
Patch enables symlink /usr/lib -> ../lib  support for ppc64 Fedora deployment ramdisk.

Change-Id: I01994685292d7c1cae0f9ec1a1052d68420b4b82
Closes-Bug: #1463357
2015-06-09 16:10:13 +05:30
Jenkins
c9f44b29bb Merge "Follow symlink for elements" 2015-06-04 23:01:58 +00:00
Jenkins
6b1d482423 Merge "Add Ironic API version to passthru URL for deploy-ironic" 2015-06-04 22:13:43 +00:00
Jenkins
b163db3196 Merge "Skip backups and other non-relevant files for dib-lint" 2015-06-04 22:13:24 +00:00