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/assets/scripts/service-cri-dockerd.initd b/src/assets/scripts/service-cri-dockerd.initd new file mode 100644 index 00000000000..380b619c675 --- /dev/null +++ b/src/assets/scripts/service-cri-dockerd.initd @@ -0,0 +1,21 @@ +#!/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/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}'" +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..6b319857eb8 100644 --- a/src/assets/scripts/service-k3s.initd +++ b/src/assets/scripts/service-k3s.initd @@ -23,6 +23,9 @@ fi ENGINE="${ENGINE:-containerd}" depend() { + if [ "${ENGINE}" == "moby" ]; then + need cri-dockerd + fi after network-online want cgroups } @@ -46,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 diff --git a/src/k8s-engine/lima.ts b/src/k8s-engine/lima.ts index 2b425b08672..bfdaa2a24fa 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'; @@ -153,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'; @@ -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..ef58b143185 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'; @@ -63,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 @@ -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');