mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-21 10:09:07 +00:00
Merge pull request #1080 from justincormack/split-database
Split config database setup by platform
This commit is contained in:
commit
bb2da98169
@ -48,6 +48,10 @@ RUN \
|
|||||||
rc-update add transfused default && \
|
rc-update add transfused default && \
|
||||||
rc-update add automount sysinit && \
|
rc-update add automount sysinit && \
|
||||||
rc-update add diagnostics default && \
|
rc-update add diagnostics default && \
|
||||||
|
rc-update add database-mac boot && \
|
||||||
|
rc-update add database-windows boot && \
|
||||||
|
rc-update add database-aws default && \
|
||||||
|
rc-update add database-gcp default && \
|
||||||
rc-update add hostsettings default && \
|
rc-update add hostsettings default && \
|
||||||
rc-update add windowsnet boot && \
|
rc-update add windowsnet boot && \
|
||||||
rc-update add hv_kvp_daemon default && \
|
rc-update add hv_kvp_daemon default && \
|
||||||
|
@ -45,7 +45,7 @@ moby.img: Dockerfile mkinitrd.sh init $(ETCFILES)
|
|||||||
-C packages/userns etc -C ../.. \
|
-C packages/userns etc -C ../.. \
|
||||||
-C packages/nc-vsock usr -C ../.. \
|
-C packages/nc-vsock usr -C ../.. \
|
||||||
-C packages/vsudd sbin etc -C ../.. \
|
-C packages/vsudd sbin etc -C ../.. \
|
||||||
-C packages/mobyconfig usr -C ../.. \
|
-C packages/mobyconfig etc usr -C ../.. \
|
||||||
-C packages/mobyplatform usr -C ../.. \
|
-C packages/mobyplatform usr -C ../.. \
|
||||||
-C packages/oom etc -C ../.. \
|
-C packages/oom etc -C ../.. \
|
||||||
-C packages/9pmount-vsock sbin -C ../.. \
|
-C packages/9pmount-vsock sbin -C ../.. \
|
||||||
|
29
alpine/packages/mobyconfig/etc/init.d/database-aws
Executable file
29
alpine/packages/mobyconfig/etc/init.d/database-aws
Executable file
@ -0,0 +1,29 @@
|
|||||||
|
#!/sbin/openrc-run
|
||||||
|
|
||||||
|
description="Set up database (AWS)."
|
||||||
|
|
||||||
|
depend() {
|
||||||
|
before docker hostsettings windowsnet
|
||||||
|
}
|
||||||
|
|
||||||
|
start() {
|
||||||
|
[ "$(mobyplatform)" = "aws" ] || exit 0
|
||||||
|
|
||||||
|
ebegin "Setting up database (AWS)"
|
||||||
|
|
||||||
|
mkdir -p /Database
|
||||||
|
mount -t tmpfs tmpfs /Database
|
||||||
|
|
||||||
|
ENDPOINT="http://169.254.169.254/latest/meta-data"
|
||||||
|
curl "${ENDPOINT}/local-hostname" 2> /dev/null | mobyconfig set etc/hostname
|
||||||
|
# as this is a bit late let us set it anyway
|
||||||
|
mobyconfig get etc/hostname > /etc/hostname
|
||||||
|
hostname -F /etc/hostname
|
||||||
|
# TODO should collect all keys
|
||||||
|
curl -f -I "${ENDPOINT}/public-keys/0/openssh-key" 2> /dev/null > /dev/null && \
|
||||||
|
curl "${ENDPOINT}/public-keys/0/openssh-key" 2> /dev/null | mobyconfig set etc/ssh/authorized_keys
|
||||||
|
USERDATA="http://169.254.169.254/latest/user-data/"
|
||||||
|
curl "${USERDATA}" 2> /dev/null | mobyconfig set userdata
|
||||||
|
|
||||||
|
eend 0
|
||||||
|
}
|
27
alpine/packages/mobyconfig/etc/init.d/database-gcp
Executable file
27
alpine/packages/mobyconfig/etc/init.d/database-gcp
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
#!/sbin/openrc-run
|
||||||
|
|
||||||
|
description="Set up database (GCP)."
|
||||||
|
|
||||||
|
depend() {
|
||||||
|
before docker hostsettings windowsnet
|
||||||
|
}
|
||||||
|
|
||||||
|
start() {
|
||||||
|
[ "$(mobyplatform)" = "gcp" ] || exit 0
|
||||||
|
|
||||||
|
ebegin "Setting up database (GCP)"
|
||||||
|
|
||||||
|
mkdir -p /Database
|
||||||
|
mount -t tmpfs tmpfs /Database
|
||||||
|
|
||||||
|
PROJECT=http://metadata.google.internal/computeMetadata/v1/project
|
||||||
|
INSTANCE=http://metadata.google.internal/computeMetadata/v1/instance
|
||||||
|
curl "${INSTANCE}/hostname" 2> /dev/null | mobyconfig set etc/hostname
|
||||||
|
# as this is a bit late let us set it anyway
|
||||||
|
mobyconfig get etc/hostname > /etc/hostname
|
||||||
|
hostname -F /etc/hostname
|
||||||
|
curl -f -I "${PROJECT}/attributes/sshKeys" 2> /dev/null > /dev/null && \
|
||||||
|
curl "${PROJECT}/attributes/sshKeys" 2> /dev/null | mobyconfig set etc/ssh/authorized_keys
|
||||||
|
|
||||||
|
eend 0
|
||||||
|
}
|
22
alpine/packages/mobyconfig/etc/init.d/database-mac
Executable file
22
alpine/packages/mobyconfig/etc/init.d/database-mac
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
#!/sbin/openrc-run
|
||||||
|
|
||||||
|
description="Set up database (OSX)."
|
||||||
|
|
||||||
|
depend() {
|
||||||
|
before docker hostsettings windowsnet
|
||||||
|
}
|
||||||
|
|
||||||
|
start() {
|
||||||
|
[ "$(mobyplatform)" = "mac" ] || exit 0
|
||||||
|
|
||||||
|
ebegin "Setting up database (OSX)"
|
||||||
|
|
||||||
|
mkdir -p /Database
|
||||||
|
mount -t tmpfs tmpfs /Database
|
||||||
|
mkdir -p /tmp/db
|
||||||
|
mount -t 9p -o trans=virtio,dfltuid=1001,dfltgid=50,version=9p2000 db /tmp/db
|
||||||
|
[ $? -ne 0 ] && rm -rf /Database && printf "Could not mount configuration database\n" 1>&2 && eend 1
|
||||||
|
cp -a /tmp/db/branch/master/ro/com.docker.driver.amd64-linux/* /Database
|
||||||
|
|
||||||
|
eend 0
|
||||||
|
}
|
22
alpine/packages/mobyconfig/etc/init.d/database-windows
Executable file
22
alpine/packages/mobyconfig/etc/init.d/database-windows
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
#!/sbin/openrc-run
|
||||||
|
|
||||||
|
description="Set up database (Windows)."
|
||||||
|
|
||||||
|
depend() {
|
||||||
|
before docker hostsettings windowsnet
|
||||||
|
}
|
||||||
|
|
||||||
|
start() {
|
||||||
|
[ "$(mobyplatform)" = "windows" ] || exit 0
|
||||||
|
|
||||||
|
ebegin "Setting up database (Windows)"
|
||||||
|
|
||||||
|
mkdir -p /Database
|
||||||
|
mount -t tmpfs tmpfs /Database
|
||||||
|
mkdir -p /tmp/db
|
||||||
|
/sbin/9pmount-vsock listen db /tmp/db
|
||||||
|
[ $? -ne 0 ] && rm -rf /Database && printf "Could not mount configuration database\n" 1>&2 && eend 1
|
||||||
|
cp -a /tmp/db/branch/master/ro/com.docker.driver.amd64-linux/* /Database
|
||||||
|
|
||||||
|
eend 0
|
||||||
|
}
|
@ -2,35 +2,10 @@
|
|||||||
|
|
||||||
if [ $# -ne 2 ]
|
if [ $# -ne 2 ]
|
||||||
then
|
then
|
||||||
printf "usage: $0 [get|exists|path|dir|find] key\n"
|
printf "usage: $0 [get|set|wait|exists|path|dir|find] key\n"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $1 == "set" ]
|
|
||||||
then
|
|
||||||
printf "Configuration is immutable\n" 1>&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d /Database ]
|
|
||||||
then
|
|
||||||
mkdir -p /Database
|
|
||||||
case "$(mobyplatform)" in
|
|
||||||
windows)
|
|
||||||
mkdir -p /tmp/db
|
|
||||||
/sbin/9pmount-vsock listen db /tmp/db
|
|
||||||
[ $? -ne 0 ] && rm -rf /Database && printf "Could not mount configuration database\n" 1>&2 && exit 1
|
|
||||||
mount --bind /tmp/db/branch/master/ro/com.docker.driver.amd64-linux /Database
|
|
||||||
;;
|
|
||||||
mac)
|
|
||||||
mkdir -p /tmp/db
|
|
||||||
mount -t 9p -o trans=virtio,dfltuid=1001,dfltgid=50,version=9p2000 db /tmp/db
|
|
||||||
[ $? -ne 0 ] && rm -rf /Database && printf "Could not mount configuration database\n" 1>&2 && exit 1
|
|
||||||
mount --bind /tmp/db/branch/master/ro/com.docker.driver.amd64-linux /Database
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
BASE=/Database
|
BASE=/Database
|
||||||
|
|
||||||
KEY=$(echo $2 | sed 's@^/@@')
|
KEY=$(echo $2 | sed 's@^/@@')
|
||||||
@ -61,6 +36,22 @@ then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ $1 == "set" ]
|
||||||
|
then
|
||||||
|
mkdir -p $(dirname "${BASE}/${KEY}")
|
||||||
|
cat - > ${BASE}/${KEY}
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $1 == "wait" ]
|
||||||
|
then
|
||||||
|
while [ ! -s ${BASE}/${KEY} ]
|
||||||
|
do
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
if [ $1 == "path" ]
|
if [ $1 == "path" ]
|
||||||
then
|
then
|
||||||
if [ -e ${BASE}/${KEY} ]
|
if [ -e ${BASE}/${KEY} ]
|
||||||
@ -85,5 +76,5 @@ then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
printf "usage: $0 [get|exists|path|dir|find] key\n"
|
printf "usage: $0 [get|set|wait|exists|path|dir|find] key\n"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -4,6 +4,7 @@ description="VPN proxy"
|
|||||||
|
|
||||||
depend()
|
depend()
|
||||||
{
|
{
|
||||||
|
need database-windows
|
||||||
before net
|
before net
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
description="Configuring Windows network settings from database."
|
description="Configuring Windows network settings from database."
|
||||||
|
|
||||||
depend() {
|
depend() {
|
||||||
|
need database-windows
|
||||||
before sysctl net
|
before sysctl net
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user