Compare commits
27 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4e9e753c18 | ||
|
|
e2d8cbfd02 | ||
|
|
832249deda | ||
|
|
91dd8b78bf | ||
|
|
a86b4b2ba3 | ||
|
|
26f5ab06eb | ||
|
|
5472a439c7 | ||
|
|
06332accde | ||
|
|
ece15b37b7 | ||
|
|
dfee2f675f | ||
|
|
7cae8ede6d | ||
|
|
dd1d8ebdd4 | ||
|
|
941bb93cfe | ||
|
|
3cd8281668 | ||
|
|
a67c5278cd | ||
|
|
3e0ae87554 | ||
|
|
d6d9ee59c2 | ||
|
|
092486014d | ||
|
|
aee8505a32 | ||
|
|
45f99c3afc | ||
|
|
184278758f | ||
|
|
8f074391c1 | ||
|
|
8dc4f37057 | ||
|
|
1065b72eef | ||
|
|
12f61928cc | ||
|
|
44a2ece543 | ||
|
|
0d91c048b4 |
27 changed files with 846 additions and 22 deletions
17
.gitignore
vendored
17
.gitignore
vendored
|
|
@ -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
|
||||
|
|
|
|||
202
buildah.spec
202
buildah.spec
|
|
@ -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
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (buildah-a0a5333.tar.gz) = f8ca5b5b5287239d3ce85d042dc3b886fe590e17a870e4c119e0996fef2c938437d324c4da22536468a305e9245a127f27f4b23545beb59fafbefc57c141e113
|
||||
SHA512 (buildah-d1330a5.tar.gz) = ec9fde97d29c39bc73bb52afaa68656468fb2325a08bb064137a2d00e1a63fa5f7e881df78de526533b4f56f900322c78940cdbcc317ade4a36464ebd2494fd5
|
||||
|
|
|
|||
3
tests/README.md
Normal file
3
tests/README.md
Normal 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
10
tests/binary.yml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
# test buildah
|
||||
- hosts: all
|
||||
become: true
|
||||
tags:
|
||||
- classic
|
||||
roles:
|
||||
- binary
|
||||
- prepare-env
|
||||
- cli
|
||||
193
tests/callback_plugins/log.py
Normal file
193
tests/callback_plugins/log.py
Normal 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
|
||||
15
tests/roles/binary/tasks/buildah.yml
Normal file
15
tests/roles/binary/tasks/buildah.yml
Normal 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"
|
||||
4
tests/roles/binary/tasks/main.yml
Normal file
4
tests/roles/binary/tasks/main.yml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
- import_tasks: runc.yml
|
||||
|
||||
- import_tasks: buildah.yml
|
||||
16
tests/roles/binary/tasks/runc.yml
Normal file
16
tests/roles/binary/tasks/runc.yml
Normal 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
|
||||
41
tests/roles/cli/tasks/add.yaml
Normal file
41
tests/roles/cli/tasks/add.yaml
Normal 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
|
||||
24
tests/roles/cli/tasks/bud.yaml
Normal file
24
tests/roles/cli/tasks/bud.yaml
Normal 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}
|
||||
4
tests/roles/cli/tasks/cleanup.yaml
Normal file
4
tests/roles/cli/tasks/cleanup.yaml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
- name: remove buildah containers after testing
|
||||
command: buildah rm busybox nginxc nginxc-2
|
||||
ignore_errors: true
|
||||
16
tests/roles/cli/tasks/config.yaml
Normal file
16
tests/roles/cli/tasks/config.yaml
Normal 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"
|
||||
18
tests/roles/cli/tasks/containers.yaml
Normal file
18
tests/roles/cli/tasks/containers.yaml
Normal 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
|
||||
41
tests/roles/cli/tasks/copy.yaml
Normal file
41
tests/roles/cli/tasks/copy.yaml
Normal 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
|
||||
12
tests/roles/cli/tasks/from.yaml
Normal file
12
tests/roles/cli/tasks/from.yaml
Normal 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
|
||||
44
tests/roles/cli/tasks/main.yaml
Normal file
44
tests/roles/cli/tasks/main.yaml
Normal 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
|
||||
27
tests/roles/cli/tasks/mount.yaml
Normal file
27
tests/roles/cli/tasks/mount.yaml
Normal 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
|
||||
6
tests/roles/cli/tasks/prepare-containers.yaml
Normal file
6
tests/roles/cli/tasks/prepare-containers.yaml
Normal 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
|
||||
60
tests/roles/cli/tasks/push.yaml
Normal file
60
tests/roles/cli/tasks/push.yaml
Normal 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
|
||||
43
tests/roles/cli/tasks/tag.yaml
Normal file
43
tests/roles/cli/tasks/tag.yaml
Normal 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
|
||||
41
tests/roles/prepare-env/tasks/main.yml
Normal file
41
tests/roles/prepare-env/tasks/main.yml
Normal 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
|
||||
6
tests/roles/tear-down/tasks/main.yml
Normal file
6
tests/roles/tear-down/tasks/main.yml
Normal 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
9
tests/rpm.yml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
# test buildah
|
||||
- hosts: all
|
||||
become: true
|
||||
tags:
|
||||
- classic
|
||||
roles:
|
||||
- prepare-env
|
||||
- cli
|
||||
1
tests/test_binary.sh
Executable file
1
tests/test_binary.sh
Executable file
|
|
@ -0,0 +1 @@
|
|||
ansible-playbook -i inventory binary.yml "$@"
|
||||
1
tests/test_rpm.sh
Executable file
1
tests/test_rpm.sh
Executable file
|
|
@ -0,0 +1 @@
|
|||
ansible-playbook -i inventory buildah_rpm.yml "$@"
|
||||
12
tests/tests.yml
Normal file
12
tests/tests.yml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
# test buildah
|
||||
- hosts: localhost
|
||||
become: true
|
||||
tags:
|
||||
- classic
|
||||
roles:
|
||||
- prepare-env
|
||||
- role: cli
|
||||
tags:
|
||||
- cli
|
||||
- tear-down
|
||||
Loading…
Add table
Add a link
Reference in a new issue