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>
swarmd package
This adds a swarmd package for Moby which contains the standalone
swarmkit orchestration daemon (swarmd) and CLI tool (swarmctl).
The package tracks ijc's container-wip branch.
Compared with mainline swarmkit (which container a basic containerd
executor merged in PR1965) this reworks the executor to use the
container client library and adds support for CNI networking.
With a suitable LinuxKit image (such as swarmd.yml from this
directory) something like this should work:
ctr exec -- swarmd swarmd swarmctl service create --image docker.io/library/nginx:alpine --name nginx
ctr exec -- swarmd swarmd swarmctl service ls
Note that swarmd uses the "swarmd" containerd namespace, so to see
swarmd managed containers you will need to use -n swarmd on all
ctr commands e.g.:
ctr -n swarmd containers ls
Alternatively you may export CONTAINERD_NAMESPACE=swarmd.
TODO
Bootstrapping a cluster needs more investigation. Tokens and join
addresses can currently only be passed on the swarmd command line
which is inconvenient for automated image deployment.
Swarmkit PR 1965 also contains a number of TODOs which are not separately listed here.