]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
lxc-oci: add DHCP option leveraging dhclient hooks 2013/head
authorJonathan Calmels <jcalmels@nvidia.com>
Mon, 11 Dec 2017 21:53:15 +0000 (13:53 -0800)
committerJonathan Calmels <jcalmels@nvidia.com>
Tue, 19 Dec 2017 23:18:28 +0000 (15:18 -0800)
Signed-off-by: Jonathan Calmels <jcalmels@nvidia.com>
templates/lxc-oci.in

index cac818186e6f135cd03e5bf2fcd7ef91b91f3169..daa4241f4af8ddd43059534852594737de00dd20 100755 (executable)
@@ -36,6 +36,7 @@ done
 
 LOCALSTATEDIR="@LOCALSTATEDIR@"
 LXC_TEMPLATE_CONFIG="@LXCTEMPLATECONFIG@"
+LXC_HOOK_DIR="@LXCHOOKDIR@"
 
 # Some useful functions
 cleanup() {
@@ -180,7 +181,7 @@ EOF
     return 0
 }
 
-options=$(getopt -o u:h -l help,url:,username:,password:,no-cache,\
+options=$(getopt -o u:h -l help,url:,username:,password:,no-cache,dhcp,\
 name:,path:,rootfs:,mapped-uid:,mapped-gid: -- "$@")
 
 if [ $? -ne 0 ]; then
@@ -193,6 +194,7 @@ OCI_URL=""
 OCI_USERNAME=
 OCI_PASSWORD=
 OCI_USE_CACHE="true"
+OCI_USE_DHCP="false"
 
 LXC_MAPPED_GID=
 LXC_MAPPED_UID=
@@ -207,6 +209,7 @@ while :; do
         --username)         OCI_USERNAME=$2; shift 2;;
         --password)         OCI_PASSWORD=$2; shift 2;;
         --no-cache)         OCI_USE_CACHE="false"; shift 1;;
+        --dhcp)             OCI_USE_DHCP="true"; shift 1;;
         --name)             LXC_NAME=$2; shift 2;;
         --path)             LXC_PATH=$2; shift 2;;
         --rootfs)           LXC_ROOTFS=$2; shift 2;;
@@ -317,6 +320,11 @@ if [ -e "${LXC_TEMPLATE_CONFIG}/oci.common.conf" ]; then
     echo "lxc.include = ${LXC_TEMPLATE_CONFIG}/oci.common.conf" >> "${LXC_CONF_FILE}"
 fi
 
+if [ "${OCI_USE_DHCP}" = "true" ]; then
+    echo "lxc.hook.start-host = ${LXC_HOOK_DIR}/dhclient" >> "${LXC_CONF_FILE}"
+    echo "lxc.hook.stop = ${LXC_HOOK_DIR}/dhclient" >> "${LXC_CONF_FILE}"
+fi
+
 echo "lxc.uts.name = ${LXC_NAME}" >> "${LXC_CONF_FILE}"
 # set the hostname
 cat <<EOF > ${LXC_ROOTFS}/etc/hostname