Compare commits

...
Sign in to create a new pull request.

27 commits

Author SHA1 Message Date
Daniel J Walsh
4e9e753c18 Fix handling of buildah run command options 2018-02-27 05:01:08 -08:00
Daniel J Walsh
e2d8cbfd02 Added handing for simpler error message for Unknown Dockerfile instructions.
Change default certs directory to /etc/containers/certs.dir
Vendor in latest containers/image
Vendor in latest containers/storage
build-using-dockerfile: set the 'author' field for MAINTAINER
Return exit code 1 when buildah-rmi fails
Trim the image reference to just its name before calling getImageName
Touch up rmi -f usage statement
Add --format and --filter to buildah containers
Add --prune,-p option to rmi command
Add authfile param to commit
Fix --runtime-flag for buildah run and bud
format should override quiet for images
Allow all auth params to work with bud
Do not overwrite directory permissions on --chown
Unescape HTML characters output into the terminal
Fix: setting the container name to the image
Prompt for un/pwd if not supplied with --creds
Make bud be really quiet
Return a better error message when failed to resolve an image
Update auth tests and fix bud man page
2018-02-12 13:59:50 -05:00
Daniel J Walsh
832249deda Added handing for simpler error message for Unknown Dockerfile instructions.
Change default certs directory to /etc/containers/certs.dir
Vendor in latest containers/image
Vendor in latest containers/storage
build-using-dockerfile: set the 'author' field for MAINTAINER
Return exit code 1 when buildah-rmi fails
Trim the image reference to just its name before calling getImageName
Touch up rmi -f usage statement
Add --format and --filter to buildah containers
Add --prune,-p option to rmi command
Add authfile param to commit
Fix --runtime-flag for buildah run and bud
format should override quiet for images
Allow all auth params to work with bud
Do not overwrite directory permissions on --chown
Unescape HTML characters output into the terminal
Fix: setting the container name to the image
Prompt for un/pwd if not supplied with --creds
Make bud be really quiet
Return a better error message when failed to resolve an image
Update auth tests and fix bud man page
2018-02-12 12:15:22 -05:00
Lokesh Mandvekar
91dd8b78bf buildah-0.11-2
- Resolves: upstream gh#432
- enable debuginfo for non-fedora packages

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2018-02-05 17:33:42 -05:00
Daniel J Walsh
a86b4b2ba3 Add --all to remove containers
Add --all functionality to rmi
Show ctrid when doing rm -all
Ignore sequential duplicate layers when reading v2s1
Lots of minor bug fixes
Vendor in latest containers/image and containers/storage
2018-01-17 08:46:25 -05:00
Lokesh Mandvekar
26f5ab06eb Merge #3 Add CI tests using the standard test interface 2018-01-03 15:37:24 +00:00
Daniel J Walsh
5472a439c7 Fix checkin 2017-12-26 07:25:12 -05:00
Daniel J Walsh
06332accde Fix checkin 2017-12-26 07:22:59 -05:00
Daniel J Walsh
ece15b37b7 Display Config and Manifest as strings
Bump containers/image
Use configured registries to resolve image names
Update to work with newer image library
Add --chown option to add/copy commands
2017-12-24 05:54:44 -05:00
Yevhenii Shapovalov
dfee2f675f add tests 2017-12-20 18:19:30 +02:00
Lokesh Mandvekar
7cae8ede6d remove git from builddep
can't find git in the module ecosystem and git isn't critical for
package build.

Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2017-12-03 21:53:15 -05:00
Daniel J Walsh
dd1d8ebdd4 Allow push to use the image id
Make sure builtin volumes have the correct label
2017-12-02 12:00:04 +00:00
Daniel J Walsh
941bb93cfe Buildah bud was failing on SELinux machines, this fixes this
Block access to certain kernel file systems inside of the container
2017-11-22 16:39:27 +00:00
Daniel J Walsh
3cd8281668 Ignore errors when trying to read containers buildah.json for loading SELinux reservations
Use credentials from kpod login for buildah
2017-11-16 22:04:22 +00:00
Daniel J Walsh
a67c5278cd Adds support for converting manifest types when using the dir transport
Rework how we do UID resolution in images
Bump github.com/vbatts/tar-split
Set option.terminal appropriately in run
2017-11-15 17:53:31 +00:00
Daniel J Walsh
3e0ae87554 Adds support for converting manifest types when using the dir transport
Rework how we do UID resolution in images
Bump github.com/vbatts/tar-split
Set option.terminal appropriately in run
2017-11-15 17:50:53 +00:00
Daniel J Walsh
d6d9ee59c2 Bump github.com/vbatts/tar-split
Fixes CVE That could allow a container image to cause a DOS
2017-11-08 17:54:16 +00:00
Daniel J Walsh
092486014d Add secrets patch to buildah
Add proper SELinux labeling to buildah run
 Add tls-verify to bud command
 Make filtering by date use the image's date
 images: don't list unnamed images twice
 Fix timeout issue
 Add further tty verbiage to buildah run
 Make inspect try an image on failure if type not specified
 Add support for `buildah run --hostname`
 Tons of bug fixes and code cleanup
2017-11-08 01:12:05 +00:00
Daniel J Walsh
aee8505a32 Add default transport to push if not provided
Avoid trying to print a nil ImageReference
  Add authentication to commit and push
  Add information on buildah from man page on transports
  Remove --transport flag
  Run: do not complain about missing volume locations
  Add credentials to buildah from
  Remove export command
  Run(): create the right working directory
  Improve "from" behavior with unnamed references
  Avoid parsing image metadata for dates and layers
  Read the image's creation date from public API
  Bump containers/storage and containers/image
  Don't panic if an image's ID can't be parsed
  Turn on --enable-gc when running gometalinter
  rmi: handle truncated image IDs
2017-09-22 10:28:31 +00:00
Josh Boyer
45f99c3afc Build for s390x as well 2017-08-15 14:14:03 -04:00
Daniel J Walsh
184278758f Bump for inclusion of OCI 1.0 Runtime and Image Spec 2017-07-20 20:41:29 +00:00
Daniel J Walsh
8f074391c1 Bump for inclusion of OCI 1.0 Runtime and Image Spec 2017-07-20 19:47:26 +00:00
Daniel J Walsh
8dc4f37057 Merge branch 'f26' of ssh://pkgs.fedoraproject.org/rpms/buildah into f26 2017-07-18 21:33:16 +00:00
Daniel J Walsh
1065b72eef buildah run: Add support for -- ending options parsing
buildah Add/Copy support for glob syntax
  buildah commit: Add flag to remove containers on commit
  buildah push: Improve man page and help information
  buildah run: add a way to disable PTY allocation
  Buildah docs: clarify --runtime-flag of run command
  Update to match newer storage and image-spec APIs
  Update containers/storage and containers/image versions
  buildah export: add support
  buildah images: update commands
  buildah images: Add JSON output option
  buildah rmi: update commands
  buildah containers: Add JSON output option
  buildah version: add command
  buildah run: Handle run without an explicit command correctly
  Ensure volume points get created, and with perms
  buildah containers: Add a -a/--all option
2017-07-18 21:31:38 +00:00
Daniel J Walsh
12f61928cc buildah run: Add support for -- ending options parsing
buildah Add/Copy support for glob syntax
  buildah commit: Add flag to remove containers on commit
  buildah push: Improve man page and help information
  buildah run: add a way to disable PTY allocation
  Buildah docs: clarify --runtime-flag of run command
  Update to match newer storage and image-spec APIs
  Update containers/storage and containers/image versions
  buildah export: add support
  buildah images: update commands
  buildah images: Add JSON output option
  buildah rmi: update commands
  buildah containers: Add JSON output option
  buildah version: add command
  buildah run: Handle run without an explicit command correctly
  Ensure volume points get created, and with perms
  buildah containers: Add a -a/--all option
2017-07-18 21:16:33 +00:00
Lokesh Mandvekar
44a2ece543 fix summary
Signed-off-by: Lokesh Mandvekar <lsm5@fedoraproject.org>
2017-06-14 17:37:52 -04:00
Daniel J Walsh
0d91c048b4 Release Candidate 1
All features have now been implemented.
2017-06-14 19:49:43 +00:00
27 changed files with 846 additions and 22 deletions

17
.gitignore vendored
View file

@ -1 +1,18 @@
/buildah-a0a5333.tar.gz
/buildah-597d2ab.tar.gz
/buildah-ac2aad6.tar.gz
/buildah-b37a981.tar.gz
/buildah-b9b2a8a.tar.gz
/buildah-9cbccf8.tar.gz
/buildah-35afa1c.tar.gz
/buildah-f7dc659.tar.gz
/buildah-de0fb93.tar.gz
/buildah-b7e3320.tar.gz
/buildah-bf40000.tar.gz
/buildah-04ea079.tar.gz
/buildah-979c945.tar.gz
/buildah-129fb10.tar.gz
/buildah-6bad262.tar.gz
/buildah-8badcc2.tar.gz
/buildah-ef0ca9c.tar.gz
/buildah-d1330a5.tar.gz

View file

@ -1,12 +1,5 @@
%if 0%{?fedora} || 0%{?rhel} == 6
%global with_bundled 1
%global with_debug 1
%global with_check 1
%else
%global with_bundled 0
%global with_debug 0
%global with_check 0
%endif
%global with_bundled 1
%if 0%{?with_debug}
%global _dwz_low_mem_die_limit 0
@ -21,34 +14,38 @@
# https://github.com/projectatomic/buildah
%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo}
%global import_path %{provider_prefix}
%global commit a0a5333b94264d1fb1e072d63bcb98f9e2981b49
%global commit d1330a5c4680dd18e1d58015f94cb3530c248eb9
%global shortcommit %(c=%{commit}; echo ${c:0:7})
Name: buildah
Version: 0.0.1
Name: %{repo}
Version: 0.15
Release: 1.git%{shortcommit}%{?dist}
Summary: A command line tool used to creating OCI Images
Summary: A command line tool used for creating OCI Images
License: ASL 2.0
URL: https://%{provider_prefix}
Source: https://%{provider_prefix}/archive/%{commit}/%{repo}-%{shortcommit}.tar.gz
ExclusiveArch: x86_64 aarch64 ppc64le
ExclusiveArch: x86_64 %{arm} aarch64 ppc64le s390x
# If go_compiler is not set to 1, there is no virtual provide. Use golang instead.
BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
BuildRequires: git
BuildRequires: glib2-devel
BuildRequires: libseccomp-devel
BuildRequires: ostree-devel
BuildRequires: glibc-static
BuildRequires: go-md2man
BuildRequires: gpgme-devel
BuildRequires: device-mapper-devel
BuildRequires: btrfs-progs-devel
BuildRequires: libassuan-devel
Requires: runc >= 1.0.0-6
Requires: skopeo-containers
Requires: runc >= 1.0.0-17
Requires: skopeo-containers >= 0.1.20-2
Requires: container-selinux
Requires: ostree
Provides: %{repo} = %{version}-%{release}
%description
The buildah package provides a command line tool which can be used to
The %{name} package provides a command line tool which can be used to
* create a working container from scratch
or
* create a working container from an image as a starting point
@ -69,12 +66,10 @@ popd
mv vendor src
export GOPATH=$(pwd)/_build:$(pwd):%{gopath}
make all
make all GIT_COMMIT=%{shortcommit}
%install
export GOPATH=$(pwd)/_build:$(pwd):%{gopath}
make DESTDIR=%{buildroot} PREFIX=%{_prefix} install install.completions
#define license tag if not already defined
@ -84,11 +79,176 @@ make DESTDIR=%{buildroot} PREFIX=%{_prefix} install install.completions
%license LICENSE
%doc README.md
%{_bindir}/%{name}
%{_mandir}/man1/buildah*
%{_mandir}/man1/%{name}*
%dir %{_datadir}/bash-completion
%dir %{_datadir}/bash-completion/completions
%{_datadir}/bash-completion/completions/buildah
%{_datadir}/bash-completion/completions/%{name}
%changelog
* Tue Feb 27 2018 Dan Walsh <dwalsh@redhat.com> 0.15-1
- Fix handling of buildah run command options
* Mon Feb 26 2018 Dan Walsh <dwalsh@redhat.com> 0.14-1
- If commonOpts do not exist, we should return rather then segfault
- Display full error string instead of just status
- Implement --volume and --shm-size for bud and from
- Fix secrets patch for buildah bud
- Fixes the naming issue of blobs and config for the dir transport by removing the .tar extension
* Sun Feb 25 2018 Peter Robinson <pbrobinson@fedoraproject.org> 0.13-2
- Build on ARMv7 too (Fedora supports containers on that arch too)
* Thu Feb 22 2018 Dan Walsh <dwalsh@redhat.com> 0.13-1
- Vendor in latest containers/storage
- This fixes a large SELinux bug.
- run: do not open /etc/hosts if not needed
- Add the following flags to buildah bud and from
--add-host
--cgroup-parent
--cpu-period
--cpu-quota
--cpu-shares
--cpuset-cpus
--cpuset-mems
--memory
--memory-swap
--security-opt
--ulimit
* Mon Feb 12 2018 Dan Walsh <dwalsh@redhat.com> 0.12-1
- Added handing for simpler error message for Unknown Dockerfile instructions.
- Change default certs directory to /etc/containers/certs.dir
- Vendor in latest containers/image
- Vendor in latest containers/storage
- build-using-dockerfile: set the 'author' field for MAINTAINER
- Return exit code 1 when buildah-rmi fails
- Trim the image reference to just its name before calling getImageName
- Touch up rmi -f usage statement
- Add --format and --filter to buildah containers
- Add --prune,-p option to rmi command
- Add authfile param to commit
- Fix --runtime-flag for buildah run and bud
- format should override quiet for images
- Allow all auth params to work with bud
- Do not overwrite directory permissions on --chown
- Unescape HTML characters output into the terminal
- Fix: setting the container name to the image
- Prompt for un/pwd if not supplied with --creds
- Make bud be really quiet
- Return a better error message when failed to resolve an image
- Update auth tests and fix bud man page
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.11-3.git6bad262
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Mon Feb 05 2018 Lokesh Mandvekar <lsm5@fedoraproject.org> - 0.11-2
- Resolves: upstream gh#432
- enable debuginfo for non-fedora packages
* Tue Jan 16 2018 Dan Walsh <dwalsh@redhat.com> 0.11-1
- Add --all to remove containers
- Add --all functionality to rmi
- Show ctrid when doing rm -all
- Ignore sequential duplicate layers when reading v2s1
- Lots of minor bug fixes
- Vendor in latest containers/image and containers/storage
* Tue Dec 26 2017 Dan Walsh <dwalsh@redhat.com> 0.10-2
- Fix checkin
* Sat Dec 23 2017 Dan Walsh <dwalsh@redhat.com> 0.10-1
- Display Config and Manifest as strings
- Bump containers/image
- Use configured registries to resolve image names
- Update to work with newer image library
- Add --chown option to add/copy commands
* Sat Dec 2 2017 Dan Walsh <dwalsh@redhat.com> 0.9-1
- Allow push to use the image id
- Make sure builtin volumes have the correct label
* Thu Nov 16 2017 Dan Walsh <dwalsh@redhat.com> 0.8-1
- Buildah bud was failing on SELinux machines, this fixes this
- Block access to certain kernel file systems inside of the container
* Thu Nov 16 2017 Dan Walsh <dwalsh@redhat.com> 0.7-1
- Ignore errors when trying to read containers buildah.json for loading SELinux reservations
- Use credentials from kpod login for buildah
* Wed Nov 15 2017 Dan Walsh <dwalsh@redhat.com> 0.6-1
- Adds support for converting manifest types when using the dir transport
- Rework how we do UID resolution in images
- Bump github.com/vbatts/tar-split
- Set option.terminal appropriately in run
* Wed Nov 08 2017 Dan Walsh <dwalsh@redhat.com> 0.5-2
- Bump github.com/vbatts/tar-split
- Fixes CVE That could allow a container image to cause a DOS
* Tue Nov 07 2017 Dan Walsh <dwalsh@redhat.com> 0.5-1
- Add secrets patch to buildah
- Add proper SELinux labeling to buildah run
- Add tls-verify to bud command
- Make filtering by date use the image's date
- images: don't list unnamed images twice
- Fix timeout issue
- Add further tty verbiage to buildah run
- Make inspect try an image on failure if type not specified
- Add support for `buildah run --hostname`
- Tons of bug fixes and code cleanup
* Fri Sep 22 2017 Dan Walsh <dwalsh@redhat.com> 0.4-1.git9cbccf88c
- Add default transport to push if not provided
- Avoid trying to print a nil ImageReference
- Add authentication to commit and push
- Add information on buildah from man page on transports
- Remove --transport flag
- Run: do not complain about missing volume locations
- Add credentials to buildah from
- Remove export command
- Run(): create the right working directory
- Improve "from" behavior with unnamed references
- Avoid parsing image metadata for dates and layers
- Read the image's creation date from public API
- Bump containers/storage and containers/image
- Don't panic if an image's ID can't be parsed
- Turn on --enable-gc when running gometalinter
- rmi: handle truncated image IDs
* Tue Aug 15 2017 Josh Boyer <jwboyer@redhat.com> - 0.3-5.gitb9b2a8a
- Build for s390x as well
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.3-4.gitb9b2a8a
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.3-3.gitb9b2a8a
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Thu Jul 20 2017 Dan Walsh <dwalsh@redhat.com> 0.3-2.gitb9b2a8a7e
- Bump for inclusion of OCI 1.0 Runtime and Image Spec
* Tue Jul 18 2017 Dan Walsh <dwalsh@redhat.com> 0.2.0-1.gitac2aad6
- buildah run: Add support for -- ending options parsing
- buildah Add/Copy support for glob syntax
- buildah commit: Add flag to remove containers on commit
- buildah push: Improve man page and help information
- buildah run: add a way to disable PTY allocation
- Buildah docs: clarify --runtime-flag of run command
- Update to match newer storage and image-spec APIs
- Update containers/storage and containers/image versions
- buildah export: add support
- buildah images: update commands
- buildah images: Add JSON output option
- buildah rmi: update commands
- buildah containers: Add JSON output option
- buildah version: add command
- buildah run: Handle run without an explicit command correctly
- Ensure volume points get created, and with perms
- buildah containers: Add a -a/--all option
* Wed Jun 14 2017 Dan Walsh <dwalsh@redhat.com> 0.1.0-2.git597d2ab9
- Release Candidate 1
- All features have now been implemented.
* Fri Apr 14 2017 Dan Walsh <dwalsh@redhat.com> 0.0.1-1.git7a0a5333
- First package for Fedora

View file

@ -1 +1 @@
SHA512 (buildah-a0a5333.tar.gz) = f8ca5b5b5287239d3ce85d042dc3b886fe590e17a870e4c119e0996fef2c938437d324c4da22536468a305e9245a127f27f4b23545beb59fafbefc57c141e113
SHA512 (buildah-d1330a5.tar.gz) = ec9fde97d29c39bc73bb52afaa68656468fb2325a08bb064137a2d00e1a63fa5f7e881df78de526533b4f56f900322c78940cdbcc317ade4a36464ebd2494fd5

3
tests/README.md Normal file
View file

@ -0,0 +1,3 @@
Buildah - a tool which facilitates building OCI container images
When executing the buildah bud testing, it will cost much time as it is building image in the background.

10
tests/binary.yml Normal file
View file

@ -0,0 +1,10 @@
---
# test buildah
- hosts: all
become: true
tags:
- classic
roles:
- binary
- prepare-env
- cli

View file

@ -0,0 +1,193 @@
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Inspired from: https://github.com/redhat-openstack/khaleesi/blob/master/plugins/callbacks/human_log.py
# Further improved support Ansible 2.0
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
try:
from ansible.plugins.callback import CallbackBase
BASECLASS = CallbackBase
except ImportError: # < ansible 2.1
BASECLASS = DEFAULT_MODULE.CallbackModule
import os, sys
reload(sys)
sys.setdefaultencoding('utf-8')
try:
import simplejson as json
except ImportError:
import json
# Fields to reformat output for
FIELDS = ['cmd', 'command', 'start', 'end', 'delta', 'msg', 'stdout',
'stderr', 'results', 'failed', 'reason']
class CallbackModule(CallbackBase):
"""
Ansible callback plugin for human-readable result logging
"""
CALLBACK_VERSION = 2.0
CALLBACK_TYPE = 'notification'
CALLBACK_NAME = 'human_log'
CALLBACK_NEEDS_WHITELIST = False
def __init__(self, *args, **kwargs):
# pylint: disable=non-parent-init-called
BASECLASS.__init__(self, *args, **kwargs)
self.artifacts = './artifacts'
self.result_file = os.path.join(self.artifacts, 'test.log')
if not os.path.exists(self.artifacts):
os.makedirs(self.artifacts)
with open(self.result_file, 'w'): pass
def human_log(self, data, taskname, status):
if type(data) == dict:
with open('./artifacts/test.log', 'a') as f:
f.write("\n\n")
f.write("# TASK NAME: %s \n" % taskname)
f.write("# STATUS: %s \n\n" % status)
f.write("Outputs: \n\n")
for field in FIELDS:
no_log = data.get('_ansible_no_log', False)
if field in data.keys() and data[field] and no_log != True:
output = self._format_output(data[field])
# The following two lines are a hack to make it work with UTF-8 characters
if type(output) != list:
output = output.encode('utf-8', 'replace')
#self._display.display("\n{0}:\n{1}".format(field, output.replace("\\n","\n")), log_only=False)
with open('./artifacts/test.log', 'a') as f:
f.write("{0}: {1}".format(field, output.replace("\\n","\n"))+"\n")
def _format_output(self, output):
# Strip unicode
if type(output) == unicode:
output = output.encode(sys.getdefaultencoding(), 'replace')
# If output is a dict
if type(output) == dict:
return json.dumps(output, indent=2, sort_keys=True)
# If output is a list of dicts
if type(output) == list and type(output[0]) == dict:
# This gets a little complicated because it potentially means
# nested results, usually because of with_items.
real_output = list()
for index, item in enumerate(output):
copy = item
if type(item) == dict:
for field in FIELDS:
if field in item.keys():
copy[field] = self._format_output(item[field])
real_output.append(copy)
return json.dumps(output, indent=2, sort_keys=True)
# If output is a list of strings
if type(output) == list and type(output[0]) != dict:
return '\n'.join(output)
# Otherwise it's a string, (or an int, float, etc.) just return it
return str(output)
####### V2 METHODS ######
def v2_on_any(self, *args, **kwargs):
pass
def v2_runner_on_failed(self, result, ignore_errors=False):
self.human_log(result._result, result._task.name, "fail")
def v2_runner_on_ok(self, result):
self.human_log(result._result, result._task.name, "pass")
def v2_runner_on_skipped(self, result):
pass
def v2_runner_on_unreachable(self, result):
self.human_log(result._result, result._task.name, "unreachable")
def v2_runner_on_no_hosts(self, task):
pass
def v2_runner_on_async_poll(self, result):
self.human_log(result._result, result._task.name, "")
def v2_runner_on_async_ok(self, host, result):
self.human_log(result._result, result._task.name, "pass")
def v2_runner_on_async_failed(self, result):
self.human_log(result._result, result._task.name, "fail")
def v2_playbook_on_start(self, playbook):
pass
def v2_playbook_on_notify(self, result, handler):
pass
def v2_playbook_on_no_hosts_matched(self):
pass
def v2_playbook_on_no_hosts_remaining(self):
pass
def v2_playbook_on_task_start(self, task, is_conditional):
pass
def v2_playbook_on_vars_prompt(self, varname, private=True, prompt=None,
encrypt=None, confirm=False, salt_size=None,
salt=None, default=None):
pass
def v2_playbook_on_setup(self):
pass
def v2_playbook_on_import_for_host(self, result, imported_file):
pass
def v2_playbook_on_not_import_for_host(self, result, missing_file):
pass
def v2_playbook_on_play_start(self, play):
pass
def v2_playbook_on_stats(self, stats):
pass
def v2_on_file_diff(self, result):
pass
def v2_playbook_on_item_ok(self, result):
pass
def v2_playbook_on_item_failed(self, result):
pass
def v2_playbook_on_item_skipped(self, result):
pass
def v2_playbook_on_include(self, included_file):
pass
def v2_playbook_item_on_ok(self, result):
pass
def v2_playbook_item_on_failed(self, result):
pass
def v2_playbook_item_on_skipped(self, result):
pass

View file

@ -0,0 +1,15 @@
---
- name: pull latest buildah source from github
git:
repo: https://github.com/projectatomic/buildah
dest: "{{ HOME }}/go/src/github.com/projectatomic/buildah"
- name: make binary for buildah
command: make
args:
chdir: "{{ HOME }}/go/src/github.com/projectatomic/buildah"
- name: install buildah to /usr/local/bin
command: make install
args:
chdir: "{{ HOME }}/go/src/github.com/projectatomic/buildah"

View file

@ -0,0 +1,4 @@
---
- import_tasks: runc.yml
- import_tasks: buildah.yml

View file

@ -0,0 +1,16 @@
---
- name: pull latest runc source from github
git:
repo: https://github.com/opencontainers/runc
dest: "{{ HOME }}/go/src/github.com/opencontainers/runc"
- name: building runc for buildah runtime
command: make
args:
chdir: "{{ HOME }}/go/src/github.com/opencontainers/runc"
- name: copy runc to /usr/bin
copy:
remote_src: True
src: "{{ HOME }}/go/src/github.com/opencontainers/runc/runc"
dest: /usr/bin/runc

View file

@ -0,0 +1,41 @@
---
- name: buildah add
command: buildah add nginxc /tmp/buildah/bud/Dockerfile
- name: check buildah add
command: ls {{mount.stdout}}/Dockerfile
- name: buildah add to destination
command: buildah add nginxc /tmp/buildah/bud/Dockerfile /home
- name: check buildah add to
command: ls {{mount.stdout}}/home/Dockerfile
- name: buildah add URL
command: buildah add nginxc https://github.com/projectatomic/buildah/raw/master/README.md
- name: check buildah add URL
command: ls {{mount.stdout}}/README.md
- name: buildah add URL to destination
command: buildah add nginxc https://github.com/projectatomic/buildah/raw/master/README.md /home
- name: check buildah add URL to destination
command: ls {{mount.stdout}}/home/README.md
- name: Download buildah README.md
get_url:
url: https://github.com/projectatomic/buildah/raw/master/README.md
dest: /tmp/buildah/
- name: buildah add dir
command: buildah add nginxc /tmp
- name: check buildah add dir
command: ls {{mount.stdout}}/buildah/README.md
- name: buildah add dir to destination
command: buildah add nginxc /tmp /home
- name: check buildah add dir to destination
command: ls {{mount.stdout}}/home/buildah/README.md

View file

@ -0,0 +1,24 @@
---
- name: buildah bud localfile
command: buildah bud -t testing/nginx --pull /tmp/buildah/bud
- name: check bud images with buildah images command
shell: buildah images | grep testing/nginx
- name: buildah bud -f localfile
command: buildah bud -t testing/nginx2 -f /tmp/buildah/bud/Dockerfile .
- name: buildah bud URL
command: buildah bud -t testing/nginx3 http://localhost/bud/Dockerfile.tar.gz
- name: buildah build-using-dockerfile localfile
command: buildah build-using-dockerfile -t testing/nginx4 /tmp/buildah/bud
- name: buildah build-using-dockerfile -f localfile
command: buildah build-using-dockerfile -t testing/nginx5 --file /tmp/buildah/bud/Dockerfile .
- name: buildah build-using-dockerfile URL
command: buildah build-using-dockerfile --tag testing/nginx6 http://localhost/bud/Dockerfile.tar.gz
- name: buildah rmi
command: buildah rmi testing/nginx{2..6}

View file

@ -0,0 +1,4 @@
---
- name: remove buildah containers after testing
command: buildah rm busybox nginxc nginxc-2
ignore_errors: true

View file

@ -0,0 +1,16 @@
---
- name: buildah config workingdir
command: buildah config --workingdir /opt nginxc
- name: get buildah config workingdir
command: buildah run nginxc "pwd"
register: checkworkingdir
failed_when: "'/opt' not in checkworkingdir.stdout"
- name: buildah config env
command: buildah config --env foo=bar nginxc
- name: get buildah config env
command: buildah run nginxc env
register: env
failed_when: "'foo=bar' not in env.stdout"

View file

@ -0,0 +1,18 @@
---
- name: buildah containers
shell: buildah containers | grep nginxc
- name: buildah containers -q
shell: buildah containers -q | grep -v nginxc
- name: buildah containers -n
shell: buildah containers -n | grep -v NAME
- name: buildah containers --notruncate
command: buildah containers -- notruncate
- name: buildah containers --all
command: buildah containers --all
- name: buildah containers --json
command: buildah containers --json

View file

@ -0,0 +1,41 @@
---
- name: buildah copy
command: buildah copy nginxc-2 /tmp/buildah/bud/Dockerfile
- name: check buildah copy
command: ls {{mount.stdout}}/Dockerfile
- name: buildah copy to destination
command: buildah copy nginxc-2 /tmp/buildah/bud/Dockerfile /home
- name: check buildah copy to
command: ls {{mount.stdout}}/home/Dockerfile
- name: buildah copy URL
command: buildah copy nginxc-2 https://github.com/projectatomic/buildah/raw/master/README.md
- name: check buildah copy URL
command: ls {{mount.stdout}}/README.md
- name: buildah copy URL to destination
command: buildah copy nginxc-2 https://github.com/projectatomic/buildah/raw/master/README.md /home
- name: check buildah copy URL to destination
command: ls {{mount.stdout}}/home/README.md
- name: Download buildah README.md
get_url:
url: https://github.com/projectatomic/buildah/raw/master/README.md
dest: /tmp/buildah/
- name: buildah copy dir
command: buildah copy nginxc-2 /tmp/buildah
- name: check buildah copy dir
command: ls {{mount.stdout}}/README.md
- name: buildah copy dir to destination
command: buildah copy nginxc-2 /tmp /home
- name: check buildah copy dir to destination
command: ls {{mount.stdout}}/home/buildah/README.md

View file

@ -0,0 +1,12 @@
---
- name: buildah from pull
command: buildah from --pull nginx
- name: buildah from pull always
command: buildah from --pull-always nginx
- name: buildah from with name
command: buildah from --name nginx nginx
- name: clean from testings
command: buildah delete nginx nginx-working-container nginx-working-container-2

View file

@ -0,0 +1,44 @@
---
- block:
- name: prepare containers nginxc
import_tasks: prepare-containers.yaml
tags:
- nginxc
- name: buildah containers
import_tasks: containers.yaml
tags:
- ctr
- name: buildah from
import_tasks: from.yaml
tags:
- from
- name: buildah mount
import_tasks: mount.yaml
tags:
- mount
- name: buildah tag
import_tasks: tag.yaml
tags:
- tag
- name: buildah config
import_tasks: config.yaml
tags:
- config
- name: buildah push
import_tasks: push.yaml
tags:
- push
- name: buildah build-using-dockerfile
import_tasks: bud.yaml
tags:
- bud
always:
- import_tasks: cleanup.yaml

View file

@ -0,0 +1,27 @@
---
- name: buildah mount container nginxc
command: buildah mount nginxc
register: mount
- name: buildah mount without args will list all mounts
shell: buildah mount | grep storage
- name: buildah add
import_tasks: add.yaml
tags:
- add
- name: buildah umount
command: buildah umount nginxc
- name: buildah mount --notruncate
command: buildah mount --notruncate nginxc-2
register: mount
- name: buildah copy
import_tasks: copy.yaml
tags:
- copy
- name: buildah unmount
command: buildah unmount nginxc-2

View file

@ -0,0 +1,6 @@
---
- name: prepare container nginxc for later testing
command: buildah from --pull --name nginxc nginx
- name: prepare container nginxc-2 for later testing
command: buildah from --name nginxc-2 nginx

View file

@ -0,0 +1,60 @@
---
- name: pull busybox before push
command: buildah from --pull --name busybox busybox
- name: buildah push image to containers-storage
command: buildah push docker.io/busybox:latest containers-storage:docker.io/busybox:latest
- name: buildah push image to docker daemon
command: buildah push docker.io/busybox:latest docker-daemon:docker.io/buildah/busybox:latest
- name: check buildah/busybox exist in docker daemon
command: docker images docker.io/buildah/busybox:latest
- name: buildah push image to docker local registry
command: buildah push --tls-verify=false docker.io/busybox:latest docker://localhost:5000/buildah/busybox:latest
- name: create /tmp/buildah/busybox
file: path=/tmp/buildah/docker state=directory
- name: rm busybox.tar because docker archive does not support modify
file: path=/tmp/buildah/docker/busybox.tar state=absent
- name: buildah push image to docker-archive
command: buildah push docker.io/busybox:latest docker-archive:/tmp/buildah/docker/busybox.tar:latest
- name: check docker archive exist
file: path=/tmp/buildah/docker/busybox.tar state=file
- name: create /tmp/buildah/dir
file: path=/tmp/buildah/dir state=directory
- name: buildah push image to dir
command: buildah push docker.io/busybox:latest dir:/tmp/buildah/dir
- name: create /tmp/buildah/oci
file: path=/tmp/buildah/oci state=directory
- name: buildah push image to oci
command: buildah push docker.io/busybox:latest oci:/tmp/buildah/oci:latest
- name: buildah push image to oci archive
command: buildah push docker.io/busybox:latest oci-archive:/tmp/buildah/oci/busybox.tar:latest
- name: check oci archive exist
file: path=/tmp/buildah/oci/busybox.tar state=file
- name: init default ostree repo
command: ostree --repo=/ostree/repo init
- name: create /tmp/buildah/ostree/repo
file: path=/tmp/buildah/ostree/repo state=directory
- name: init tmp ostree repo
command: ostree --repo=/tmp/buildah/ostree/repo init
- name: buildah push image to ostree
command: buildah push docker.io/busybox:latest ostree:busybox:latest
- name: buildah push image to non-default ostree repo
command: buildah push docker.io/busybox:latest ostree:busybox:latest@/tmp/buildah/ostree/repo

View file

@ -0,0 +1,43 @@
---
- name: buildah from --pull busybox
command: buildah from busybox
- name: buildah tag by name
command: buildah tag busybox busybox1
- name: check busybox1 exists
shell: buildah images | grep busybox1
- name: get image id
command: buildah images -q busybox1
register: busyboxID
- name: buildah tag by ID
command: buildah tag {{busyboxID.stdout}} busybox2
- name: check busybox2 exists
shell: buildah images | grep busybox2
- name: buildah from tagged image
command: buildah from busybox1
- name: mount the container which using tagged image
command: buildah mount busybox1-working-container
- name: buildah umount the container
command: buildah umount busybox1-working-container
- name: buildah rm container busybox
command: buildah rm busybox-working-container
- name: buildah rm container busybox1
command: buildah rm busybox1-working-container
- name: buildah rmi tagged image
command: buildah rmi busybox{1..2}
- name: check image busybox is not deleted
shell: buildah images | grep busybox
- name: buildah rmi image busybox
command: buildah rmi busybox

View file

@ -0,0 +1,41 @@
---
- name: install required packages for testings
package:
name: "{{ item }}"
state: latest
with_items:
- docker
- python-docker-py
- buildah
- docker-distribution
- ostree
- httpd
- libselinux-python
- name: start docker daemon
systemd: state=started name=docker
- name: create /ostree/repo
file: path=/ostree/repo state=directory
- name: ensure docker-distribution service is running
systemd: state=started name=docker-distribution
- name: creates directory buildah testing
file: path=/tmp/buildah/bud state=directory
- name: download Dockerfile
get_url:
url: https://github.com/fedora-cloud/Fedora-Dockerfiles/raw/master/nginx/Dockerfile
dest: /tmp/buildah/bud/Dockerfile
- name: creates a bud directory in /var/www/html
file: path=/var/www/html/bud state=directory
- name: archive dockerfile into httpd directory
command: tar zcvf /var/www/html/bud/Dockerfile.tar.gz Dockerfile
args:
chdir: /tmp/buildah/bud
- name: start httpd service
systemd: state=started name=httpd

View file

@ -0,0 +1,6 @@
---
- name: stop docker-distribution service
systemd: state=stopped name=docker-distribution
- name: stop httpd service
systemd: state=stopped name=httpd

9
tests/rpm.yml Normal file
View file

@ -0,0 +1,9 @@
---
# test buildah
- hosts: all
become: true
tags:
- classic
roles:
- prepare-env
- cli

1
tests/test_binary.sh Executable file
View file

@ -0,0 +1 @@
ansible-playbook -i inventory binary.yml "$@"

1
tests/test_rpm.sh Executable file
View file

@ -0,0 +1 @@
ansible-playbook -i inventory buildah_rpm.yml "$@"

12
tests/tests.yml Normal file
View file

@ -0,0 +1,12 @@
---
# test buildah
- hosts: localhost
become: true
tags:
- classic
roles:
- prepare-env
- role: cli
tags:
- cli
- tear-down