366 Commits

Author SHA1 Message Date
Ian Campbell
1d030172bf Merge pull request #2600 from ijc/containerd-v1.0.0-beta.2
Bump to containerd v1.0.0-beta.2
2017-10-12 16:19:01 +01:00
Ian Campbell
19a02ef28c alpine: bump to containerd v1.0.0-beta.2
Note that a237b51511 ("Bump alpine base across the board.") inadvertently
corrupted `tools/alpine/versions.aarch64` (by updating it to the amd64 hash),
this commit corrects this as part of the rebuild.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-12 12:51:20 +01:00
Justin Cormack
995bde5a54 Merge pull request #2558 from deitch/raw-bios
Add support to make minimal raw bios images
2017-10-12 11:24:14 +01:00
Justin Cormack
3b07a9e793 Merge pull request #2540 from deitch/raw-efi
Add support to make raw efi images
2017-10-12 11:23:32 +01:00
Avi Deitcher
8f3e4e419d Add support to make raw efi images; simplify raw bios build
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2017-10-10 21:00:53 +03:00
Avi Deitcher
fb5383a25e simplify raw bios build
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2017-10-10 20:59:48 +03:00
Ian Campbell
d055ab31d8 tools: mkimage-*: disable content trust
Signing is not setup for these repositories. It seems they haven't been updated
since before trust was added since their previous Makefile metadata (which was
translated in build.yml) did not contain `NOTRUST=1`.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-10 10:13:15 +01:00
Ian Campbell
a237b51511 Bump alpine base across the board.
By running:

    ./scripts/update-component-sha.sh --image linuxkit/alpine ad35b6ddbc70faa07e59a9d7dee7707c08122e8d

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-10 09:55:45 +01:00
Ian Campbell
206fc78a6a Update alpine package
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-10 08:54:44 +00:00
Ian Campbell
13d11f49ba Rename "tag*" Makefile targets to "build*"
This better matches the `linuxkit pkg build` nomenclature.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-09 16:48:48 +01:00
Ian Campbell
624e7c82f1 Convert most of tools/* to linuxkit pkg build
tools/alpine and tools/guestfs are omitted since they do not currently use
pkg/package.mk and do their own thing. Slightly hacky arrangements are made for
these. Note that previously they were only recursed into for their default
target (push) and that behaviour is retained.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-09 16:20:25 +01:00
Ian Campbell
f7c50156c5 tools: pull linuxkit/guestfs by digest only (not digest+tag)
Current versions of Docker complain:

    Sending build context to Docker daemon   5.12kB
    Step 1/4 : FROM linuxkit/guestfs@sha256:62e810869e83dabe04af7ac8fcd81d9f177d986a3424dcb9c4eb5439993c962f
    ...
    Successfully tagged linuxkit/mkimage-gcp:736880776838c8f41c081276d9c017ae6adbf1bb-amd64
    Tagging linuxkit/guestfs@sha256:62e810869e83dabe04af7ac8fcd81d9f177d986a3424dcb9c4eb5439993c962f as linuxkit/guestfs:aecc40bf84ce4f4238e06934c46d7cc570a39eed@sha256:62e810869e83dabe04af7ac8fcd81d9f177d986a3424dcb9c4eb5439993c962f
    refusing to create a tag with a digest reference
    ../../pkg/package.mk:82: recipe for target 'tag-y' failed

Just use the digest for now. Perhaps someone will have time to fixup this build
properly at some point.

Make the same change to test/pkg/ltp.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-09 16:20:10 +01:00
Ian Campbell
ca70b7b6af Update pkg/Makefile and test/pkg/Makefile based on tools/Makefile
Using explicit targets is cleaner and easier to follow.

Also add `forcepush` to pkg and test/pkg and make `push` explicit.

The `dirs` phony was non-existent in all three cases. Likewise `$(DIR)` wasn't
used in that way in pkg or test/pkg and is nolonger used in that way in tools.

Finally, `clean` was bogus in all cases (tools cleaned a thing which never
exists and pkg and test/pkg were a syntax error).

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-09 16:20:08 +01:00
Rolf Neugebauer
cac4168e26 tools/alpine: Add nfs-utils
New package is at: linuxkit/alpine:3fb44354a34b05134fbf585a00217cd2f8c8f0bf

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-10-06 13:32:45 +00:00
Rolf Neugebauer
61a1b9774c tools/alpine: Explicitly add blkid
On x86_64, the blkid package gets installed as a dependency, but
not on arm64. Explicitly add it as the new format package depends
on it.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-10-02 17:35:26 +00:00
Rolf Neugebauer
eafdbbd0fe tools/alpine: Add cifs-utils
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-10-02 13:22:30 +00:00
Rolf Neugebauer
21e26dcb46 tools/alpine: Add wireless-tools and wpa_supplicant
available as: linuxkit/alpine:a94acee63dc1d0bd5cd5006d66514f62373650f2

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-09-27 10:20:34 +00:00
Ian Campbell
fb94b23a93 alpine: rebuild
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-25 12:29:10 +00:00
Ian Campbell
7bd1ca47b0 alpine: Add packages which are build dependencies of Kubernetes
Currently projects/kubernetes pulls in the binaries, adding these dependencies
will allow us to build them as part of our packaging process.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-25 12:17:02 +01:00
Ian Campbell
9ddcdaba56 alpine: bump to containerd v1.0.0-beta.1
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-25 12:16:23 +01:00
Justin Cormack
c8f5d16a25 Merge pull request #2524 from arm64b/mkimage-efi-iso
mkimage: Support iso-efi generation for both arm64 and amd64
2017-09-24 09:03:53 -07:00
Dennis Chen
fa1829529d tools: Support iso-efi generation for both arm64 and amd64
This patch uses coreos grub2 instead of the built-in gummiboot
tool with Alpine distribution.

Coreos grub2 has the security feature such as TPM and kernel
verification, so we can setup a trust chain when loading
modules with grub2.

GNU grub2[1] also has the plan to add those security related
features, they have a 'verifiers' branch to do that, but
there're some build issue need to fix,so this patch use
coreos as an alternative.

This patch is used to address the #2359 #2375.

Thanks Avi Deitcher <avi@deitcher.net> for the contribution
to build the GRUB2 from ubuntu 16.04 to alpine base image.

Change Log:

1.Address the comments raised by @rn
2.Change the '/dev/vda' as the device name point by kernel command
  line 'root=' on arm64, '/dev/sr0' on amd64. As next plan, we can adapt
  a more flexible method to get the dev name of the CDROM.
3.Switch the base image to build grub2 from ubuntu 16.04 to alpine.
4.'linux' as the grub2 menu entry on arm64, while 'linuxefi' on amd64.

[1] https://git.savannah.gnu.org/git/grub.git

Signed-off-by: Dennis Chen <dennis.chen@arm.com>
2017-09-24 14:06:19 +00:00
Justin Cormack
a48a6b3e97 Build containerd in Alpine image
This makes it easier to add the containerd testing tools like
`containerd-stress` to test packages, for example, and also at
some point move `ctr` out of the base image as it can be installed
from the alpine image.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-09-20 21:16:54 +00:00
Ian Campbell
dea2e1df66 alpine: add coreutils
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-20 14:22:55 +00:00
Rolf Neugebauer
b971db8a4b tools/alpine: Update alpine base image
In particular this updates the wireguard tools to a newer version.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-09-20 10:43:55 +00:00
Ian Campbell
b736afeee3 alpine: bump to containerd v1.0.0-beta.0
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-07 17:28:38 +00:00
Rolf Neugebauer
1d33b90530 tools/alpine: Add iSCSI and related tools to base
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-09-04 17:58:16 +01:00
Rolf Neugebauer
db6e8bae35 tools: Add openssl, attr-dev, and libtirpc-dev to the alpine base image
The first is needed by the okernel project and last two to run
configure on the zfs kernel modules.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-08-31 15:54:12 +00:00
Ian Campbell
6d878dd65f alpine: bump to containerd v1.0.0-alpha6
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-08-29 00:39:20 +01:00
Justin Cormack
90f905a799 Move containerd clone to tools/alpine
As discussed before, as we use this in three places, cloning in
base makes more sense.

Update base image.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-08-21 15:16:09 +01:00
Justin Cormack
92d31d733d Add ebtables, socat, libc6-compat to alpine base
These are needed by Kubernetes which is currently not using the standard abse image.

Also sort it.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-08-21 13:34:02 +01:00
Rolf Neugebauer
944b6a5816 tools/alpine: Add ethtool
resolves #2419

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-08-16 00:58:42 +01:00
Rolf Neugebauer
795ca7d0e4 tools/alpine: Update base image
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-08-15 11:11:30 +01:00
Avi Deitcher
40aee08ddb Add sgdisk package to linuxkit/alpine
Signed-off-by: Avi Deitcher <avi@deitcher.net>
2017-08-14 18:30:30 +02:00
Ian Campbell
da6cbf74f3 alpine: Update to containerd v1.0.0-alpha4 base.
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-08-11 16:13:23 +01:00
Justin Cormack
3321e713de Merge pull request #2363 from justincormack/efi-tar
Put full filesystem on EFI ISO
2017-08-07 19:10:39 +01:00
Ian Campbell
bfd9499795 alpine: bump to containerd v1.0.0-alpha3
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-08-07 11:39:09 +01:00
Justin Cormack
fdc4eb7c32 Put full filesystem on EFI ISO
In line with BIOS ISO changes previously.

Remove boot options, user can add if required, they made boot very slow.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-08-04 21:04:37 +01:00
Rolf Neugebauer
473d544996 tools: Update remaining tools to the multi-arch base
linuxkit/mkimage-iso-bios did not work
on aarch64 (no syslinux) and will error.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-08-03 17:36:22 +01:00
Rolf Neugebauer
6adde26d62 tools/go-compile: Convert to multi-arch
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-08-03 17:36:22 +01:00
Rolf Neugebauer
6d4162343a scripts: Add a script to push and sign manifests
Also adjust the 'linuxkit/alpine' script to follow the
same pattern.

The new version of the script extract username/password from
the credential helper (or docker) and build and 'expect'
script to feed the info to 'notary'.

They can be invoked by:
DOCKER_CONTENT_TRUST_REPOSITORY_PASSPHRASE="phrase" ./push-manifest.sh ...

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-08-03 17:36:21 +01:00
Justin Cormack
570d706486 Merge pull request #2339 from justincormack/iso-files
Unpack filesystem for BIOS ISO
2017-08-02 15:47:59 +01:00
Justin Cormack
2b045f59fe Unpack filesystem for BIOS ISO
Now that LinuxKit works on a truly immutable filesystem, for an
ISO it makes sense to use the ISO filesystem rather than using
an initrd. Only major difference is you may need to specify the
device for the root filesystem in the kernel command line, but
we set a sane default of `/dev/sr0` if unspecified.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-08-02 13:28:35 +01:00
Rolf Neugebauer
fb6079b1a4 tools/alpine: Convert the alpine base image to a multi-arch image
- append a architecture specific suffix (-amd64, -arm64) to the
  image
- add a script which looks up the hashes from the 'versions' file
  and creates a multi-arch manifest
- the manifest is pushed to hub and signed with notary

The new linuxkit/alpine multi-arch image is available with the
x86_64 hash without the '-amd64' suffix.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-08-01 16:46:41 +01:00
Justin Cormack
17f5da9fea Provide way for programs to use CGO with go-compile script if they need to
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-07-31 16:11:07 +01:00
Ian Campbell
886870c935 alpine: Use C locale to sort the versions file.
This should reduce instability due to different people's environment. This
undoes the reordering done by "alpine: Update to containerd v1.0.0-alpha2",
leaving just the hash update (as expected).

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-07-27 12:14:36 +01:00
Ian Campbell
c8164c0a6e alpine: Update to containerd v1.0.0-alpha2
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-07-27 11:07:03 +01:00
Justin Cormack
bafeac62ec Merge pull request #2301 from rn/base-ovmf
Various OVMF related fixes
2017-07-27 10:25:24 +01:00
Rolf Neugebauer
930c9c21df tools/qemu: Install ovmf for x86
The previous commit moved ovmf to the packages instead
of stashing it on the filesystem. This requires the
package to be installed here.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-07-26 18:14:28 +01:00
Rolf Neugebauer
bf5a461ce5 tools/alpine: Add OVMF to the mirror and not the image
We add the 'ovmf' to the mirror instead of installing
it in the rootfs. This way we record the version we are
using.

We already pull a few images (go, tini) from community
so may as well pull ovmf directly via 'packages.x86_64'.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-07-26 18:14:28 +01:00