diff --git a/devstack/plugin.sh b/devstack/plugin.sh index d55a2adbf..41261bf3b 100644 --- a/devstack/plugin.sh +++ b/devstack/plugin.sh @@ -254,21 +254,29 @@ function extract_hyperkube { local tmp_hyperkube_path tmp_hyperkube_path="/tmp/hyperkube" + tmp_loopback_cni_path="/tmp/loopback" hyperkube_container="$(docker ps -aq \ -f ancestor="${KURYR_HYPERKUBE_IMAGE}:${KURYR_HYPERKUBE_VERSION}" | \ head -1)" - docker cp "$hyperkube_container:/hyperkube" /tmp/hyperkube - sudo install -o "$STACK_USER" -m 0555 "$tmp_hyperkube_path" \ + docker cp "${hyperkube_container}:/hyperkube" "$tmp_hyperkube_path" + docker cp "${hyperkube_container}:/opt/cni/bin/loopback" \ + "$tmp_loopback_cni_path" + sudo install -o "$STACK_USER" -m 0555 -D "$tmp_hyperkube_path" \ "$KURYR_HYPERKUBE_BINARY" + sudo install -o "$STACK_USER" -m 0555 -D "$tmp_loopback_cni_path" \ + "${CNI_BIN_DIR}/loopback" } function prepare_kubelet { local kubelet_plugin_dir - kubelet_plugin_dir="/usr/libexec/kubernetes/kubelet-plugins/net/exec" + kubelet_plugin_dir="/etc/cni/net.d/" sudo install -o "$STACK_USER" -m 0664 -D \ - "${KURYR_HOME}${kubelet_plugin_dir}/kuryr.conf" \ - "${kubelet_plugin_dir}/kuryr.conf" + "${KURYR_HOME}${kubelet_plugin_dir}/10-kuryr.conf" \ + "${CNI_CONF_DIR}/10-kuryr.conf" + sudo install -o "$STACK_USER" -m 0664 -D \ + "${KURYR_HOME}${kubelet_plugin_dir}/99-loopback.conf" \ + "${CNI_CONF_DIR}/99-loopback.conf" } function run_k8s_kubelet { @@ -289,6 +297,8 @@ function run_k8s_kubelet { --address='0.0.0.0' \ --enable-server \ --network-plugin=cni \ + --cni-bin-dir=$CNI_BIN_DIR \ + --cni-conf-dir=$CNI_CONF_DIR \ --cert-dir=$DATA_DIR/kubelet.cert \ --root-dir=$DATA_DIR/kubelet" wait_for "Kubernetes API Server" "$KURYR_K8S_API_URL" diff --git a/devstack/settings b/devstack/settings index 58bacd0ea..3531ee83e 100644 --- a/devstack/settings +++ b/devstack/settings @@ -1,4 +1,6 @@ KURYR_HOME=${KURYR_HOME:-$DEST/kuryr-kubernetes} +CNI_BIN_DIR=${CNI_BIN_DIR:-$DEST/cni/bin} +CNI_CONF_DIR=${CNI_CONF_DIR:-$DEST/cni/conf} KURYR_CONFIG_DIR=${KURYR_CONFIG_DIR:-/etc/kuryr} KURYR_CONFIG=${KURYR_CONFIG:-${KURYR_CONFIG_DIR}/kuryr.conf} diff --git a/usr/libexec/kubernetes/kubelet-plugins/net/exec/kuryr.conf b/etc/cni/net.d/10-kuryr.conf similarity index 62% rename from usr/libexec/kubernetes/kubelet-plugins/net/exec/kuryr.conf rename to etc/cni/net.d/10-kuryr.conf index a86a92735..db00dba93 100644 --- a/usr/libexec/kubernetes/kubelet-plugins/net/exec/kuryr.conf +++ b/etc/cni/net.d/10-kuryr.conf @@ -1,4 +1,5 @@ { + "cniVersion": "0.3.0", "name": "kuryr", "type": "kuryr" } diff --git a/etc/cni/net.d/99-loopback.conf b/etc/cni/net.d/99-loopback.conf new file mode 100644 index 000000000..c4cd168d7 --- /dev/null +++ b/etc/cni/net.d/99-loopback.conf @@ -0,0 +1,4 @@ +{ + "cniVersion": "0.3.0", + "type": "loopback" +}