diff --git a/.gitignore b/.gitignore index e013161..9252952 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,57 @@ /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 +/buildah-82529cd.tar.gz +/buildah-4339223.tar.gz +/buildah-83d7d10.tar.gz +/buildah-6421399.tar.gz +/buildah-45a4b81.tar.gz +/buildah-28a27a3.tar.gz +/buildah-e008b73.tar.gz +/buildah-d84f05a.tar.gz +/buildah-b16a1ea.tar.gz +/buildah-fdc3998.tar.gz +/buildah-49abf82.tar.gz +/buildah-ca1704f.tar.gz +/buildah-c50c287.tar.gz +/buildah-adb8e6f.tar.gz +/buildah-e130f2b.tar.gz +/buildah-a4f5707.tar.gz +/buildah-6fe2b55.tar.gz +/buildah-45772e8.tar.gz +/buildah-dd02e70.tar.gz +/buildah-1ab80bc.tar.gz +/buildah-906ee37.tar.gz +/buildah-fe204e4.tar.gz +/buildah-2ea3e11.tar.gz +/buildah-b9a1041.tar.gz +/buildah-ce8d467.tar.gz +/buildah-8515867.tar.gz +/buildah-3e320b9.tar.gz +/buildah-2749191.tar.gz +/buildah-25f4e8e.tar.gz +/buildah-88affbd.tar.gz +/buildah-ebb0d8e.tar.gz +/buildah-5595d4d.tar.gz +/buildah-73bfd79.tar.gz +/buildah-03686e5.tar.gz +/buildah-70641ee.tar.gz +/buildah-f90b6c0.tar.gz +/buildah-d3d097b.tar.gz +/buildah-c306342.tar.gz +/buildah-f449b28.tar.gz +/buildah-fbf46d3.tar.gz +/buildah-be87762.tar.gz diff --git a/buildah.spec b/buildah.spec index 1129cc9..c8c8723 100644 --- a/buildah.spec +++ b/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 @@ -14,42 +7,44 @@ %global debug_package %{nil} %endif -%global provider github -%global provider_tld com -%global project projectatomic -%global repo buildah +%global provider github +%global provider_tld com +%global project projectatomic +%global repo buildah # https://github.com/projectatomic/buildah %global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo} -%global import_path %{provider_prefix} -%global commit b9b2a8a7ef87833a1db600ed2a3d5295644b2f1c -%global shortcommit %(c=%{commit}; echo ${c:0:7}) +%global import_path %{provider_prefix} +%global commit0 4888163cf12b4e0c0d32ef7eb0ed941c2c81d4f7 +%global shortcommit0 %(c=%{commit0}; echo ${c:0:7}) -Name: buildah -Version: 0.3 -Release: 5.git%{shortcommit}%{?dist} -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 +Name: %{repo} +Version: 1.3 +Release: 1.git%{shortcommit0}%{?dist} +Summary: A command line tool used for creating OCI Images +License: ASL 2.0 +URL: https://%{provider_prefix} +Source: https://%{provider_prefix}/archive/%{commit0}/%{name}-%{shortcommit0}.tar.gz -ExclusiveArch: x86_64 aarch64 ppc64le s390x +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: 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-7 -Requires: skopeo-containers >= 0.1.20-2 -Provides: %{repo} = %{version}-%{release} +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 +BuildRequires: make +Requires: runc >= 1.0.0-17 +Requires: skopeo-containers >= 0.1.20-2 +Requires: container-selinux %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 @@ -58,7 +53,7 @@ or * delete a working container or an image %prep -%autosetup -Sgit -n %{name}-%{commit} +%autosetup -Sgit -n %{name}-%{commit0} %build mkdir _build @@ -70,8 +65,7 @@ popd mv vendor src export GOPATH=$(pwd)/_build:$(pwd):%{gopath} -make all - +make all GIT_COMMIT=%{shortcommit0} %install export GOPATH=$(pwd)/_build:$(pwd):%{gopath} @@ -84,12 +78,608 @@ 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 +* Sun Aug 5 2018 Dan Walsh - 1.3-1 +- Bump to v1.3 +- Vendor in lates containers/image +- build-using-dockerfile: let -t include transports again +- Block use of /proc/acpi and /proc/keys from inside containers +- Fix handling of --registries-conf +- Fix becoming a maintainer link +- add optional CI test fo darwin +- Don't pass a nil error to errors.Wrapf() +- image filter test: use kubernetes/pause as a "since" +- Add --cidfile option to from +- vendor: update containers/storage +- Contributors need to find the CONTRIBUTOR.md file easier +- Add a --loglevel option to build-with-dockerfile +- Create Development plan +- cmd: Code improvement +- allow buildah cross compile for a darwin target +- Add unused function param lint check +- docs: Follow man-pages(7) suggestions for SYNOPSIS +- Start using github.com/seccomp/containers-golang +- umount: add all option to umount all mounted containers +- runConfigureNetwork(): remove an unused parameter +- Update github.com/opencontainers/selinux +- Fix buildah bud --layers +- Force ownership of /etc/hosts and /etc/resolv.conf to 0:0 +- main: if unprivileged, reexec in a user namespace +- Vendor in latest imagebuilder +- Reduce the complexity of the buildah.Run function +- mount: output it before replacing lastError +- Vendor in latest selinux-go code +- Implement basic recognition of the "--isolation" option +- Run(): try to resolve non-absolute paths using $PATH +- Run(): don't include any default environment variables +- build without seccomp +- vendor in latest runtime-tools +- bind/mount_unsupported.go: remove import errors +- Update github.com/opencontainers/runc +- Add Capabilities lists to BuilderInfo +- Tweaks for commit tests +- commit: recognize committing to second storage locations +- Fix ARGS parsing for run commands +- Add info on registries.conf to from manpage +- Switch from using docker to podman for testing in .papr +- buildah: set the HTTP User-Agent +- ONBUILD tutorial +- Add information about the configuration files to the install docs +- Makefile: add uninstall +- Add tilde info for push to troubleshooting +- mount: support multiple inputs +- Use the right formatting when adding entries to /etc/hosts +- Vendor in latest go-selinux bindings +- Allow --userns-uid-map/--userns-gid-map to be global options +- bind: factor out UnmountMountpoints +- Run(): simplify runCopyStdio() +- Run(): handle POLLNVAL results +- Run(): tweak terminal mode handling +- Run(): rename 'copyStdio' to 'copyPipes' +- Run(): don't set a Pdeathsig for the runtime +- Run(): add options for adding and removing capabilities +- Run(): don't use a callback when a slice will do +- setupSeccomp(): refactor +- Change RunOptions.Stdin/Stdout/Stderr to just be Reader/Writers +- Escape use of '_' in .md docs +- Break out getProcIDMappings() +- Break out SetupIntermediateMountNamespace() +- Add Multi From Demo +- Use the c/image conversion code instead of converting configs manually +- Don't throw away the manifest MIME type and guess again +- Consolidate loading manifest and config in initConfig +- Pass a types.Image to Builder.initConfig +- Require an image ID in importBuilderDataFromImage +- Use c/image/manifest.GuessMIMEType instead of a custom heuristic +- Do not ignore any parsing errors in initConfig +- Explicitly handle "from scratch" images in Builder.initConfig +- Fix parsing of OCI images +- Simplify dead but dangerous-looking error handling +- Don't ignore v2s1 history if docker_version is not set +- Add --rm and --force-rm to buildah bud +- Add --all,-a flag to buildah images +- Separate stdio buffering from writing +- Remove tty check from images --format +- Add environment variable BUILDAH_RUNTIME +- Add --layers and --no-cache to buildah bud +- Touch up images man +- version.md: fix DESCRIPTION +- tests: add containers test +- tests: add images test +- images: fix usage +- fix make clean error +- Change 'registries' to 'container registries' in man +- add commit test +- Add(): learn to record hashes of what we add +- Minor update to buildah config documentation for entrypoint +- Bump to v1.2-dev +- Add registries.conf link to a few man pages + +* Thu Jul 19 2018 Dan Walsh - 1.2-2 +- buildah does not require ostree + +* Sun Jul 15 2018 Dan Walsh 1.2-1 +- Vendor in latest containers/image +- build-using-dockerfile: let -t include transports again +- Block use of /proc/acpi and /proc/keys from inside containers +- Fix handling of --registries-conf +- Fix becoming a maintainer link +- add optional CI test fo darwin +- Don't pass a nil error to errors.Wrapf() +- image filter test: use kubernetes/pause as a "since" +- Add --cidfile option to from +- vendor: update containers/storage +- Contributors need to find the CONTRIBUTOR.md file easier +- Add a --loglevel option to build-with-dockerfile +- Create Development plan +- cmd: Code improvement +- allow buildah cross compile for a darwin target +- Add unused function param lint check +- docs: Follow man-pages(7) suggestions for SYNOPSIS +- Start using github.com/seccomp/containers-golang +- umount: add all option to umount all mounted containers +- runConfigureNetwork(): remove an unused parameter +- Update github.com/opencontainers/selinux +- Fix buildah bud --layers +- Force ownership of /etc/hosts and /etc/resolv.conf to 0:0 +- main: if unprivileged, reexec in a user namespace +- Vendor in latest imagebuilder +- Reduce the complexity of the buildah.Run function +- mount: output it before replacing lastError +- Vendor in latest selinux-go code +- Implement basic recognition of the "--isolation" option +- Run(): try to resolve non-absolute paths using $PATH +- Run(): don't include any default environment variables +- build without seccomp +- vendor in latest runtime-tools +- bind/mount_unsupported.go: remove import errors +- Update github.com/opencontainers/runc +- Add Capabilities lists to BuilderInfo +- Tweaks for commit tests +- commit: recognize committing to second storage locations +- Fix ARGS parsing for run commands +- Add info on registries.conf to from manpage +- Switch from using docker to podman for testing in .papr +- buildah: set the HTTP User-Agent +- ONBUILD tutorial +- Add information about the configuration files to the install docs +- Makefile: add uninstall +- Add tilde info for push to troubleshooting +- mount: support multiple inputs +- Use the right formatting when adding entries to /etc/hosts +- Vendor in latest go-selinux bindings +- Allow --userns-uid-map/--userns-gid-map to be global options +- bind: factor out UnmountMountpoints +- Run(): simplify runCopyStdio() +- Run(): handle POLLNVAL results +- Run(): tweak terminal mode handling +- Run(): rename 'copyStdio' to 'copyPipes' +- Run(): don't set a Pdeathsig for the runtime +- Run(): add options for adding and removing capabilities +- Run(): don't use a callback when a slice will do +- setupSeccomp(): refactor +- Change RunOptions.Stdin/Stdout/Stderr to just be Reader/Writers +- Escape use of '_' in .md docs +- Break out getProcIDMappings() +- Break out SetupIntermediateMountNamespace() +- Add Multi From Demo +- Use the c/image conversion code instead of converting configs manually +- Don't throw away the manifest MIME type and guess again +- Consolidate loading manifest and config in initConfig +- Pass a types.Image to Builder.initConfig +- Require an image ID in importBuilderDataFromImage +- Use c/image/manifest.GuessMIMEType instead of a custom heuristic +- Do not ignore any parsing errors in initConfig +- Explicitly handle "from scratch" images in Builder.initConfig +- Fix parsing of OCI images +- Simplify dead but dangerous-looking error handling +- Don't ignore v2s1 history if docker_version is not set +- Add --rm and --force-rm to buildah bud +- Add --all,-a flag to buildah images +- Separate stdio buffering from writing +- Remove tty check from images --format +- Add environment variable BUILDAH_RUNTIME +- Add --layers and --no-cache to buildah bud +- Touch up images man +- version.md: fix DESCRIPTION +- tests: add containers test +- tests: add images test +- images: fix usage +- fix make clean error +- Change 'registries' to 'container registries' in man +- add commit test +- Add(): learn to record hashes of what we add +- Minor update to buildah config documentation for entrypoint +- Add registries.conf link to a few man pages + +* Sun Jun 10 2018 Dan Walsh 1.1-1 +- Drop capabilities if running container processes as non root +- Print Warning message if cmd will not be used based on entrypoint +- Update 01-intro.md +- Shouldn't add insecure registries to list of search registries +- Report errors on bad transports specification when pushing images +- Move parsing code out of common for namespaces and into pkg/parse.go +- Add disable-content-trust noop flag to bud +- Change freenode chan to buildah +- runCopyStdio(): don't close stdin unless we saw POLLHUP +- Add registry errors for pull +- runCollectOutput(): just read until the pipes are closed on us +- Run(): provide redirection for stdio +- rmi, rm: add test +- add mount test +- Add parameter judgment for commands that do not require parameters +- Add context dir to bud command in baseline test +- run.bats: check that we can run with symlinks in the bundle path +- Give better messages to users when image can not be found +- use absolute path for bundlePath +- Add environment variable to buildah --format +- rm: add validation to args and all option +- Accept json array input for config entrypoint +- Run(): process RunOptions.Mounts, and its flags +- Run(): only collect error output from stdio pipes if we created some +- Add OnBuild support for Dockerfiles +- Quick fix on demo readme +- run: fix validate flags +- buildah bud should require a context directory or URL +- Touchup tutorial for run changes +- Validate common bud and from flags +- images: Error if the specified imagename does not exist +- inspect: Increase err judgments to avoid panic +- add test to inspect +- buildah bud picks up ENV from base image +- Extend the amount of time travis_wait should wait +- Add a make target for Installing CNI plugins +- Add tests for namespace control flags +- copy.bats: check ownerships in the container +- Fix SELinux test errors when SELinux is enabled +- Add example CNI configurations +- Run: set supplemental group IDs +- Run: use a temporary mount namespace +- Use CNI to configure container networks +- add/secrets/commit: Use mappings when setting permissions on added content +- Add CLI options for specifying namespace and cgroup setup +- Always set mappings when using user namespaces +- Run(): break out creation of stdio pipe descriptors +- Read UID/GID mapping information from containers and images +- Additional bud CI tests +- Run integration tests under travis_wait in Travis +- build-using-dockerfile: add --annotation +- Implement --squash for build-using-dockerfile and commit +- Vendor in latest container/storage for devicemapper support +- add test to inspect +- Vendor github.com/onsi/ginkgo and github.com/onsi/gomega +- Test with Go 1.10, too +- Add console syntax highlighting to troubleshooting page +- bud.bats: print "$output" before checking its contents +- Manage "Run" containers more closely +- Break Builder.Run()'s "run runc" bits out +- util.ResolveName(): handle completion for tagged/digested image names +- Handle /etc/hosts and /etc/resolv.conf properly in container +- Documentation fixes +- Make it easier to parse our temporary directory as an image name +- Makefile: list new pkg/ subdirectoris as dependencies for buildah +- containerImageSource: return more-correct errors +- API cleanup: PullPolicy and TerminalPolicy should be types +- Make "run --terminal" and "run -t" aliases for "run --tty" +- Vendor github.com/containernetworking/cni v0.6.0 +- Update github.com/containers/storage +- Update github.com/projectatomic/libpod +- Add support for buildah bud --label +- buildah push/from can push and pull images with no reference +- Vendor in latest containers/image +- Update gometalinter to fix install.tools error +- Update troubleshooting with new run workaround +- Added a bud demo and tidied up +- Attempt to download file from url, if fails assume Dockerfile +- Add buildah bud CI tests for ENV variables +- Re-enable rpm .spec version check and new commit test +- Update buildah scratch demo to support el7 +- Added Docker compatibility demo +- Update to F28 and new run format in baseline test +- Touchup man page short options across man pages +- Added demo dir and a demo. chged distrorlease +- builder-inspect: fix format option +- Add cpu-shares short flag (-c) and cpu-shares CI tests +- Minor fixes to formatting in rpm spec changelog +- Fix rpm .spec changelog formatting +- CI tests and minor fix for cache related noop flags +- buildah-from: add effective value to mount propagation + +* Sat Jun 09 2018 Lokesh Mandvekar (Bot) - 1.0-20.gitf449b28 +- autobuilt f449b28 + +* Fri Jun 08 2018 Lokesh Mandvekar (Bot) - 1.0-19.gitc306342 +- autobuilt c306342 + +* Wed Jun 06 2018 Lokesh Mandvekar (Bot) - 1.0-18.gitd3d097b +- autobuilt d3d097b + +* Mon Jun 04 2018 Lokesh Mandvekar (Bot) - 1.0-17.gitf90b6c0 +- autobuilt f90b6c0 + +* Sun Jun 03 2018 Lokesh Mandvekar (Bot) - 1.0-16.git70641ee +- autobuilt 70641ee + +* Sat Jun 02 2018 Lokesh Mandvekar (Bot) - 1.0-15.git03686e5 +- autobuilt 03686e5 + +* Fri Jun 01 2018 Lokesh Mandvekar (Bot) - 1.0-14.git73bfd79 +- autobuilt 73bfd79 + +* Thu May 31 2018 Lokesh Mandvekar (Bot) - 1.0-13.git5595d4d +- autobuilt 5595d4d + +* Wed May 30 2018 Lokesh Mandvekar (Bot) - 1.0-12.gitebb0d8e +- autobuilt ebb0d8e + +* Tue May 29 2018 Lokesh Mandvekar (Bot) - 1.0-11.git88affbd +- autobuilt 88affbd + +* Fri May 25 2018 Lokesh Mandvekar (Bot) - 1.0-10.git25f4e8e +- autobuilt 25f4e8e + +* Thu May 17 2018 Lokesh Mandvekar (Bot) - 1.0-9.git2749191 +- autobuilt 2749191 + +* Wed May 16 2018 Lokesh Mandvekar (Bot) - 1.0-8.git3e320b9 +- autobuilt 3e320b9 + +* Tue May 15 2018 Lokesh Mandvekar (Bot) - 1.0-7.git8515867 +- autobuilt 8515867 + +* Sun May 13 2018 Lokesh Mandvekar (Bot) - 1.0-6.gitce8d467 +- autobuilt ce8d467 + +* Sat May 12 2018 Lokesh Mandvekar (Bot) - 1.0-5.gitb9a1041 +- autobuilt b9a1041 + +* Fri May 11 2018 Lokesh Mandvekar (Bot) - 1.0-4.git2ea3e11 +- autobuilt 2ea3e11 + +* Wed May 09 2018 Lokesh Mandvekar (Bot) - 1.0-3.gitfe204e4 +- autobuilt fe204e4 + +* Tue May 08 2018 Lokesh Mandvekar (Bot) - 1.0-2.git906ee37 +- autobuilt 906ee37 + +* Mon May 07 2018 Dan Walsh 1.0-1 +- Remove buildah run cmd and entrypoint execution +- Add Files section with registries.conf to pertinent man pages +- Force "localhost" as a default registry +- Add --compress, --rm, --squash flags as a noop for bud +- Add FIPS mode secret to buildah run and bud +- Add config --comment/--domainname/--history-comment/--hostname +- Add support for --iidfile to bud and commit +- Add /bin/sh -c to entrypoint in config +- buildah images and podman images are listing different sizes +- Remove tarball as an option from buildah push --help +- Update entrypoint behaviour to match docker +- Display imageId after commit +- config: add support for StopSignal +- Allow referencing stages as index and names +- Add multi-stage builds support +- Vendor in latest imagebuilder, to get mixed case AS support +- Allow umount to have multi-containers +- Update buildah push doc +- buildah bud walks symlinks +- Imagename is required for commit atm, update manpage + +* Mon May 07 2018 Lokesh Mandvekar (Bot) - 0.16-25.gitdd02e70 +- autobuilt dd02e70 + +* Sat May 05 2018 Lokesh Mandvekar (Bot) - 0.16-24.git45772e8 +- autobuilt 45772e8 + +* Fri May 04 2018 Lokesh Mandvekar (Bot) - 0.16-23.git6fe2b55 +- autobuilt 6fe2b55 + +* Wed May 02 2018 Lokesh Mandvekar (Bot) - 0.16-22.gita4f5707 +- autobuilt a4f5707 + +* Wed May 02 2018 Lokesh Mandvekar (Bot) - 0.16-21.gite130f2b +- autobuilt commit e130f2b + +* Tue May 01 2018 Lokesh Mandvekar (Bot) - 0.16-20.gitadb8e6f +- autobuilt commit adb8e6f + +* Sat Apr 28 2018 Lokesh Mandvekar (Bot) - 0.16-19.gitc50c287 +- autobuilt commit c50c287 + +* Fri Apr 27 2018 Lokesh Mandvekar (Bot) - 0.16-18.gitca1704f +- autobuilt commit ca1704f + +* Wed Apr 25 2018 Lokesh Mandvekar (Bot) - 0.16-17.git49abf82 +- autobuilt commit 49abf82 + +* Tue Apr 24 2018 Lokesh Mandvekar (Bot) - 0.16-16.gitfdc3998 +- autobuilt commit fdc3998 + +* Tue Apr 24 2018 Lokesh Mandvekar (Bot) - 0.16-15.gitb16a1ea +- autobuilt commit b16a1ea + +* Fri Apr 20 2018 Lokesh Mandvekar (Bot) - 0.16-14.gitd84f05a +- autobuilt commit d84f05a + +* Thu Apr 19 2018 Lokesh Mandvekar (Bot) - 0.16-13.gite008b73 +- autobuilt commit e008b73 + +* Thu Apr 19 2018 Lokesh Mandvekar (Bot) - 0.16-12.git28a27a3 +- autobuilt commit 28a27a3 + +* Tue Apr 17 2018 Lokesh Mandvekar (Bot) - 0.16-11.git45a4b81 +- autobuilt commit 45a4b81 + +* Tue Apr 17 2018 Lokesh Mandvekar (Bot) - 0.16-10.git45a4b81 +- autobuilt commit 45a4b81 + +* Mon Apr 16 2018 Lokesh Mandvekar (Bot) - 0.16-9.git6421399 +- autobuilt commit 6421399 + +* Mon Apr 16 2018 Lokesh Mandvekar (Bot) - 0.16-8.git83d7d10 +- autobuilt commit 83d7d10 + +* Mon Apr 16 2018 Lokesh Mandvekar (Bot) - 0.16-7.git83d7d10 +- autobuilt commit 83d7d10 + +* Mon Apr 16 2018 Lokesh Mandvekar (Bot) - 0.16-6.git83d7d10 +- autobuilt commit 83d7d10 + +* Mon Apr 09 2018 Lokesh Mandvekar (Bot) - 0.16-5.git4339223 +- autobuilt commit 4339223 + +* Mon Apr 09 2018 Lokesh Mandvekar (Bot) - 0.16-4.git4339223 +- autobuilt commit 4339223 + +* Mon Apr 09 2018 Lokesh Mandvekar - 0.16-3.git4339223 +- autobuilt commit 4339223 + +* Sun Apr 08 2018 Lokesh Mandvekar - 0.16-2.git4743c2e +- autobuilt commit 4743c2e + +* Wed Apr 4 2018 Dan Walsh 0.16-1 +- Add support for shell +- Vendor in latest containers/image +- docker-archive generates docker legacy compatible images +- Do not create $DiffID subdirectories for layers with no configs +- Ensure the layer IDs in legacy docker/tarfile metadata are unique +- docker-archive: repeated layers are symlinked in the tar file +- sysregistries: remove all trailing slashes +- Improve docker/* error messages +- Fix failure to make auth directory +- Create a new slice in Schema1.UpdateLayerInfos +- Drop unused storageImageDestination.{image,systemContext} +- Load a *storage.Image only once in storageImageSource +- Support gzip for docker-archive files +- Remove .tar extension from blob and config file names +- ostree, src: support copy of compressed layers +- ostree: re-pull layer if it misses uncompressed_digest|uncompressed_size +- image: fix docker schema v1 -> OCI conversion +- Add /etc/containers/certs.d as default certs directory +- Change image time to locale, add troubleshooting.md, add logo to other mds +- Allow --cmd parameter to have commands as values +- Document the mounts.conf file +- Fix man pages to format correctly +- buildah from now supports pulling images using the following transports: +- docker-archive, oci-archive, and dir. +- If the user overrides the storage driver, the options should be dropped +- Show Config/Manifest as JSON string in inspect when format is not set +- Adds feature to pull compressed docker-archive files + +* Tue Feb 27 2018 Dan Walsh 0.15-1 +- Fix handling of buildah run command options + +* Mon Feb 26 2018 Dan Walsh 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 0.13-2 +- Build on ARMv7 too (Fedora supports containers on that arch too) + +* Thu Feb 22 2018 Dan Walsh 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 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 - 0.11-3.git6bad262 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Mon Feb 05 2018 Lokesh Mandvekar - 0.11-2 +- Resolves: upstream gh#432 +- enable debuginfo for non-fedora packages + +* Tue Jan 16 2018 Dan Walsh 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 0.10-2 +- Fix checkin + +* Sat Dec 23 2017 Dan Walsh 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 0.9-1 +- Allow push to use the image id +- Make sure builtin volumes have the correct label + +* Thu Nov 16 2017 Dan Walsh 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 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 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 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 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 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 - 0.3-5.gitb9b2a8a - Build for s390x as well diff --git a/sources b/sources index 10ad6e1..08a17cb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (buildah-b9b2a8a.tar.gz) = 4af5e62d7fb1ec2cc05e5dac09c713b9822d0384fe4a9dc97af9677a0741998726b236022f4d817c9534e229e71bddd1e339f4a886557b6f16deb46eeabfbac7 +SHA512 (buildah-4888163.tar.gz) = cc1ce68839244f4d538335278182a561e1200d2a83040b6d4f4ad22b9295b099fc0b354815f6498e8e398a1252f0fe75e427a60a57ab1b56ac60da24b482e3eb diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 0000000..3a997a6 --- /dev/null +++ b/tests/README.md @@ -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. diff --git a/tests/binary.yml b/tests/binary.yml new file mode 100644 index 0000000..1c7803d --- /dev/null +++ b/tests/binary.yml @@ -0,0 +1,10 @@ +--- +# test buildah +- hosts: all + become: true + tags: + - classic + roles: + - binary + - prepare-env + - cli diff --git a/tests/callback_plugins/log.py b/tests/callback_plugins/log.py new file mode 100644 index 0000000..f4f1ce9 --- /dev/null +++ b/tests/callback_plugins/log.py @@ -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 . + +# 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 diff --git a/tests/roles/binary/tasks/buildah.yml b/tests/roles/binary/tasks/buildah.yml new file mode 100644 index 0000000..5122105 --- /dev/null +++ b/tests/roles/binary/tasks/buildah.yml @@ -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" diff --git a/tests/roles/binary/tasks/main.yml b/tests/roles/binary/tasks/main.yml new file mode 100644 index 0000000..771725d --- /dev/null +++ b/tests/roles/binary/tasks/main.yml @@ -0,0 +1,4 @@ +--- +- import_tasks: runc.yml + +- import_tasks: buildah.yml diff --git a/tests/roles/binary/tasks/runc.yml b/tests/roles/binary/tasks/runc.yml new file mode 100644 index 0000000..d64d5fb --- /dev/null +++ b/tests/roles/binary/tasks/runc.yml @@ -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 diff --git a/tests/roles/cli/tasks/add.yaml b/tests/roles/cli/tasks/add.yaml new file mode 100644 index 0000000..0bd6498 --- /dev/null +++ b/tests/roles/cli/tasks/add.yaml @@ -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 diff --git a/tests/roles/cli/tasks/bud.yaml b/tests/roles/cli/tasks/bud.yaml new file mode 100644 index 0000000..1f1c678 --- /dev/null +++ b/tests/roles/cli/tasks/bud.yaml @@ -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} diff --git a/tests/roles/cli/tasks/cleanup.yaml b/tests/roles/cli/tasks/cleanup.yaml new file mode 100644 index 0000000..45f31d5 --- /dev/null +++ b/tests/roles/cli/tasks/cleanup.yaml @@ -0,0 +1,4 @@ +--- +- name: remove buildah containers after testing + command: buildah rm busybox nginxc nginxc-2 + ignore_errors: true diff --git a/tests/roles/cli/tasks/config.yaml b/tests/roles/cli/tasks/config.yaml new file mode 100644 index 0000000..91e8bc3 --- /dev/null +++ b/tests/roles/cli/tasks/config.yaml @@ -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" diff --git a/tests/roles/cli/tasks/containers.yaml b/tests/roles/cli/tasks/containers.yaml new file mode 100644 index 0000000..fa9add6 --- /dev/null +++ b/tests/roles/cli/tasks/containers.yaml @@ -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 diff --git a/tests/roles/cli/tasks/copy.yaml b/tests/roles/cli/tasks/copy.yaml new file mode 100644 index 0000000..3f0d8c5 --- /dev/null +++ b/tests/roles/cli/tasks/copy.yaml @@ -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 diff --git a/tests/roles/cli/tasks/from.yaml b/tests/roles/cli/tasks/from.yaml new file mode 100644 index 0000000..e694b10 --- /dev/null +++ b/tests/roles/cli/tasks/from.yaml @@ -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 diff --git a/tests/roles/cli/tasks/main.yaml b/tests/roles/cli/tasks/main.yaml new file mode 100644 index 0000000..f709887 --- /dev/null +++ b/tests/roles/cli/tasks/main.yaml @@ -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 diff --git a/tests/roles/cli/tasks/mount.yaml b/tests/roles/cli/tasks/mount.yaml new file mode 100644 index 0000000..09bd901 --- /dev/null +++ b/tests/roles/cli/tasks/mount.yaml @@ -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 diff --git a/tests/roles/cli/tasks/prepare-containers.yaml b/tests/roles/cli/tasks/prepare-containers.yaml new file mode 100644 index 0000000..1477e62 --- /dev/null +++ b/tests/roles/cli/tasks/prepare-containers.yaml @@ -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 diff --git a/tests/roles/cli/tasks/push.yaml b/tests/roles/cli/tasks/push.yaml new file mode 100644 index 0000000..cc38b51 --- /dev/null +++ b/tests/roles/cli/tasks/push.yaml @@ -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 diff --git a/tests/roles/cli/tasks/tag.yaml b/tests/roles/cli/tasks/tag.yaml new file mode 100644 index 0000000..32767ba --- /dev/null +++ b/tests/roles/cli/tasks/tag.yaml @@ -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 diff --git a/tests/roles/prepare-env/tasks/main.yml b/tests/roles/prepare-env/tasks/main.yml new file mode 100644 index 0000000..bc46794 --- /dev/null +++ b/tests/roles/prepare-env/tasks/main.yml @@ -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 diff --git a/tests/roles/tear-down/tasks/main.yml b/tests/roles/tear-down/tasks/main.yml new file mode 100644 index 0000000..f54186d --- /dev/null +++ b/tests/roles/tear-down/tasks/main.yml @@ -0,0 +1,6 @@ +--- +- name: stop docker-distribution service + systemd: state=stopped name=docker-distribution + +- name: stop httpd service + systemd: state=stopped name=httpd diff --git a/tests/rpm.yml b/tests/rpm.yml new file mode 100644 index 0000000..27a9349 --- /dev/null +++ b/tests/rpm.yml @@ -0,0 +1,9 @@ +--- +# test buildah +- hosts: all + become: true + tags: + - classic + roles: + - prepare-env + - cli diff --git a/tests/test_binary.sh b/tests/test_binary.sh new file mode 100755 index 0000000..1290479 --- /dev/null +++ b/tests/test_binary.sh @@ -0,0 +1 @@ +ansible-playbook -i inventory binary.yml "$@" diff --git a/tests/test_rpm.sh b/tests/test_rpm.sh new file mode 100755 index 0000000..3634f61 --- /dev/null +++ b/tests/test_rpm.sh @@ -0,0 +1 @@ +ansible-playbook -i inventory buildah_rpm.yml "$@" diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..74f63e8 --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,12 @@ +--- +# test buildah +- hosts: localhost + become: true + tags: + - classic + roles: + - prepare-env + - role: cli + tags: + - cli + - tear-down