From 7f52a0f3052dde1be9979522fef26fa10db540a4 Mon Sep 17 00:00:00 2001 From: Nino Kodabande Date: Tue, 8 Mar 2022 15:07:51 -0800 Subject: [PATCH 1/7] WIP - adds cri-dockerd initd service Signed-off-by: Nino Kodabande --- src/assets/scripts/cri-dockerd.initd | 22 ++++++++++++++++++++++ src/assets/scripts/service-k3s.initd | 3 +++ 2 files changed, 25 insertions(+) create mode 100644 src/assets/scripts/cri-dockerd.initd diff --git a/src/assets/scripts/cri-dockerd.initd b/src/assets/scripts/cri-dockerd.initd new file mode 100644 index 00000000000..d052cdfc332 --- /dev/null +++ b/src/assets/scripts/cri-dockerd.initd @@ -0,0 +1,22 @@ +#!/sbin/openrc-run + +# This script is used to manage cri-dockerd via OpenRC. + +# shellcheck shell=ksh + +name="Cri-Dockerd" +description="Rancher Desktop Shim for Docker Engine" + + +supervisor=supervise-daemon +command=/usr/bin/cri-dockerd" +# "%t" Runtime directory root This is either /run/ (for the system manager) or the path "$XDG_RUNTIME_DIR" resolves to (for user managers). +command_args="--container-runtime-endpoint %t/cri-dockerd.sock --network-plugin=" + +CRI_DOCKERD_LOGFILE="${CRI_DOCKERD_LOGFILE:-${LOG_DIR:-/var/log}/${RC_SVCNAME}.log}" +output_log="'${CRI_DOCKERD_LOGFILE}'" +error_log="'${CRI_DOCKERD_LOGFILE}'" + +depend() { + need docker +} diff --git a/src/assets/scripts/service-k3s.initd b/src/assets/scripts/service-k3s.initd index f803a3d2dcd..19eb9eb84bb 100644 --- a/src/assets/scripts/service-k3s.initd +++ b/src/assets/scripts/service-k3s.initd @@ -25,6 +25,9 @@ ENGINE="${ENGINE:-containerd}" depend() { after network-online want cgroups + if [ "${ENGINE}" == "moby" ]; then + after cri-dockerd + fi } start_pre() { From 66a44178a60d083919371aa70e08b9dcb728043e Mon Sep 17 00:00:00 2001 From: Nino Kodabande Date: Thu, 10 Mar 2022 12:48:59 -0800 Subject: [PATCH 2/7] add cri-dockerd init.d in wsl and lima Signed-off-by: Nino Kodabande --- src/assets/scripts/cri-dockerd.initd | 5 ++--- src/assets/scripts/service-k3s.initd | 6 +++--- src/k8s-engine/lima.ts | 6 ++++++ src/k8s-engine/wsl.ts | 6 ++++++ 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/assets/scripts/cri-dockerd.initd b/src/assets/scripts/cri-dockerd.initd index d052cdfc332..7accc453d76 100644 --- a/src/assets/scripts/cri-dockerd.initd +++ b/src/assets/scripts/cri-dockerd.initd @@ -4,14 +4,13 @@ # shellcheck shell=ksh -name="Cri-Dockerd" +name="cri-dockerd" description="Rancher Desktop Shim for Docker Engine" supervisor=supervise-daemon command=/usr/bin/cri-dockerd" -# "%t" Runtime directory root This is either /run/ (for the system manager) or the path "$XDG_RUNTIME_DIR" resolves to (for user managers). -command_args="--container-runtime-endpoint %t/cri-dockerd.sock --network-plugin=" +command_args="--container-runtime-endpoint /run/cri-dockerd.sock --network-plugin=" CRI_DOCKERD_LOGFILE="${CRI_DOCKERD_LOGFILE:-${LOG_DIR:-/var/log}/${RC_SVCNAME}.log}" output_log="'${CRI_DOCKERD_LOGFILE}'" diff --git a/src/assets/scripts/service-k3s.initd b/src/assets/scripts/service-k3s.initd index 19eb9eb84bb..86d3e497c43 100644 --- a/src/assets/scripts/service-k3s.initd +++ b/src/assets/scripts/service-k3s.initd @@ -23,11 +23,11 @@ fi ENGINE="${ENGINE:-containerd}" depend() { - after network-online - want cgroups if [ "${ENGINE}" == "moby" ]; then - after cri-dockerd + need cri-dockerd fi + after network-online + want cgroups } start_pre() { diff --git a/src/k8s-engine/lima.ts b/src/k8s-engine/lima.ts index 2b425b08672..a0eb58d9fd9 100644 --- a/src/k8s-engine/lima.ts +++ b/src/k8s-engine/lima.ts @@ -30,6 +30,7 @@ import DEFAULT_CONFIG from '@/assets/lima-config.yaml'; import NETWORKS_CONFIG from '@/assets/networks-config.yaml'; import FLANNEL_CONFLIST from '@/assets/scripts/10-flannel.conflist'; import CONTAINERD_CONFIG from '@/assets/scripts/k3s-containerd-config.toml'; +import SERVICE_CRI_DOCKERD_SCRIPT from '@/assets/scripts/service-cri-dockerd.initd'; import INSTALL_K3S_SCRIPT from '@/assets/scripts/install-k3s'; import SERVICE_K3S_SCRIPT from '@/assets/scripts/service-k3s.initd'; import LOGROTATE_K3S_SCRIPT from '@/assets/scripts/logrotate-k3s'; @@ -1214,6 +1215,11 @@ export default class LimaBackend extends events.EventEmitter implements K8s.Kube if (!this.cfg?.options.traefik) { config.ADDITIONAL_ARGS += ' --disable traefik'; } + await this.writeFile('/etc/init.d/cri-dockerd', SERVICE_CRI_DOCKERD_SCRIPT, 0o755); + await this.writeConf('cri-dockerd', { + LOG_DIR: paths.logs, + ENGINE: this.#currentContainerEngine, + }); await this.writeFile('/etc/init.d/k3s', SERVICE_K3S_SCRIPT, 0o755); await this.writeConf('k3s', config); await this.writeFile('/etc/logrotate.d/k3s', LOGROTATE_K3S_SCRIPT); diff --git a/src/k8s-engine/wsl.ts b/src/k8s-engine/wsl.ts index 4717c0c024a..d726fe26623 100644 --- a/src/k8s-engine/wsl.ts +++ b/src/k8s-engine/wsl.ts @@ -17,6 +17,7 @@ import ProgressTracker from './progressTracker'; import FLANNEL_CONFLIST from '@/assets/scripts/10-flannel.conflist'; import CONTAINERD_CONFIG from '@/assets/scripts/k3s-containerd-config.toml'; import INSTALL_K3S_SCRIPT from '@/assets/scripts/install-k3s'; +import SERVICE_SCRIPT_CRI_DOCKERD from '@/assets/scripts/service-cri-dockerd.initd'; import SERVICE_SCRIPT_K3S from '@/assets/scripts/service-k3s.initd'; import SERVICE_SCRIPT_DOCKERD from '@/assets/scripts/service-wsl-dockerd.initd'; import LOGROTATE_K3S_SCRIPT from '@/assets/scripts/logrotate-k3s'; @@ -1212,6 +1213,11 @@ export default class WSLBackend extends events.EventEmitter implements K8s.Kuber const rotateConf = LOGROTATE_K3S_SCRIPT.replace(/\r/g, '') .replace('/var/log', logPath); + await this.writeFile('/etc/init.d/cri-dockerd', SERVICE_SCRIPT_CRI_DOCKERD, { permissions: 0o755 }); + await this.writeConf('cri-dockerd', { + ENGINE: this.#currentContainerEngine, + LOG_DIR: logPath, + }); await this.writeFile('/etc/init.d/k3s', SERVICE_SCRIPT_K3S, { permissions: 0o755 }); await this.writeFile('/etc/logrotate.d/k3s', rotateConf); await this.execCommand('mkdir', '-p', '/etc/cni/net.d'); From e67718e415cb4b6178dcf8f629c7614e6a0435de Mon Sep 17 00:00:00 2001 From: Nino Kodabande Date: Thu, 10 Mar 2022 13:26:57 -0800 Subject: [PATCH 3/7] bump wsl and lima release version Signed-off-by: Nino Kodabande --- scripts/download/lima.mjs | 2 +- scripts/download/wsl.mjs | 2 +- src/k8s-engine/lima.ts | 2 +- src/k8s-engine/wsl.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/download/lima.mjs b/scripts/download/lima.mjs index 5b1f9a1a45a..ac1903c563d 100644 --- a/scripts/download/lima.mjs +++ b/scripts/download/lima.mjs @@ -10,7 +10,7 @@ const limaRepo = 'https://github.com/rancher-sandbox/lima-and-qemu'; const limaTag = 'v1.21'; const alpineLimaRepo = 'https://github.com/lima-vm/alpine-lima'; -const alpineLimaTag = 'v0.2.8'; +const alpineLimaTag = 'v0.2.9'; const alpineLimaEdition = 'rd'; const alpineLimaVersion = '3.14.3'; diff --git a/scripts/download/wsl.mjs b/scripts/download/wsl.mjs index f1a0ebc7462..fff89e4d1be 100644 --- a/scripts/download/wsl.mjs +++ b/scripts/download/wsl.mjs @@ -8,7 +8,7 @@ import path from 'path'; import { download } from '../lib/download.mjs'; export default async function main() { - const v = '0.19'; + const v = '0.20'; await download( `https://github.com/rancher-sandbox/rancher-desktop-wsl-distro/releases/download/v${ v }/distro-${ v }.tar`, diff --git a/src/k8s-engine/lima.ts b/src/k8s-engine/lima.ts index a0eb58d9fd9..bfdaa2a24fa 100644 --- a/src/k8s-engine/lima.ts +++ b/src/k8s-engine/lima.ts @@ -154,7 +154,7 @@ interface SPNetworkDataType { const console = Logging.lima; const DEFAULT_DOCKER_SOCK_LOCATION = '/var/run/docker.sock'; const MACHINE_NAME = '0'; -const IMAGE_VERSION = '0.2.8'; +const IMAGE_VERSION = '0.2.9'; const ALPINE_EDITION = 'rd'; const ALPINE_VERSION = '3.14.3'; diff --git a/src/k8s-engine/wsl.ts b/src/k8s-engine/wsl.ts index d726fe26623..ef58b143185 100644 --- a/src/k8s-engine/wsl.ts +++ b/src/k8s-engine/wsl.ts @@ -64,7 +64,7 @@ const DISTRO_BLACKLIST = [ ]; /** The version of the WSL distro we expect. */ -const DISTRO_VERSION = '0.19'; +const DISTRO_VERSION = '0.20'; /** * The list of directories that are in the data distribution (persisted across From 391a15aba2fde4c67c13f9ce78c6479a5944f2ba Mon Sep 17 00:00:00 2001 From: Nino Kodabande Date: Thu, 10 Mar 2022 13:32:37 -0800 Subject: [PATCH 4/7] bad syntax fix Signed-off-by: Nino Kodabande --- src/assets/scripts/cri-dockerd.initd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/scripts/cri-dockerd.initd b/src/assets/scripts/cri-dockerd.initd index 7accc453d76..263cc2ddd4e 100644 --- a/src/assets/scripts/cri-dockerd.initd +++ b/src/assets/scripts/cri-dockerd.initd @@ -9,7 +9,7 @@ description="Rancher Desktop Shim for Docker Engine" supervisor=supervise-daemon -command=/usr/bin/cri-dockerd" +command=/usr/bin/cri-dockerd command_args="--container-runtime-endpoint /run/cri-dockerd.sock --network-plugin=" CRI_DOCKERD_LOGFILE="${CRI_DOCKERD_LOGFILE:-${LOG_DIR:-/var/log}/${RC_SVCNAME}.log}" From f820c5f4fd03b3231b67802e8f5c390deaef437f Mon Sep 17 00:00:00 2001 From: Nino Kodabande Date: Thu, 10 Mar 2022 14:20:01 -0800 Subject: [PATCH 5/7] fix the file name Signed-off-by: Nino Kodabande --- .../scripts/{cri-dockerd.initd => service-cri-dockerd.initd} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/assets/scripts/{cri-dockerd.initd => service-cri-dockerd.initd} (100%) diff --git a/src/assets/scripts/cri-dockerd.initd b/src/assets/scripts/service-cri-dockerd.initd similarity index 100% rename from src/assets/scripts/cri-dockerd.initd rename to src/assets/scripts/service-cri-dockerd.initd From 4db992a767e525fe95649895ef4254afdc59486d Mon Sep 17 00:00:00 2001 From: Nino Kodabande Date: Fri, 11 Mar 2022 10:22:58 -0800 Subject: [PATCH 6/7] remove --docker and enable cri-dockerd for all k3s versions Signed-off-by: Nino Kodabande --- src/assets/scripts/service-k3s.initd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/scripts/service-k3s.initd b/src/assets/scripts/service-k3s.initd index 86d3e497c43..6b319857eb8 100644 --- a/src/assets/scripts/service-k3s.initd +++ b/src/assets/scripts/service-k3s.initd @@ -49,7 +49,7 @@ name=k3s command=/usr/local/bin/k3s command_args="server --https-listen-port ${PORT} ${ADDITIONAL_ARGS:-}" if [ "${ENGINE}" == "moby" ]; then - command_args="${command_args} --docker" + command_args="${command_args} --container-runtime-endpoint /run/cri-dockerd.sock" elif [ "${ENGINE}" == "containerd" ]; then command_args="${command_args} --container-runtime-endpoint /run/k3s/containerd/containerd.sock" fi From 1baee05a344cfb3d66509acf1a5be09d434c8e90 Mon Sep 17 00:00:00 2001 From: Nino Kodabande Date: Fri, 11 Mar 2022 15:50:27 -0800 Subject: [PATCH 7/7] Fix container endpoint URI Signed-off-by: Nino Kodabande --- src/assets/scripts/service-cri-dockerd.initd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/assets/scripts/service-cri-dockerd.initd b/src/assets/scripts/service-cri-dockerd.initd index 263cc2ddd4e..380b619c675 100644 --- a/src/assets/scripts/service-cri-dockerd.initd +++ b/src/assets/scripts/service-cri-dockerd.initd @@ -9,8 +9,8 @@ description="Rancher Desktop Shim for Docker Engine" supervisor=supervise-daemon -command=/usr/bin/cri-dockerd -command_args="--container-runtime-endpoint /run/cri-dockerd.sock --network-plugin=" +command=/usr/local/bin/cri-dockerd +command_args="--container-runtime-endpoint unix:///run/cri-dockerd.sock" CRI_DOCKERD_LOGFILE="${CRI_DOCKERD_LOGFILE:-${LOG_DIR:-/var/log}/${RC_SVCNAME}.log}" output_log="'${CRI_DOCKERD_LOGFILE}'"