diff --git a/devstack/lib/crio b/devstack/lib/crio index 21c59f9..b734864 100644 --- a/devstack/lib/crio +++ b/devstack/lib/crio @@ -40,14 +40,22 @@ function install_crio { local lsb_dist=${os_VENDOR,,} local dist_version=${os_CODENAME} - local arch - arch=$(dpkg --print-architecture) + local kubic_obs_project_key="2472d6d0d2f66af87aba8da34d64390375060aa4" + local os="x${os_VENDOR}_${os_RELEASE}" if is_ubuntu; then - apt_get install apt-transport-https ca-certificates software-properties-common - sudo add-apt-repository -y ppa:projectatomic/ppa + apt_get install apt-transport-https ca-certificates \ + software-properties-common + sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 \ + --recv ${kubic_obs_project_key} + sudo apt-add-repository "deb https://download.opensuse.org/"` + `"repositories/devel:/kubic:/libcontainers:/stable/${os}/ /" + sudo apt-add-repository "deb http://download.opensuse.org/"` + `"repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/"` + `"${CRIO_VERSION}/${os}/ /" + # Installing podman and containerd will get us compatible versions of # cri-o and runc. And we need podman to manage container images anyway. - apt_get install podman buildah + apt_get install podman buildah cri-o-runc cri-o elif is_fedora; then if [[ "$lsb_dist" = "centos" ]]; then sudo yum-config-manager \ @@ -75,16 +83,6 @@ function configure_crio { iniset -sudo ${crio_conf} crio.runtime log_level \"info\" fi if is_ubuntu; then - # In Ubuntu's a special vendored version of runc is installed with - # cri-o. This means that it'll not work with the system's version of - # runc. Moreover vendored runc is not placed into /usr/bin, where - # crio.conf states that it will be. We fix that by linking the vendored - # binary to /usr/bin. - if [[ ! -e /usr/bin/runc ]]; then - sudo ln -s /usr/lib/cri-o-runc/sbin/runc /usr/bin/runc - sudo chmod +x /usr/bin/runc - fi - # At least for 18.04 we need to set up /etc/containers/registries.conf # with some initial content. That's another bug with that PPA. local registries_conf diff --git a/devstack/settings b/devstack/settings index a104f7a..1bfce03 100644 --- a/devstack/settings +++ b/devstack/settings @@ -9,6 +9,7 @@ ENABLE_LIVE_RESTORE=${ENABLE_LIVE_RESTORE:-false} ENABLE_IPV6=${ENABLE_IPV6:-false} K8S_NETWORK_ADDON=${K8S_NETWORK_ADDON:-flannel} ENABLE_CONTAINERD_CRI=${ENABLE_CONTAINERD_CRI:-false} +CRIO_VERSION=${CRIO_VERSION:-"1.18:/1.18.0"} # Enable container services enable_service container