Build all of our binaries with the same build tags and the same LDFLAGS.
This means we add $(LDFLAGS) to bin2img, copyimg, and cri-o,
$(BUILDTAGS) to kpod, and both to crioctl and checkseccomp.
Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
if you run `make localintegration` from a branch, switch to another and
re-run the command again, `ocid` won't get built again causing tests to
run with binaries from the old branch you switched from.
This patch makes sure we cleanup binaries and rebuild before running
tests.
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
The ocid project was renamed to CRI-O, months ago, it is time that we moved
all of the code to the new name. We want to elminate the name ocid from use.
Move fully to crio.
Also cric is being renamed to crioctl for the time being.
Signed-off-by: Dan Walsh <dwalsh@redhat.com>
In build environments such as koji, there is no access to download
and install go packages so we should look for go-md2man in system
path first.
Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
When powering off the system, we want the ocid service, to shutdown
all containers running on the system so they can cleanup properly
This patch will cleanup all pods on poweroff.
The ocid-shutdown.service drops a file /var/run/ocid.shutdown when the system
is shutting down. The ocid-shutdown.service should only be executed at system
shutdown.
On bootup sequence should be
start ocid.service
start ocid-shutdown.service (This is a NO-OP)
On system shutdown
stop ocid-shutdown.service (Creates /var/run/ocid.shutdown)
stop ocid.service (Notices /var/run/ocid.service and stops all pods before exiting.)
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
To ensure that changing a dependency source file actually triggers
a rebuild of the core binaries when you type 'make', find their
dependencies and add them to the makefile's target dependencies.
Signed-off-by: Dan Williams <dcbw@redhat.com>
Instead of requiring the developer to set up their own GOPATH somewhere,
do like Kubernetes and OpenShift Origin do:
git clone xxxxx
cd xxxxx
make
by creating an _output/ directory and linking the local source tree
into it, and setting that to be the GOPATH.
Signed-off-by: Dan Williams <dcbw@redhat.com>
go install acts incredibly weirdly and rarely does what you want, not to
mention that it's just bad for distribution build setups. Switch back to
go build, which works properly and doesn't have half as many issues.
Fixes: 6c9628cdb1 ("Build and install from GOPATH")
Signed-off-by: Aleksa Sarai <asarai@suse.de>
Use the same build tags for bin2img and copyimg that we use for ocid,
and improve detection of the case where we need to use the
"libdm_no_deferred_remove" tag.
Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
In multiple places, we've been assuming that we can invoke binaries that
we install as $GOPATH/bin/$binary. This doesn't work in cases where
$GOPATH is a list.
Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
Add a basic tool for copying images from one location to another,
optionally adding a name if it's to local storage. Ideally we could use
skopeo for this, but we don't want to build it.
Use it to initially populate the test/testdata/redis-image directory, if
it's not been cleaned out, with a copy of "docker://redis:latest", and
to copy it in to the storage that ocid is using before we start up ocid.
Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
Add tests which exercise image pulling, listing, and removal. When running
tests, prepopulate the store with an image with the default infrastructure
container's name, using the locally-built "pause" binary, so that tests won't
have to pull it down from the network.
Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
* Rename 'vendor/src' -> 'vendor'
* Ignore vendor/ instead of vendor/src/ for lint
* Rename 'cmd/client' -> 'cmd/ocic' to make it 'go install'able
* Rename 'cmd/server' -> 'cmd/ocid' to make it 'go install'able
* Update Makefile to build and install from GOPATH
* Update tests to locate ocid/ocic in GOPATH/bin
* Search for binaries in GOPATH/bin instead of PATH
* Install tools using `go get -u`, so they are updated on each run
Signed-off-by: Jonathan Yu <jawnsy@redhat.com>
Add the necessary build tags and configuration so that integration tests
can properly build against device mapper and btrfs libraries.
Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
We need to start off with man pages and bash completion
support for kpod.
Also fix Makefile to install kpod by default
Signed-off-by: Dan Walsh <dwalsh@redhat.com>
The GO= arguments allow for cross-compilation without needing to symlink
over /usr/bin/go. Currently openSUSE uses go-5 for building on exotic
architectures. In addition, installdir options makes installation on
various distributions much easier, for example openSUSE doesn't have a
separate %{_libexecdir}.
Due to how Makefiles are parsed, we have to delay the expansion of the
$(wildcard ...) until the actual install target is being executed.
In addition, fix the oci{c,d} dependency lists so that we don't rebuild
oci{c,d} every time. Also remove "all" as a dependency of make install
-- this breaks building inside RPMs with custom ocid.conf files.
Signed-off-by: Aleksa Sarai <asarai@suse.de>
In addition, remove the installation steps from the Makefile. In
general, I personally don't like projects that install service files on
`make install` -- that's the job of a package manager.
Signed-off-by: Aleksa Sarai <asarai@suse.com>
OCID_LINK is necessary to correctly build all of the binaries. This
syntax is a GNU Make-ism[1] that allows you to specify a path dependency
without rebuilding the target if the dependency is newer than the
target.
[1]: https://www.gnu.org/software/make/manual/html_node/Prerequisite-Types.html
Signed-off-by: Aleksa Sarai <asarai@suse.com>
On Ubuntu, `/bin/sh` is used in Makefile by default, so
a.{1,2,3} isn't evaluated to a.1 a.2 a.3, another solution
is to use `SHELL=/bin/bash` in Makefile, but I don't think
we should bind to bash this early, at least not for this
case.
This also remove the removal of docs/*.1 which doesn't
exist for now.
Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
Previously, the markdown versions of the man pages were copied to
their respective locations, but these cannot be parsed by the man
command. The Makefile was updated to gzip the man pages generated
by go-md2man and install the gzipped files into their respective
man directories.
Signed-off-by: Ryan Cole <rcyoalne@gmail.com>
Add documentation for the new configuration file format, as well as the
new `ocid config` subcommand and the changed --socket option.
Signed-off-by: Aleksa Sarai <asarai@suse.de>