Skip to content

Commit f4b25f5

Browse files
Create install-cni-multitenancy-plugin.sh
1 parent 630a7ea commit f4b25f5

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
#!/usr/bin/env bash
2+
3+
# Installs azure-vnet CNI plugins on a Linux node.
4+
5+
# Arguments.
6+
PLUGIN_VERSION=$1
7+
CNI_VERSION=$2
8+
CNI_BIN_DIR=/opt/cni/bin
9+
CNI_NETCONF_DIR=/etc/cni/net.d
10+
11+
function usage
12+
{
13+
printf "Installs azure-vnet CNI plugins.\n"
14+
printf "Usage: install-cni-plugin version [cniVersion]\n"
15+
}
16+
17+
if [ "$PLUGIN_VERSION" = "" ]; then
18+
usage
19+
exit 1
20+
fi
21+
22+
if [ "$CNI_VERSION" = "" ]; then
23+
CNI_VERSION=v0.4.0
24+
fi
25+
26+
# Create CNI directories.
27+
printf "Creating CNI directories.\n"
28+
mkdir -p $CNI_BIN_DIR
29+
mkdir -p $CNI_NETCONF_DIR
30+
31+
# Install ebtables.
32+
if [ ! -e /sbin/ebtables ]
33+
then
34+
printf "Installing ebtables package..."
35+
apt-get update
36+
apt-get install -y ebtables
37+
printf "done.\n"
38+
else
39+
echo "Package ebtables is already installed."
40+
fi
41+
/sbin/ebtables --list > /dev/null
42+
43+
# Install azure-vnet CNI plugins.
44+
printf "Installing azure-vnet CNI plugin for multitenancy version $PLUGIN_VERSION to $CNI_BIN_DIR..."
45+
/usr/bin/curl -sSL https://github.com/Azure/azure-container-networking/releases/download/$PLUGIN_VERSION/azure-vnet-cni-multitenancy-linux-amd64-$PLUGIN_VERSION.tgz > $CNI_BIN_DIR/azure-vnet.tgz
46+
tar -xzf $CNI_BIN_DIR/azure-vnet.tgz -C $CNI_BIN_DIR
47+
printf "done.\n"
48+
49+
# Install azure-vnet CNI network configuration file.
50+
printf "Installing azure-vnet CNI network configuration file to $CNI_NETCONF_DIR..."
51+
mv $CNI_BIN_DIR/*.conflist $CNI_NETCONF_DIR
52+
printf "done.\n"
53+
54+
# Install loopback plugin.
55+
printf "Installing loopback CNI plugin version $CNI_VERSION to $CNI_BIN_DIR..."
56+
/usr/bin/curl -sSL https://github.com/containernetworking/cni/releases/download/$CNI_VERSION/cni-amd64-$CNI_VERSION.tgz > $CNI_BIN_DIR/cni.tgz
57+
tar -xzf $CNI_BIN_DIR/cni.tgz -C $CNI_BIN_DIR ./loopback
58+
printf "done.\n"
59+
60+
# Cleanup.
61+
rm $CNI_BIN_DIR/*.tgz
62+
chown root:root $CNI_BIN_DIR/*
63+
64+
printf "azure-vnet CNI plugin is successfully installed.\n"

0 commit comments

Comments
 (0)