diff options
Diffstat (limited to 'tools/installers')
-rw-r--r-- | tools/installers/BUILD | 22 | ||||
-rwxr-xr-x | tools/installers/head.sh | 10 | ||||
-rwxr-xr-x | tools/installers/shim.sh | 25 |
3 files changed, 34 insertions, 23 deletions
diff --git a/tools/installers/BUILD b/tools/installers/BUILD index 017d8ca25..13d3cc5e0 100644 --- a/tools/installers/BUILD +++ b/tools/installers/BUILD @@ -5,19 +5,12 @@ package( licenses = ["notice"], ) -filegroup( - name = "runsc", - srcs = [ - "//runsc", - "//shim/v1:gvisor-containerd-shim", - "//shim/v2:containerd-shim-runsc-v1", - ], -) - sh_binary( name = "head", srcs = ["head.sh"], - data = [":runsc"], + data = [ + "//runsc", + ], ) sh_binary( @@ -37,3 +30,12 @@ sh_binary( name = "containerd", srcs = ["containerd.sh"], ) + +sh_binary( + name = "shim", + srcs = ["shim.sh"], + data = [ + "//shim/v1:gvisor-containerd-shim", + "//shim/v2:containerd-shim-runsc-v1", + ], +) diff --git a/tools/installers/head.sh b/tools/installers/head.sh index e6753f8a5..a613fcb5b 100755 --- a/tools/installers/head.sh +++ b/tools/installers/head.sh @@ -15,11 +15,11 @@ # limitations under the License. # Install our runtime. -$(find . -executable -type f -name runsc) install - -# Install all the shims. -find . -executable -type f -executable -name containerd-shim-runsc-v1 -exec cp {} /usr/bin \; -find . -executable -type f -executable -name gvisor-containerd-shim -exec cp {} /usr/bin \; +runfiles=. +if [[ -d "$0.runfiles" ]]; then + runfiles="$0.runfiles" +fi +$(find -L "${runfiles}" -executable -type f -name runsc) install # Restart docker. if service docker status 2>/dev/null; then diff --git a/tools/installers/shim.sh b/tools/installers/shim.sh index f7dd790a1..8153ce283 100755 --- a/tools/installers/shim.sh +++ b/tools/installers/shim.sh @@ -14,11 +14,20 @@ # See the License for the specific language governing permissions and # limitations under the License. -# Reinstall the latest containerd shim. -declare -r base="https://storage.googleapis.com/cri-containerd-staging/gvisor-containerd-shim" -declare -r latest=$(mktemp --tmpdir gvisor-containerd-shim-latest.XXXXXX) -declare -r shim_path=$(mktemp --tmpdir gvisor-containerd-shim.XXXXXX) -wget --no-verbose "${base}"/latest -O ${latest} -wget --no-verbose "${base}"/gvisor-containerd-shim-$(cat ${latest}) -O ${shim_path} -chmod +x ${shim_path} -mv ${shim_path} /usr/local/bin/gvisor-containerd-shim +# Install all the shims. +# +# Note that containerd looks at the current executable directory +# in order to find the shim binary. So we need to check in order +# of preference. The local containerd installer will install to +# /usr/local, so we use that first. +if [[ -x /usr/local/bin/containerd ]]; then + containerd_install_dir=/usr/local/bin +else + containerd_install_dir=/usr/bin +fi +runfiles=. +if [[ -d "$0.runfiles" ]]; then + runfiles="$0.runfiles" +fi +find -L "${runfiles}" -executable -type f -name containerd-shim-runsc-v1 -exec cp -L {} "${containerd_install_dir}" \; +find -L "${runfiles}" -executable -type f -name gvisor-containerd-shim -exec cp -L {} "${containerd_install_dir}" \; |