Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

kata-manager: Add support for nerdctl installation #8958

Merged

Conversation

fidencio
Copy link
Member

As already done for docker, let's also add support for installing nerdctl + kata containers.

For now, at least for now, we are explicitly not allowing the combination of installing both docker and nerdctl in the same installation in order to reduce the script complexity.

Also, nerdctl installation, for now, is limited to x86_64 and aarch64 as those are the only architectures that nerdctl releases a "full" package for.

Fixes: #8358

@katacontainersbot katacontainersbot added the size/medium Average sized task label Jan 30, 2024
@fidencio fidencio force-pushed the topic/kata-manager-nerdctl-support branch from 2655648 to 63e3a8f Compare January 30, 2024 11:53
@fidencio
Copy link
Member Author

How this was tested:

ubuntu@nerdctl:~$ history
    1  history
ubuntu@nerdctl:~$ git clone --branch topic/kata-manager-nerdctl-support https://github.com/fidencio/kata-containers
Cloning into 'kata-containers'...
remote: Enumerating objects: 157552, done.
remote: Counting objects: 100% (232/232), done.
remote: Compressing objects: 100% (153/153), done.
remote: Total 157552 (delta 131), reused 156 (delta 79), pack-reused 157320
Receiving objects: 100% (157552/157552), 157.44 MiB | 17.87 MiB/s, done.
Resolving deltas: 100% (89530/89530), done.
ubuntu@nerdctl:~$ cd kata-containers/utils/
ubuntu@nerdctl:~/kata-containers/utils$ ./kata-manager.sh -N
INFO: Containerd will be installed during the nerdctl installation ('-c' option ignored)
INFO: Checking dependencies
INFO: Installing packages 'jq'
Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease                             
Get:3 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [2679 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:5 http://security.ubuntu.com/ubuntu focal-security/main Translation-en [410 kB]
Get:6 http://security.ubuntu.com/ubuntu focal-security/main amd64 c-n-f Metadata [13.2 kB]    
Get:7 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [2508 kB]        
Get:8 http://security.ubuntu.com/ubuntu focal-security/restricted Translation-en [349 kB]         
Get:9 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 c-n-f Metadata [552 B]  
Get:10 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [934 kB]
Get:11 http://security.ubuntu.com/ubuntu focal-security/universe Translation-en [197 kB]  
Get:12 http://security.ubuntu.com/ubuntu focal-security/universe amd64 c-n-f Metadata [19.2 kB]  
Get:13 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [23.9 kB]        
Get:14 http://security.ubuntu.com/ubuntu focal-security/multiverse Translation-en [5796 B]  
Get:15 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 c-n-f Metadata [548 B]        
Get:16 http://archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]                           
Get:17 http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages [8628 kB]
Get:18 http://archive.ubuntu.com/ubuntu focal/universe Translation-en [5124 kB]
Get:19 http://archive.ubuntu.com/ubuntu focal/universe amd64 c-n-f Metadata [265 kB]
Get:20 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages [144 kB]
Get:21 http://archive.ubuntu.com/ubuntu focal/multiverse Translation-en [104 kB]
Get:22 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 c-n-f Metadata [9136 B]
Get:23 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [3058 kB]
Get:24 http://archive.ubuntu.com/ubuntu focal-updates/main Translation-en [493 kB]
Get:25 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 c-n-f Metadata [17.2 kB]
Get:26 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [2619 kB]
Get:27 http://archive.ubuntu.com/ubuntu focal-updates/restricted Translation-en [365 kB]                                               
Get:28 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 c-n-f Metadata [552 B]                                          
Get:29 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [1159 kB]                                                
Get:30 http://archive.ubuntu.com/ubuntu focal-updates/universe Translation-en [278 kB]                                                 
Get:31 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 c-n-f Metadata [25.7 kB]                                          
Get:32 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages [26.1 kB]                                              
Get:33 http://archive.ubuntu.com/ubuntu focal-updates/multiverse Translation-en [7768 B]                                               
Get:34 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 c-n-f Metadata [620 B]                                          
Get:35 http://archive.ubuntu.com/ubuntu focal-backports/main amd64 Packages [45.7 kB]                                                  
Get:36 http://archive.ubuntu.com/ubuntu focal-backports/main Translation-en [16.3 kB]                                                  
Get:37 http://archive.ubuntu.com/ubuntu focal-backports/main amd64 c-n-f Metadata [1420 B]                                             
Get:38 http://archive.ubuntu.com/ubuntu focal-backports/restricted amd64 c-n-f Metadata [116 B]                                        
Get:39 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [25.0 kB]                                              
Get:40 http://archive.ubuntu.com/ubuntu focal-backports/universe Translation-en [16.3 kB]                                              
Get:41 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 c-n-f Metadata [880 B]                                          
Get:42 http://archive.ubuntu.com/ubuntu focal-backports/multiverse amd64 c-n-f Metadata [116 B]                                        
Fetched 29.9 MB in 7s (4190 kB/s)                                                                                                      
Reading package lists... Done
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libjq1 libonig5
The following NEW packages will be installed:
  jq libjq1 libonig5
0 upgraded, 3 newly installed, 0 to remove and 104 not upgraded.
Need to get 313 kB of archives.
After this operation, 1062 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu focal/universe amd64 libonig5 amd64 6.9.4-1 [142 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 libjq1 amd64 1.6-1ubuntu0.20.04.1 [121 kB]
Get:3 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 jq amd64 1.6-1ubuntu0.20.04.1 [50.2 kB]
Fetched 313 kB in 1s (419 kB/s)
Selecting previously unselected package libonig5:amd64.
(Reading database ... 64013 files and directories currently installed.)
Preparing to unpack .../libonig5_6.9.4-1_amd64.deb ...
Unpacking libonig5:amd64 (6.9.4-1) ...
Selecting previously unselected package libjq1:amd64.
Preparing to unpack .../libjq1_1.6-1ubuntu0.20.04.1_amd64.deb ...
Unpacking libjq1:amd64 (1.6-1ubuntu0.20.04.1) ...
Selecting previously unselected package jq.
Preparing to unpack .../jq_1.6-1ubuntu0.20.04.1_amd64.deb ...
Unpacking jq (1.6-1ubuntu0.20.04.1) ...
Setting up libonig5:amd64 (6.9.4-1) ...
Setting up libjq1:amd64 (1.6-1ubuntu0.20.04.1) ...
Setting up jq (1.6-1ubuntu0.20.04.1) ...
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for libc-bin (2.31-0ubuntu9.9) ...
INFO: Running pre-checks
INFO: Downloading Kata Containers release (latest version)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  387M  100  387M    0     0  15.3M      0  0:00:25  0:00:25 --:--:-- 30.7M
INFO: Installing Kata Containers release 3.2.0 from /tmp/tmp.hBFoxFz1V0/kata-static-3.2.0-amd64.tar.xz
./
./opt/
./opt/kata/
./opt/kata/bin/
./opt/kata/bin/kata-monitor
./opt/kata/bin/kata-agent-ctl
./opt/kata/bin/runk
./opt/kata/bin/firecracker
./opt/kata/bin/kata-runtime
./opt/kata/bin/qemu-system-x86_64
./opt/kata/bin/kata-collect-data.sh
./opt/kata/bin/jailer
./opt/kata/bin/log-parser
./opt/kata/bin/qemu-system-x86_64-snp-experimental
./opt/kata/bin/cloud-hypervisor
./opt/kata/bin/containerd-shim-kata-v2
./opt/kata/bin/kata-ctl
./opt/kata/bin/qemu-system-x86_64-tdx-experimental
./opt/kata/bin/kata-trace-forwarder
./opt/kata/libexec/
./opt/kata/libexec/nydusd
./opt/kata/libexec/virtiofsd
./opt/kata/versions.yaml
./opt/kata/share/
./opt/kata/share/kata-qemu/
./opt/kata/share/kata-qemu/qemu/
./opt/kata/share/kata-qemu/qemu/vof.bin
./opt/kata/share/kata-qemu/qemu/edk2-arm-vars.fd
./opt/kata/share/kata-qemu/qemu/s390-netboot.img
./opt/kata/share/kata-qemu/qemu/bios-256k.bin
./opt/kata/share/kata-qemu/qemu/bios.bin
./opt/kata/share/kata-qemu/qemu/s390-ccw.img
./opt/kata/share/kata-qemu/qemu/efi-virtio.rom
./opt/kata/share/kata-qemu/qemu/firmware/
./opt/kata/share/kata-qemu/qemu/firmware/60-edk2-i386.json
./opt/kata/share/kata-qemu/qemu/firmware/60-edk2-x86_64.json
./opt/kata/share/kata-qemu/qemu/firmware/60-edk2-arm.json
./opt/kata/share/kata-qemu/qemu/firmware/60-edk2-aarch64.json
./opt/kata/share/kata-qemu/qemu/firmware/50-edk2-x86_64-secure.json
./opt/kata/share/kata-qemu/qemu/firmware/50-edk2-i386-secure.json
./opt/kata/share/kata-qemu/qemu/edk2-x86_64-code.fd
./opt/kata/share/kata-qemu/qemu/edk2-licenses.txt
./opt/kata/share/kata-qemu/qemu/edk2-i386-vars.fd
./opt/kata/share/kata-qemu/qemu/bios-microvm.bin
./opt/kata/share/kata-qemu/qemu/edk2-aarch64-code.fd
./opt/kata/share/kata-qemu/qemu/pvh.bin
./opt/kata/share/kata-qemu/qemu/edk2-i386-secure-code.fd
./opt/kata/share/kata-qemu/qemu/vof-nvram.bin
./opt/kata/share/kata-qemu/qemu/kvmvapic.bin
./opt/kata/share/kata-qemu/qemu/qboot.rom
./opt/kata/share/kata-qemu/qemu/edk2-i386-code.fd
./opt/kata/share/kata-qemu/qemu/linuxboot_dma.bin
./opt/kata/share/kata-qemu/qemu/edk2-x86_64-secure-code.fd
./opt/kata/share/kata-qemu/qemu/hppa-firmware.img
./opt/kata/share/kata-qemu/qemu/linuxboot.bin
./opt/kata/share/kata-qemu/qemu/multiboot_dma.bin
./opt/kata/share/kata-qemu/qemu/qemu-nsis.bmp
./opt/kata/share/kata-qemu/qemu/edk2-arm-code.fd
./opt/kata/share/kata-qemu-snp-experimental/
./opt/kata/share/kata-qemu-snp-experimental/qemu/
./opt/kata/share/kata-qemu-snp-experimental/qemu/edk2-arm-vars.fd
./opt/kata/share/kata-qemu-snp-experimental/qemu/s390-netboot.img
./opt/kata/share/kata-qemu-snp-experimental/qemu/bios-256k.bin
./opt/kata/share/kata-qemu-snp-experimental/qemu/bios.bin
./opt/kata/share/kata-qemu-snp-experimental/qemu/s390-ccw.img
./opt/kata/share/kata-qemu-snp-experimental/qemu/efi-virtio.rom
./opt/kata/share/kata-qemu-snp-experimental/qemu/firmware/
./opt/kata/share/kata-qemu-snp-experimental/qemu/firmware/60-edk2-i386.json
./opt/kata/share/kata-qemu-snp-experimental/qemu/firmware/60-edk2-x86_64.json
./opt/kata/share/kata-qemu-snp-experimental/qemu/firmware/60-edk2-arm.json
./opt/kata/share/kata-qemu-snp-experimental/qemu/firmware/60-edk2-aarch64.json
./opt/kata/share/kata-qemu-snp-experimental/qemu/firmware/50-edk2-x86_64-secure.json
./opt/kata/share/kata-qemu-snp-experimental/qemu/firmware/50-edk2-i386-secure.json
./opt/kata/share/kata-qemu-snp-experimental/qemu/edk2-x86_64-code.fd
./opt/kata/share/kata-qemu-snp-experimental/qemu/edk2-licenses.txt
./opt/kata/share/kata-qemu-snp-experimental/qemu/edk2-i386-vars.fd
./opt/kata/share/kata-qemu-snp-experimental/qemu/bios-microvm.bin
./opt/kata/share/kata-qemu-snp-experimental/qemu/edk2-aarch64-code.fd
./opt/kata/share/kata-qemu-snp-experimental/qemu/pvh.bin
./opt/kata/share/kata-qemu-snp-experimental/qemu/edk2-i386-secure-code.fd
./opt/kata/share/kata-qemu-snp-experimental/qemu/kvmvapic.bin
./opt/kata/share/kata-qemu-snp-experimental/qemu/qboot.rom
./opt/kata/share/kata-qemu-snp-experimental/qemu/edk2-i386-code.fd
./opt/kata/share/kata-qemu-snp-experimental/qemu/linuxboot_dma.bin
./opt/kata/share/kata-qemu-snp-experimental/qemu/edk2-x86_64-secure-code.fd
./opt/kata/share/kata-qemu-snp-experimental/qemu/hppa-firmware.img
./opt/kata/share/kata-qemu-snp-experimental/qemu/linuxboot.bin
./opt/kata/share/kata-qemu-snp-experimental/qemu/qemu-nsis.bmp
./opt/kata/share/kata-qemu-snp-experimental/qemu/edk2-arm-code.fd
./opt/kata/share/bash-completion/
./opt/kata/share/bash-completion/completions/
./opt/kata/share/bash-completion/completions/kata-runtime
./opt/kata/share/kata-qemu-tdx-experimental/
./opt/kata/share/kata-qemu-tdx-experimental/qemu/
./opt/kata/share/kata-qemu-tdx-experimental/qemu/vof.bin
./opt/kata/share/kata-qemu-tdx-experimental/qemu/edk2-arm-vars.fd
./opt/kata/share/kata-qemu-tdx-experimental/qemu/s390-netboot.img
./opt/kata/share/kata-qemu-tdx-experimental/qemu/bios-256k.bin
./opt/kata/share/kata-qemu-tdx-experimental/qemu/bios.bin
./opt/kata/share/kata-qemu-tdx-experimental/qemu/s390-ccw.img
./opt/kata/share/kata-qemu-tdx-experimental/qemu/efi-virtio.rom
./opt/kata/share/kata-qemu-tdx-experimental/qemu/firmware/
./opt/kata/share/kata-qemu-tdx-experimental/qemu/firmware/60-edk2-i386.json
./opt/kata/share/kata-qemu-tdx-experimental/qemu/firmware/60-edk2-x86_64.json
./opt/kata/share/kata-qemu-tdx-experimental/qemu/firmware/60-edk2-arm.json
./opt/kata/share/kata-qemu-tdx-experimental/qemu/firmware/60-edk2-aarch64.json
./opt/kata/share/kata-qemu-tdx-experimental/qemu/firmware/50-edk2-x86_64-secure.json
./opt/kata/share/kata-qemu-tdx-experimental/qemu/firmware/50-edk2-i386-secure.json
./opt/kata/share/kata-qemu-tdx-experimental/qemu/edk2-x86_64-code.fd
./opt/kata/share/kata-qemu-tdx-experimental/qemu/edk2-licenses.txt
./opt/kata/share/kata-qemu-tdx-experimental/qemu/edk2-i386-vars.fd
./opt/kata/share/kata-qemu-tdx-experimental/qemu/bios-microvm.bin
./opt/kata/share/kata-qemu-tdx-experimental/qemu/edk2-aarch64-code.fd
./opt/kata/share/kata-qemu-tdx-experimental/qemu/pvh.bin
./opt/kata/share/kata-qemu-tdx-experimental/qemu/edk2-i386-secure-code.fd
./opt/kata/share/kata-qemu-tdx-experimental/qemu/vof-nvram.bin
./opt/kata/share/kata-qemu-tdx-experimental/qemu/kvmvapic.bin
./opt/kata/share/kata-qemu-tdx-experimental/qemu/qboot.rom
./opt/kata/share/kata-qemu-tdx-experimental/qemu/edk2-i386-code.fd
./opt/kata/share/kata-qemu-tdx-experimental/qemu/linuxboot_dma.bin
./opt/kata/share/kata-qemu-tdx-experimental/qemu/edk2-x86_64-secure-code.fd
./opt/kata/share/kata-qemu-tdx-experimental/qemu/hppa-firmware.img
./opt/kata/share/kata-qemu-tdx-experimental/qemu/linuxboot.bin
./opt/kata/share/kata-qemu-tdx-experimental/qemu/multiboot_dma.bin
./opt/kata/share/kata-qemu-tdx-experimental/qemu/qemu-nsis.bmp
./opt/kata/share/kata-qemu-tdx-experimental/qemu/edk2-arm-code.fd
./opt/kata/share/defaults/
./opt/kata/share/defaults/kata-containers/
./opt/kata/share/defaults/kata-containers/configuration-qemu-snp.toml
./opt/kata/share/defaults/kata-containers/configuration-qemu-nvidia-gpu.toml
./opt/kata/share/defaults/kata-containers/configuration-acrn.toml
./opt/kata/share/defaults/kata-containers/configuration-qemu-tdx.toml
./opt/kata/share/defaults/kata-containers/configuration.toml
./opt/kata/share/defaults/kata-containers/configuration-qemu-sev.toml
./opt/kata/share/defaults/kata-containers/configuration-qemu.toml
./opt/kata/share/defaults/kata-containers/configuration-fc.toml
./opt/kata/share/defaults/kata-containers/configuration-dragonball.toml
./opt/kata/share/defaults/kata-containers/configuration-clh.toml
./opt/kata/share/ovmf/
./opt/kata/share/ovmf/AMDSEV.fd
./opt/kata/share/ovmf/OVMF.fd
./opt/kata/share/kata-containers/
./opt/kata/share/kata-containers/vmlinux-dragonball-experimental.container
./opt/kata/share/kata-containers/kata-cbl-mariner-2.0-mariner.initrd
./opt/kata/share/kata-containers/vmlinuz-6.1.38-114
./opt/kata/share/kata-containers/config-6.1.38-114
./opt/kata/share/kata-containers/kata-containers-initrd.img
./opt/kata/share/kata-containers/kata-ubuntu-latest-tdx.image
./opt/kata/share/kata-containers/vmlinux-5.10.25-114-dragonball-experimental
./opt/kata/share/kata-containers/config-6.2-TDX-v1.8-114-nvidia-gpu-tdx
./opt/kata/share/kata-containers/vmlinux-nvidia-gpu.container
./opt/kata/share/kata-containers/vmlinux-6.2-TDX-v1.8-114-nvidia-gpu-tdx
./opt/kata/share/kata-containers/kata-ubuntu-20.04-sev.initrd
./opt/kata/share/kata-containers/kata-containers.img
./opt/kata/share/kata-containers/config-5.19.2-114-nvidia-gpu-sev
./opt/kata/share/kata-containers/vmlinux-nvidia-gpu-sev.container
./opt/kata/share/kata-containers/kata-containers-initrd-mariner.img
./opt/kata/share/kata-containers/config-5.19.2-114-sev
./opt/kata/share/kata-containers/vmlinuz-dragonball-experimental.container
./opt/kata/share/kata-containers/vmlinux-6.1.38-114-nvidia-gpu
./opt/kata/share/kata-containers/vmlinuz-nvidia-gpu-tdx.container
./opt/kata/share/kata-containers/vmlinuz-5.19.2-114-sev
./opt/kata/share/kata-containers/vmlinux-6.2-TDX-v1.8-114-tdx
./opt/kata/share/kata-containers/kata-alpine-3.15.initrd
./opt/kata/share/kata-containers/kata-containers-tdx.img
./opt/kata/share/kata-containers/vmlinux-6.1.38-114
./opt/kata/share/kata-containers/vmlinux-sev.container
./opt/kata/share/kata-containers/vmlinuz-nvidia-gpu.container
./opt/kata/share/kata-containers/config-5.10.25-114-dragonball-experimental
./opt/kata/share/kata-containers/config-6.2-TDX-v1.8-114-tdx
./opt/kata/share/kata-containers/vmlinuz-nvidia-gpu-sev.container
./opt/kata/share/kata-containers/vmlinux-nvidia-gpu-tdx.container
./opt/kata/share/kata-containers/vmlinuz-5.10.25-114-dragonball-experimental
./opt/kata/share/kata-containers/kata-containers-initrd-sev.img
./opt/kata/share/kata-containers/vmlinuz-tdx.container
./opt/kata/share/kata-containers/vmlinuz-sev.container
./opt/kata/share/kata-containers/vmlinux-tdx.container
./opt/kata/share/kata-containers/config-6.1.38-114-nvidia-gpu
./opt/kata/share/kata-containers/vmlinux-5.19.2-114-nvidia-gpu-sev
./opt/kata/share/kata-containers/vmlinuz-6.2-TDX-v1.8-114-nvidia-gpu-tdx
./opt/kata/share/kata-containers/vmlinuz-5.19.2-114-nvidia-gpu-sev
./opt/kata/share/kata-containers/vmlinuz-6.1.38-114-nvidia-gpu
./opt/kata/share/kata-containers/vmlinux.container
./opt/kata/share/kata-containers/vmlinuz.container
./opt/kata/share/kata-containers/vmlinux-5.19.2-114-sev
./opt/kata/share/kata-containers/kata-ubuntu-latest.image
./opt/kata/share/kata-containers/vmlinuz-6.2-TDX-v1.8-114-tdx
./opt/kata/share/tdvf/
./opt/kata/share/tdvf/OVMF_CODE.fd
./opt/kata/share/tdvf/OVMF_VARS.fd
./opt/kata/share/tdvf/OVMF.fd
./opt/kata/VERSION
./opt/kata/runtime-rs/
./opt/kata/runtime-rs/bin/
./opt/kata/runtime-rs/bin/containerd-shim-kata-v2
INFO: Kata Containers installed

INFO: Using default Kata Containers configuration
kata-runtime  : 3.2.0
   commit   : 45687e3251604ccc71b595d37f14253c4584cd5f
   OCI specs: 1.0.2-dev
INFO: Downloading nerdctl lataest release
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100  224M  100  224M    0     0  18.7M      0  0:00:12  0:00:12 --:--:-- 13.1M
INFO: Installing nerdctl release v1.7.2 from /tmp/tmp.hBFoxFz1V0/nerdctl-full-1.7.2-linux-amd64.tar.gz
bin/
bin/buildctl
bin/buildg
bin/buildkitd
bin/bypass4netns
bin/bypass4netnsd
bin/containerd
bin/containerd-fuse-overlayfs-grpc
bin/containerd-rootless-setuptool.sh
bin/containerd-rootless.sh
bin/containerd-shim-runc-v2
bin/containerd-stargz-grpc
bin/ctd-decoder
bin/ctr
bin/ctr-enc
bin/ctr-remote
bin/fuse-overlayfs
bin/ipfs
bin/nerdctl
bin/rootlessctl
bin/rootlesskit
bin/runc
bin/slirp4netns
bin/tini
lib/
lib/systemd/
lib/systemd/system/
lib/systemd/system/buildkit.service
lib/systemd/system/containerd.service
lib/systemd/system/stargz-snapshotter.service
libexec/
libexec/cni/
libexec/cni/bandwidth
libexec/cni/bridge
libexec/cni/dhcp
libexec/cni/dummy
libexec/cni/firewall
libexec/cni/host-device
libexec/cni/host-local
libexec/cni/ipvlan
libexec/cni/loopback
libexec/cni/macvlan
libexec/cni/portmap
libexec/cni/ptp
libexec/cni/sbr
libexec/cni/static
libexec/cni/tap
libexec/cni/tuning
libexec/cni/vlan
libexec/cni/vrf
share/
share/doc/
share/doc/nerdctl/
share/doc/nerdctl/README.md
share/doc/nerdctl/docs/
share/doc/nerdctl/docs/build.md
share/doc/nerdctl/docs/builder-debug.md
share/doc/nerdctl/docs/cni.md
share/doc/nerdctl/docs/command-reference.md
share/doc/nerdctl/docs/compose.md
share/doc/nerdctl/docs/config.md
share/doc/nerdctl/docs/cosign.md
share/doc/nerdctl/docs/cvmfs.md
share/doc/nerdctl/docs/dir.md
share/doc/nerdctl/docs/experimental.md
share/doc/nerdctl/docs/faq.md
share/doc/nerdctl/docs/freebsd.md
share/doc/nerdctl/docs/gpu.md
share/doc/nerdctl/docs/ipfs.md
share/doc/nerdctl/docs/multi-platform.md
share/doc/nerdctl/docs/notation.md
share/doc/nerdctl/docs/nydus.md
share/doc/nerdctl/docs/ocicrypt.md
share/doc/nerdctl/docs/overlaybd.md
share/doc/nerdctl/docs/registry.md
share/doc/nerdctl/docs/rootless.md
share/doc/nerdctl/docs/soci.md
share/doc/nerdctl/docs/stargz.md
share/doc/nerdctl-full/
share/doc/nerdctl-full/README.md
share/doc/nerdctl-full/SHA256SUMS
INFO: nerdctl installed

INFO: Configuring containerd
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1251  100  1251    0     0   6950      0 --:--:-- --:--:-- --:--:--  6950
# 2024-01-30T11:55:22+00:00: Service installed for Kata Containers
INFO: Installed /etc/systemd/system/containerd.service
INFO: Created /etc/containerd/config.toml
INFO: Backed up containerd config file '/etc/containerd/config.toml' to '/etc/containerd/config.toml-pre-kata-2024-01-30'
# 2024-01-30T11:55:22+00:00: Added by kata-manager.sh
[plugins]
  [plugins."io.containerd.grpc.v1.cri"]
    [plugins."io.containerd.grpc.v1.cri".containerd]
      default_runtime_name = "kata"
      [plugins."io.containerd.grpc.v1.cri".containerd.runtimes]
        [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.kata]
          runtime_type = "io.containerd.kata.v2"
  privileged_without_host_devices = true
  [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.kata.options]
    ConfigPath = "/opt/kata/share/defaults/kata-containers/configuration.toml"
        [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.kata-clh]
          runtime_type = "io.containerd.kata-clh.v2"
  privileged_without_host_devices = true
  [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.kata-clh.options]
    ConfigPath = "/opt/kata/share/defaults/kata-containers/configuration-clh.toml"
INFO: Modified containerd config file '/etc/containerd/config.toml'
Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service → /etc/systemd/system/containerd.service.
INFO: Configured containerd (debug disabled)

containerd github.com/containerd/containerd v1.7.11 64b8a811b07ba6288238eefc14d898ee0b5b99ba
nerdctl version 1.7.2
INFO: Testing Kata Containers

WARN[0000] Not running network checks as super user      arch=amd64 name=kata-runtime pid=2595 source=runtime
INFO[0000] CPU property found                            arch=amd64 description="Intel Architecture CPU" name=GenuineIntel pid=2595 source=runtime type=attribute
INFO[0000] CPU property found                            arch=amd64 description=SSE4.1 name=sse4_1 pid=2595 source=runtime type=flag
INFO[0000] CPU property found                            arch=amd64 description="Virtualization support" name=vmx pid=2595 source=runtime type=flag
INFO[0000] CPU property found                            arch=amd64 description="64Bit CPU" name=lm pid=2595 source=runtime type=flag
INFO[0000] kernel property found                         arch=amd64 description="Kernel-based Virtual Machine" name=kvm pid=2595 source=runtime type=module
INFO[0000] kernel property found                         arch=amd64 description="Host kernel accelerator for virtio" name=vhost pid=2595 source=runtime type=module
INFO[0000] kernel property found                         arch=amd64 description="Host kernel accelerator for virtio network" name=vhost_net pid=2595 source=runtime type=module
INFO[0000] kernel property found                         arch=amd64 description="Host Support for Linux VM Sockets" name=vhost_vsock pid=2595 source=runtime type=module
INFO[0000] kernel property found                         arch=amd64 description="Intel KVM" name=kvm_intel pid=2595 source=runtime type=module
System is capable of running Kata Containers
INFO[0000] device available                              arch=amd64 check-type=full device=/dev/kvm name=kata-runtime pid=2595 source=runtime
INFO[0000] feature available                             arch=amd64 check-type=full feature=create-vm name=kata-runtime pid=2595 source=runtime
System can currently create Kata Containers
docker.io/library/busybox:latest:                                                 resolved       |++++++++++++++++++++++++++++++++++++++| 
index-sha256:6d9ac9237a84afe1516540f40a0fafdc86859b2141954b4d643af7066d598b74:    done           |++++++++++++++++++++++++++++++++++++++| 
manifest-sha256:538721340ded10875f4710cad688c70e5d0ecb4dcd5e7d0c161f301f36f79414: done           |++++++++++++++++++++++++++++++++++++++| 
config-sha256:3f57d9401f8d42f986df300f0c69192fc41da28ccc8d797829467780db3dd741:   done           |++++++++++++++++++++++++++++++++++++++| 
layer-sha256:9ad63333ebc97e32b987ae66aa3cff81300e4c2e6d2f2395cef8a3ae18b249fe:    done           |++++++++++++++++++++++++++++++++++++++| 
elapsed: 3.2 s                                                                    total:  2.1 Mi (680.8 KiB/s)                                     
INFO: Running "sudo nerdctl run --runtime io.containerd.kata.v2 --rm docker.io/library/busybox:latest uname -r"
INFO: Test successful:

INFO:   Host kernel version      : 5.4.0-152-generic
INFO:   Container kernel version : 6.1.38

INFO: Kata Containers is now installed

WARNINGS:

- Use distro-packages where possible

  If your distribution packages Kata Containers, you should use these packages rather
  than running this script.

- Packages will **not** be automatically updated

  Since a package manager is not being used, it is **your** responsibility
  to ensure these packages are kept up-to-date when new versions are released
  to ensure you are using a version that includes the latest security and bug fixes.

- Potentially untested versions or version combinations

  This script installs the *newest* versions of Kata Containers
  and containerd from binary release packages. These versions may
  not have been tested with your distribution version.

ubuntu@nerdctl:~/kata-containers/utils$ history
    1  history
    2  git clone --branch topic/kata-manager-nerdctl-support https://github.com/fidencio/kata-containers
    3  cd kata-containers/utils/
    4  ./kata-manager.sh -N
    5  history

Copy link
Contributor

@jodh-intel jodh-intel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, @fidencio - A few comments.

utils/kata-manager.sh Outdated Show resolved Hide resolved
utils/kata-manager.sh Outdated Show resolved Hide resolved
utils/kata-manager.sh Outdated Show resolved Hide resolved
utils/kata-manager.sh Show resolved Hide resolved
utils/kata-manager.sh Show resolved Hide resolved
utils/kata-manager.sh Show resolved Hide resolved
As already done for docker, let's also add support for installing
nerdctl + kata containers.

For now, at least for now, we are explicitly not allowing the
combination of installing both docker and nerdctl in the same
installation in order to reduce the script complexity.

Also, nerdctl installation, for now, is limited to x86_64 and aarch64 as
those are the only architectures that nerdctl releases a "full" package
for.

Fixes: kata-containers#8358

Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com>
@fidencio fidencio force-pushed the topic/kata-manager-nerdctl-support branch from 63e3a8f to ed6816e Compare February 1, 2024 08:19
@fidencio
Copy link
Member Author

fidencio commented Feb 1, 2024

@jodh-intel, I think I was able to cover all your comments.

@katacontainersbot katacontainersbot added size/large Task of significant size and removed size/medium Average sized task labels Feb 1, 2024
Copy link
Contributor

@jodh-intel jodh-intel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @fidencio.

lgtm

@fidencio
Copy link
Member Author

fidencio commented Feb 5, 2024

/test

@fidencio
Copy link
Member Author

fidencio commented Feb 6, 2024

/test-arm

@fidencio fidencio merged commit 11ba90e into kata-containers:main Feb 6, 2024
293 of 306 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ok-to-test size/large Task of significant size
Projects
None yet
Development

Successfully merging this pull request may close these issues.

kata-manager | Add support for installing nerdctl
4 participants