Commit Graph

293 Commits

Author SHA1 Message Date
Ian Campbell
26d93d613c kubernetes: use copy --from=image-ref
I hadn't realised this was possible, it means we don't need the dummy `FROM ...
AS docker`.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-12 11:09:10 +01:00
Rolf Neugebauer
8173300f76 Update YAML files to new kernels
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-10-11 13:12:49 +01:00
Ian Campbell
4df5d394e8 Bump yml
Done as follows:

    find -name build.yml | xargs dirname | while read d ; do
        t=$(linuxkit pkg show-tag $d)
        ./scripts/update-component-sha.sh --image ${t%:*} ${t#*:}
    done
    git commit -s test pkg tools blueprints examples projects/kubernetes projects/swarmd docs linuxkit.yml Makefile src

This explicitly excludes projects/* which I did not know whether to update.

Then:

    git reset --hard
    for i in init runc containerd ca-certificates sysctl dhcpcd getty rngd ; do
        o=$(git grep -h "\(image:\|-\) *linuxkit/$i:[0-9a-f]\{40\}" origin/master:linuxkit.yml | awk '// { print $2 }')
        n=$(linuxkit pkg show-tag pkg/$i)
        ./scripts/update-component-sha.sh "$o" "$n"
    done
    git commit --amend projects

This updates any projects which were using components with the same hash as the
top-level linuxkit.yml.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-10 13:23:45 +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
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
298ef8520d Convert some of projects/kubernetes/* to linuxkit pkg build
This just covers those using pkg/package.mk.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-09 16:40:00 +01:00
Justin Cormack
d0882b9674 Merge pull request #2571 from ijc/linuxkit-pkg
Implement package build, push and show-tag in linuxkit tool
2017-10-09 13:59:02 +01:00
Nick Jones
d73092adca Update metadata image references
Signed-off-by: Nick Jones <nick@dischord.org>
2017-10-09 12:27:00 +01:00
Ian Campbell
4cdc90e221 Build fields default to false, rename accordingly
Added some test cases for the boolean fields because I kept getting confused.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-06 17:43:38 +01:00
Ian Campbell
ba60937754 Implement package build, push and show-tag in linuxkit tool
This implements the proposal in #2564 and converts a handful of representative
or especially interesting (from a build PoV) packages to use it.

For now those pkg/* affected get a stub-`Makefile`, once all packages are
converted then `pkg/Makefile` can be adjusted and those stubs can be removed.

For now only `pkg/package.mk`'s functionality is implemented. In particular:

- `push-manifest.sh` remains a separate script, to enable calling it on systems
  with just the LinuxKit tools installed arrange to install it under a less
  generic name.
- `kernel` and `tools/alpine` do not use `pkg/package.mk` and those cases are
  not yet fully considered/covered.

I have updated the documentation assuming that the existing uses of
`pkg/package.mk` will be removed quite soon in a follow up PR rather than
trying to document the situation which results after just this commit.

Due to `cmd/linuxkit` now gaining a library the build needs adjusting slightly to
allow both `make bin/linuxkit` and `go build` to work.

`go vet` has forced me to write some rather asinine comments for things that
are rather obvious from the name.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-06 12:59:25 +01:00
Rolf Neugebauer
28303f6858 Update YAML files with new getty/ip/sshd hashes
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-10-06 11:16:10 +01:00
Rolf Neugebauer
d3b9d06924 Update YAML files with new kernel tags
In particular also fix the wireguard test whose kernel
tag hasn't been updated for quite some time...

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-10-06 11:15:34 +01:00
David Scott
cecb5a65b7 kubernetes: add optional support for a kubeadm.yaml
Unfortunately some options (such as enabling dynamic registration of
initializers) can only be enabled by a `--config foo.yaml` argument.
Furthermore some command-line options (such as the kubernetes version)
cannot be used in combination with the config file.

This patch checks for a supplied  /etc/kubeadm/kubeadm.yaml and uses
it if it exists, otherwise it falls back to the original command-line.
Note it is safe to use the `--skip-*` options in combination with the
`--config` option.

Signed-off-by: David Scott <dave.scott@docker.com>
2017-10-04 16:24:16 +01:00
Ian Campbell
8d69ed14f4 kubernetes: Update yml
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-04 12:22:17 +01:00
Ian Campbell
4386cbcdf9 kubernetes: bookend kubeadm-init with stamp files.
It is possible to get rebooted halfway through the init process, after key
files like `/etc/kubernetes/kubelet.conf` have been created but before full
cluster setup is complete or networking is applied.

Right now the idempotency of kubeadm (or backing out from this half-way state
and resuming the initialisation) is not something I have investigated. By
dropped stamps before and after at least the situation will be somewhat
detectable/diagnosable so the user can e.g. nuke their persistent disk and
start again.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-04 12:17:14 +01:00
Ian Campbell
164c4a30f5 kubernetes: support untainting master via metadata
If a stamp file is present in the metadata then untaint.

This is useful for dev environments where you only want to start a single vm.

The construction of the metadata becomes a little more complex to produce
correct json syntax now that there are two (independent) possible options.

Likewise the kubelet.sh script now takes the presence of /var/config/kubeadm
(rather than /var/config/kubeadm/init) as the signal to use the more structured
setup, since we may now have /var/config/kubeadm/untaint-master but not
/var/config/kubeadm/init so would otherwise end up passing the contents of
`/var/config/userdata` (something like `{ "kubeadm": { "untaint-master": "" }
}`) to `kubeadm` and confusing it enormously.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-04 11:28:48 +01:00
Ian Campbell
eb0fde3a10 kubernetes: update yml
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-03 15:18:21 +01:00
Ian Campbell
c0a3656eb3 kubernetes: update to kub dns 1.14.5
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-03 15:08:43 +01:00
Ian Campbell
72dff9059d kubernetes: arrange for kubelet-plugins directory to be persistent
/usr/libexec/kubernetes/kubelet-plugins is a new path in Kube 1.8 (related to
flexvolumes) which should be persisted. Like /etc/cni and /opt/cni we also need
to arrange for this path to be valid in the host environment (since various
system containers will try and mount bind mount it).

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-03 15:08:43 +01:00
Ian Campbell
57a2ae4318 kubernetes: adjust for v1.8 bootstrapping arrangements.
With kube 1.8 kubeadm initially configures worker nodes with a
bootstrap-kubelet.conf. Adjust our start of day scripting to DTRT.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-03 15:08:43 +01:00
Ian Campbell
f85208c74a kubernetes: Bump to v1.8.0
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-03 15:08:37 +01:00
Ian Campbell
9a99164cf7 kubernetes: Use /etc/kubernetes rather than /var/lib/kubelet
This is a bind mount, but /etc/kubernetes is the path formally expected/create
by kubeadm.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-03 14:59:54 +01:00
Rolf Neugebauer
6e58dc2940 Merge pull request #2532 from eyz/linuxkit-format-device-filter
format: blkid content check, format argument, and verbose argument
2017-10-03 11:30:00 +01:00
Isaac Rodman
0c23a5f3ce updated linuxkit/format tag to linuxkit/format:f180a74d878c8c0c86f6208f9311474c91452a79
Signed-off-by: Isaac Rodman <isaac@eyz.us>
2017-10-02 15:11:13 -07:00
Ian Campbell
9f414f429c kubernetes: bump yml
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-02 10:53:12 +01:00
Ian Campbell
6d387bf59d kubernetes: do not try to re-init the cluster on subsequent boots
If `kubelet.conf` already exits then don't try to redo `kubeadm`, no matter
what the metadata requests.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-10-02 10:50:06 +01:00
Ian Campbell
6ae72e8f50 kubernetes: update yml
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-29 10:07:11 +01:00
Ian Campbell
f02c79e733 kubernetes: cri-containerd v1.0.0-alpha.0
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-29 10:04:16 +01:00
Ian Campbell
5804f9db3c kubernetes: rename /etc/kubelet.conf to /etc/kubelet.sh.conf
To help reduce confusion from this file (which configures our `kubelet.sh`
wrapper) vs `/var/lib/kubeadm/kubelet.conf` (which is created by `kubeadm` and
configures `kubelet` itself).

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-29 10:04:16 +01:00
Rolf Neugebauer
ab2333d70e Update YAML files with new kernels
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-09-28 15:45:23 +01:00
Ian Campbell
f626f0ee65 kubernetes: Update yml for cri-containerd
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-27 17:04:37 +01:00
Ian Campbell
2e5b1579e0 kubernetes: bump to latest cri-containerd
This vendors containerd v1.0.0-beta.1

Enable seccomp support at build time.

Requires /dev bind mount so it can use /dev/disk/by-uuid to resolve devices to
uuids.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-27 17:01:07 +01:00
Ian Campbell
c227c31e75 kubernetes: try and make exec-id unique
Hopefully hostname + local pid should be unlikely to clash.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-27 17:01:07 +01:00
Ian Campbell
1bdf0df8b6 Update yml for new linuxkit/mount package.
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-27 16:44:40 +01:00
Ian Campbell
f30996438d kubernetes: bump yml
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-26 11:11:28 +01:00
Ian Campbell
a2d052b3df kubernetes: disable cAdvisor (in kubelet) from listening on 0.0.0.0:4194
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-26 11:00:51 +01:00
Ian Campbell
dcd01314c7 kubernetes: add openssl to kubelet container
This is needed for certificate operations, such as signing a new user's csr.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-26 11:00:51 +01:00
Ian Campbell
f6f23cbb0b kubernetes: build kube{let,adm,ctl} from source
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-26 11:00:44 +01:00
Ian Campbell
563ee76cb5 Update yml
Pulling in containerd v1.0.0-beta.1.

Fixes #2533.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-25 13:54:24 +01:00
Rolf Neugebauer
cc200d296a Merge pull request #2527 from eyz/linuxkit-dhcpcd-CAP_SYS_ADMIN
added capability to pkg/dhcpcd for sethostname
2017-09-21 20:53:16 +01:00
Isaac Rodman
542ad766b7 switched linuxkit/dhcpcd hash to d4408777ed for PR #2527
Signed-off-by: Isaac Rodman <isaac@eyz.us>
2017-09-21 10:47:06 -07:00
Justin Cormack
a5054d5ad4 Update containerd hashes
Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2017-09-20 14:35:37 -07:00
Ian Campbell
ac6b8dcf6a kubernetes: more flexible selection of network stack
Also move to 50 in the ordering so things can be added before as well as after.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-20 16:45:56 +01:00
Ian Campbell
451fe22c82 kubernetes: update yml
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-20 15:26:41 +01:00
Ian Campbell
615f135d61 kubernetes: use coreutils in kubelet container for full fat du
Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-20 15:24:18 +01:00
Ian Campbell
5c4c25cac6 kubernetes: support auto-init via metadata
Set KUBE_MASTER_AUTOINIT when using boot.sh to enable. User will need to pick
up the token for other nodes using `kubeadm token list`.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-20 15:23:27 +01:00
Ian Campbell
3ce260cb9a kubernetes: rework kubelet and kubeadm start of day interations
Rework the kubelet.sh script by adding an explicit step which waits for the
configuration to be valid, either by finding appropriate metadata or by waiting
explicitly for kubelet.conf to be created (e.g. by kubeadm) before launching
kubelet. The previous construct was implicitly waiting for kubelet.conf to be
created since kubelet fails if that file is not present.

Pull the set of start of day yaml files to be applied (currently just weave)
out of the kubelet image and into the LinuxKit yaml by providing a directory
which is searched for *.yaml after init.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-20 15:23:27 +01:00
Ian Campbell
7145b40947 kubernetes: bump to cri-containerd a2dbc6ec1ce6
Adds some bug fixes and support for copy up of anonymous volume contents from
the underlying image.

Signed-off-by: Ian Campbell <ijc@docker.com>
2017-09-20 15:23:27 +01:00
Rolf Neugebauer
ffe6de1119 Update YAMLs to new kernel versions
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-09-20 12:14:40 +01:00
Rolf Neugebauer
60dd54670f Update YAML files with new getty, ip, and sshd package hashes
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
2017-09-20 11:52:42 +01:00