diff --git a/README.md b/README.md
index eae399a011a96aebd5d263595895c080471631ab..25439957c425c4fcee7a0b50a067b6d5547a8109 100644
--- a/README.md
+++ b/README.md
@@ -120,7 +120,7 @@ Note: Upstart/SysV init based OS types are not supported.
   - [etcd](https://github.com/coreos/etcd) v3.4.3
   - [docker](https://www.docker.com/) v19.03 (see note)
   - [containerd](https://containerd.io/) v1.3.7
-  - [cri-o](http://cri-o.io/) v1.17 (experimental: see [CRI-O Note](docs/cri-o.md). Only on fedora, ubuntu and centos based OS)
+  - [cri-o](http://cri-o.io/) v1.19 (experimental: see [CRI-O Note](docs/cri-o.md). Only on fedora, ubuntu and centos based OS)
 - Network Plugin
   - [cni-plugins](https://github.com/containernetworking/plugins) v0.8.7
   - [calico](https://github.com/projectcalico/calico) v3.16.2
diff --git a/docs/cri-o.md b/docs/cri-o.md
index 4ee245010816ed6a2c50861545dafe30ff4713ed..a5e4504888f2ca1126be96ca9bd5053577815f07 100644
--- a/docs/cri-o.md
+++ b/docs/cri-o.md
@@ -4,10 +4,9 @@
 Kubespray supports basic functionality for using CRI-O as the default container runtime in a cluster.
 
 * Kubernetes supports CRI-O on v1.11.1 or later.
-* Helm and other tools may not function as normal due to dependency on Docker.
 * `scale.yml` and `upgrade-cluster.yml` are not supported on clusters using CRI-O.
 
-_To use CRI-O instead of Docker, set the following variables:_
+_To use the CRI-O container runtime set the following variables:_
 
 ## all.yml
 
diff --git a/roles/container-engine/cri-o/defaults/main.yml b/roles/container-engine/cri-o/defaults/main.yml
index ce1bdd29bac2bd837744415e10311ce73b9ff3cd..b76bf27ea0b440c620c83d1a013a94e24e171016 100644
--- a/roles/container-engine/cri-o/defaults/main.yml
+++ b/roles/container-engine/cri-o/defaults/main.yml
@@ -24,8 +24,8 @@ crio_stream_port: "10010"
 crio_required_version: "{{ kube_version | regex_replace('^v(?P<major>\\d+).(?P<minor>\\d+).(?P<patch>\\d+)$', '\\g<major>.\\g<minor>') }}"
 
 crio_kubernetes_version_matrix:
+  "1.19": "1.19"
   "1.18": "1.18"
   "1.17": "1.17"
-  "1.16": "1.16"
 
-crio_version: "{{ crio_kubernetes_version_matrix[crio_required_version] | default('1.17') }}"
+crio_version: "{{ crio_kubernetes_version_matrix[crio_required_version] | default('1.19') }}"
diff --git a/roles/container-engine/cri-o/tasks/crio_repo.yml b/roles/container-engine/cri-o/tasks/crio_repo.yml
index b5cbd5b88aa5fcd2708a629277e09ca166e7fae4..76d60f3d0f91fbc9b115d70d289179f9df5471ee 100644
--- a/roles/container-engine/cri-o/tasks/crio_repo.yml
+++ b/roles/container-engine/cri-o/tasks/crio_repo.yml
@@ -5,7 +5,7 @@
     crio_kubic_debian_repo_name: "{{ ((ansible_distribution == 'Ubuntu') | ternary('x','')) ~ ansible_distribution ~ '_' ~ ansible_distribution_version }}"
   when: ansible_os_family == "Debian"
 
-- name: Add CRI-O kubic repo key
+- name: Add CRI-O kubic apt repo key
   apt_key:
     url: "https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/{{ crio_kubic_debian_repo_name }}/Release.key"
     state: present
@@ -15,14 +15,21 @@
   retries: 4
   delay: "{{ retry_stagger | d(3) }}"
 
-- name: Add CRI-O kubic repo
+- name: Add CRI-O kubic apt repo
   apt_repository:
     repo: "deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/{{ crio_kubic_debian_repo_name }}/ /"
     state: present
-    filename: devel:kubic:libcontainers:stable
+    filename: devel-kubic-libcontainers-stable
   when: crio_kubic_debian_repo_name is defined
 
-- name: Add CRI-O kubic repo
+- name: Add CRI-O kubic cri-o apt repo
+  apt_repository:
+    repo: "deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/{{ crio_version }}/{{ crio_kubic_debian_repo_name }}/ /"
+    state: present
+    filename: devel-kubic-libcontainers-stable-cri-o
+  when: crio_kubic_debian_repo_name is defined
+
+- name: Add CRI-O kubic yum repo
   yum_repository:
     name: devel_kubic_libcontainers_stable
     description: Stable Releases of Upstream github.com/containers packages (CentOS_$releasever)
@@ -31,7 +38,7 @@
     gpgkey: http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/CentOS_$releasever/repodata/repomd.xml.key
   when: ansible_distribution in ["CentOS"]
 
-- name: Add CRI-O kubic repo
+- name: Add CRI-O kubic yum repo
   yum_repository:
     name: "devel_kubic_libcontainers_stable_cri-o_{{ crio_version }}"
     description: "CRI-O {{ crio_version }} (CentOS_$releasever)"
diff --git a/roles/container-engine/cri-o/vars/debian.yml b/roles/container-engine/cri-o/vars/debian.yml
index 62c966a113819b45a5e9a04952390cf9bfc74fb9..0ba558e02ddceaca019d03f8c9c3e2459bdf3d42 100644
--- a/roles/container-engine/cri-o/vars/debian.yml
+++ b/roles/container-engine/cri-o/vars/debian.yml
@@ -1,7 +1,7 @@
 ---
 
 crio_packages:
-  - "cri-o-{{ crio_version }}"
-  - runc
+  - "cri-o"
+  - "cri-o-runc"
 
 crio_runc_path: /usr/sbin/runc
diff --git a/roles/container-engine/cri-o/vars/fedora.yml b/roles/container-engine/cri-o/vars/fedora.yml
index e8efe8ac86d27f1b36114becebabda4842336b6b..fab1a5e9cbd7cdb6c09e4c4bddd714d04c1785fd 100644
--- a/roles/container-engine/cri-o/vars/fedora.yml
+++ b/roles/container-engine/cri-o/vars/fedora.yml
@@ -4,3 +4,10 @@ crio_packages:
   - cri-tools
 
 crio_conmon: /usr/libexec/crio/conmon
+
+# TODO: remove crio_kubernetes_version_matrix and crio_version once Fedora supports 1.19
+crio_kubernetes_version_matrix:
+  "1.18": "1.18"
+  "1.17": "1.17"
+
+crio_version: "{{ crio_kubernetes_version_matrix[crio_required_version] | default('1.17') }}"
diff --git a/roles/container-engine/cri-o/vars/ubuntu.yml b/roles/container-engine/cri-o/vars/ubuntu.yml
index 5495f193a6bb4ccb63ef82776eb68015953fecb6..0ba558e02ddceaca019d03f8c9c3e2459bdf3d42 100644
--- a/roles/container-engine/cri-o/vars/ubuntu.yml
+++ b/roles/container-engine/cri-o/vars/ubuntu.yml
@@ -1,11 +1,7 @@
 ---
 
 crio_packages:
-  - "cri-o-{{ crio_version }}"
+  - "cri-o"
+  - "cri-o-runc"
 
 crio_runc_path: /usr/sbin/runc
-
-crio_kubernetes_version_matrix:
-  "1.18": "1.17"
-  "1.17": "1.17"
-  "1.16": "1.16"