Background
When performing the provisioning steps during a Konvoy installation, it is possible that the specific package version requested for a component specified in the cluster.yaml file will not be available.
An example failure message would be:
/usr/bin/apt-get -y -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" install 'containerd.io=1.3.7'' failed: E: Version '1.3.7' for 'containerd.io' was not found
This can happen if the version of the package available in the Linux distribution you are using is different from what is specified.
In the example above, which was an installation on Ubuntu, we can see that Konvoy is looking for version 1.3.7 of containerd.io, but it was not available.
In Ubuntu, searching for the package via `apt-cache search ` and listing the available versions via `apt-cache policy
ubuntu@ubuntu:~$ apt-cache search containerd.io containerd.io - An open and reliable container runtimeubuntu@ubuntu:~$ apt-cache policy containerd.io containerd.io: Installed: (none) Candidate: 1.3.9-1 Version table: 1.3.9-1 500 500 https://packages.d2iq.com/konvoy/stable/linux/ubuntu/bionic bionic/main amd64 Packages 1.3.7-1 500 500 https://packages.d2iq.com/konvoy/stable/linux/ubuntu/bionic bionic/main amd64 Packages 1.3.4-1 500 500 https://packages.d2iq.com/konvoy/stable/linux/ubuntu/bionic bionic/main amd64 Packages 1.2.14-1 500 500 https://packages.d2iq.com/konvoy/stable/linux/ubuntu/bionic bionic/main amd64 Packages
Using this output, we can see that the version of containerd.io available on Ubuntu is named 1.3.7-1
Solution
Given that the correct package name is known, editing the `cluster.yaml` file and correcting the value accordingly should resolve the issue. I.e. in the cluster.yaml file, change the following section:
containerRuntime: containerd: version: 1.3.7
To:
containerRuntime: containerd: version: 1.3.7-1