summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValerii Ponomarov <vponomar@redhat.com>2019-03-01 20:14:03 +0530
committervponomar <vponomar@redhat.com>2019-03-18 10:46:37 +0000
commit46bf49b318a25f8edf2ad6e38aebc99871552b9b (patch)
tree32a772b36c5b9fbccc6a095e16c8ad01fb8561c2
parentd837d02b1be7030d81ebd7ee7d3f70c2145901b9 (diff)
[Deployment] Add CRI-O support
To enable or disable CRI-O just define following option: openshift_use_crio = true/false In the "ocp-on-vmware.ini" config file. Change-Id: Ibd3843d8aa13bfacb0d927142786dc5599e65315
-rwxr-xr-xdeployment/add-node.py13
-rw-r--r--deployment/ocp-on-vmware.ini5
-rwxr-xr-xdeployment/ocp-on-vmware.py12
-rw-r--r--deployment/playbooks/add-node.yaml45
-rw-r--r--deployment/playbooks/cns-node-setup.yaml45
-rw-r--r--deployment/playbooks/crs-node-setup.yaml45
-rw-r--r--deployment/playbooks/node-setup.yaml45
-rw-r--r--deployment/playbooks/ocp-install.yaml90
-rw-r--r--deployment/playbooks/roles/docker-storage-setup/tasks/main.yaml11
-rw-r--r--deployment/playbooks/roles/instance-groups/tasks/main.yaml27
-rw-r--r--deployment/playbooks/roles/vmware-guest-setup/tasks/main.yaml11
-rw-r--r--deployment/playbooks/vars/main.yaml55
12 files changed, 379 insertions, 25 deletions
diff --git a/deployment/add-node.py b/deployment/add-node.py
index 128e9ec8..8ce1a6c5 100755
--- a/deployment/add-node.py
+++ b/deployment/add-node.py
@@ -76,6 +76,7 @@ class VMWareAddNode(object):
cns_glusterfs_heketi_image = None
cns_glusterfs_heketi_version = None
disable_yum_update_and_reboot = None
+ openshift_use_crio = None
def __init__(self):
self.parse_cli_args()
@@ -218,6 +219,7 @@ class VMWareAddNode(object):
'openshift_disable_check': (
'docker_storage,docker_image_availability,disk_availability'),
'disable_yum_update_and_reboot': 'no',
+ 'openshift_use_crio': 'false',
}}
if six.PY3:
config = configparser.ConfigParser()
@@ -314,6 +316,8 @@ class VMWareAddNode(object):
self.node_type = config.get('vmware', 'node_type')
self.node_number = config.get('vmware', 'node_number')
self.tag = config.get('vmware', 'tag')
+ self.openshift_use_crio = (
+ config.get('vmware', 'openshift_use_crio') or '').strip()
err_count = 0
if 'storage' in self.node_type:
@@ -559,6 +563,15 @@ class VMWareAddNode(object):
if self.docker_image_tag:
playbook_vars_dict['openshift_image_tag'] = self.docker_image_tag
+ if self.openshift_use_crio:
+ playbook_vars_dict['openshift_use_crio'] = self.openshift_use_crio
+ playbook_vars_dict['openshift_use_crio_only'] = (
+ self.openshift_use_crio)
+ playbook_vars_dict['openshift_crio_enable_docker_gc'] = (
+ self.openshift_use_crio)
+ else:
+ playbook_vars_dict['openshift_use_crio'] = 'false'
+
if self.openshift_vers in ("v3_6", "v3_7", "v3_9"):
for key in ('image', 'version',
'block_image', 'block_version',
diff --git a/deployment/ocp-on-vmware.ini b/deployment/ocp-on-vmware.ini
index 3dcebac9..a72a6543 100644
--- a/deployment/ocp-on-vmware.ini
+++ b/deployment/ocp-on-vmware.ini
@@ -105,6 +105,11 @@ web_console_install=false
# OpenShift SDN (default value redhat/openshift-ovs-subnet)
openshift_sdn=redhat/openshift-ovs-subnet
+########################
+# CRI-O runtime support
+openshift_use_crio=false
+########################
+
# persistent container storage: none, crs, cns
container_storage=none
diff --git a/deployment/ocp-on-vmware.py b/deployment/ocp-on-vmware.py
index c8872659..a6089459 100755
--- a/deployment/ocp-on-vmware.py
+++ b/deployment/ocp-on-vmware.py
@@ -59,6 +59,7 @@ class OCPOnVMWare(object):
gluster_puddle_repo = None
web_console_install = None
disable_yum_update_and_reboot = None
+ openshift_use_crio = None
def __init__(self):
self._parse_cli_args()
@@ -149,6 +150,7 @@ class OCPOnVMWare(object):
'openshift_disable_check': (
'docker_storage,docker_image_availability,disk_availability'),
'disable_yum_update_and_reboot': 'no',
+ 'openshift_use_crio': 'false',
}}
if six.PY3:
config = configparser.ConfigParser()
@@ -225,6 +227,8 @@ class OCPOnVMWare(object):
'docker_storage,docker_image_availability,disk_availability')
self.disable_yum_update_and_reboot = config.get(
'vmware', 'disable_yum_update_and_reboot').strip() or 'no'
+ self.openshift_use_crio = (
+ config.get('vmware', 'openshift_use_crio') or '').strip()
err_count = 0
required_vars = {
@@ -437,6 +441,14 @@ class OCPOnVMWare(object):
if self.web_console_install:
playbook_vars_dict['openshift_web_console_install'] = (
self.web_console_install)
+ if self.openshift_use_crio:
+ playbook_vars_dict['openshift_use_crio'] = self.openshift_use_crio
+ playbook_vars_dict['openshift_use_crio_only'] = (
+ self.openshift_use_crio)
+ playbook_vars_dict['openshift_crio_enable_docker_gc'] = (
+ self.openshift_use_crio)
+ else:
+ playbook_vars_dict['openshift_use_crio'] = 'false'
if self.openshift_vers in ('v3_6', 'v3_7'):
playbook_vars_dict['docker_version'] = '1.12.6'
diff --git a/deployment/playbooks/add-node.yaml b/deployment/playbooks/add-node.yaml
index 8d99a5bd..2f51bd50 100644
--- a/deployment/playbooks/add-node.yaml
+++ b/deployment/playbooks/add-node.yaml
@@ -29,23 +29,68 @@
become: no
tasks:
- set_fact:
+ openshift_crio_docker_gc_node_selector:
+ runtime: crio
openshift_node_groups:
- name: node-config-master
labels:
- 'node-role.kubernetes.io/master=true'
- 'role=master'
edits: []
+ - name: node-config-master-crio
+ labels:
+ - 'node-role.kubernetes.io/master=true'
+ - 'role=master'
+ - 'runtime=cri-o'
+ edits:
+ - key: kubeletArguments.container-runtime
+ value: ["remote"]
+ - key: kubeletArguments.container-runtime-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.image-service-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.runtime-request-timeout
+ value: ["10m"]
- name: node-config-compute
labels:
- 'node-role.kubernetes.io/compute=true'
- 'node-role.kubernetes.io/infra=true'
- 'role=compute'
edits: []
+ - name: node-config-compute-crio
+ labels:
+ - 'node-role.kubernetes.io/compute=true'
+ - 'node-role.kubernetes.io/infra=true'
+ - 'role=compute'
+ - 'runtime=cri-o'
+ edits:
+ - key: kubeletArguments.container-runtime
+ value: ["remote"]
+ - key: kubeletArguments.container-runtime-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.image-service-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.runtime-request-timeout
+ value: ["10m"]
- name: node-config-storage
labels:
- 'node-role.kubernetes.io/storage=true'
- 'role=storage'
edits: []
+ - name: node-config-storage-crio
+ labels:
+ - 'node-role.kubernetes.io/storage=true'
+ - 'role=storage'
+ - 'runtime=cri-o'
+ edits:
+ - key: kubeletArguments.container-runtime
+ value: ["remote"]
+ - key: kubeletArguments.container-runtime-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.image-service-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.runtime-request-timeout
+ value: ["10m"]
- include: add-node-prerequisite.yaml
when: openshift_vers in ['v3_6', 'v3_7']
diff --git a/deployment/playbooks/cns-node-setup.yaml b/deployment/playbooks/cns-node-setup.yaml
index fb699625..59b33720 100644
--- a/deployment/playbooks/cns-node-setup.yaml
+++ b/deployment/playbooks/cns-node-setup.yaml
@@ -20,23 +20,68 @@
become: no
tasks:
- set_fact:
+ openshift_crio_docker_gc_node_selector:
+ runtime: crio
openshift_node_groups:
- name: node-config-master
labels:
- 'node-role.kubernetes.io/master=true'
- 'role=master'
edits: []
+ - name: node-config-master-crio
+ labels:
+ - 'node-role.kubernetes.io/master=true'
+ - 'role=master'
+ - 'runtime=cri-o'
+ edits:
+ - key: kubeletArguments.container-runtime
+ value: ["remote"]
+ - key: kubeletArguments.container-runtime-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.image-service-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.runtime-request-timeout
+ value: ["10m"]
- name: node-config-compute
labels:
- 'node-role.kubernetes.io/compute=true'
- 'node-role.kubernetes.io/infra=true'
- 'role=compute'
edits: []
+ - name: node-config-compute-crio
+ labels:
+ - 'node-role.kubernetes.io/compute=true'
+ - 'node-role.kubernetes.io/infra=true'
+ - 'role=compute'
+ - 'runtime=cri-o'
+ edits:
+ - key: kubeletArguments.container-runtime
+ value: ["remote"]
+ - key: kubeletArguments.container-runtime-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.image-service-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.runtime-request-timeout
+ value: ["10m"]
- name: node-config-storage
labels:
- 'node-role.kubernetes.io/storage=true'
- 'role=storage'
edits: []
+ - name: node-config-storage-crio
+ labels:
+ - 'node-role.kubernetes.io/storage=true'
+ - 'role=storage'
+ - 'runtime=cri-o'
+ edits:
+ - key: kubeletArguments.container-runtime
+ value: ["remote"]
+ - key: kubeletArguments.container-runtime-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.image-service-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.runtime-request-timeout
+ value: ["10m"]
- include: add-node-prerequisite.yaml
when: openshift_vers in ['v3_6', 'v3_7']
diff --git a/deployment/playbooks/crs-node-setup.yaml b/deployment/playbooks/crs-node-setup.yaml
index 8dc9eba1..21802a5a 100644
--- a/deployment/playbooks/crs-node-setup.yaml
+++ b/deployment/playbooks/crs-node-setup.yaml
@@ -18,23 +18,68 @@
become: no
tasks:
- set_fact:
+ openshift_crio_docker_gc_node_selector:
+ runtime: crio
openshift_node_groups:
- name: node-config-master
labels:
- 'node-role.kubernetes.io/master=true'
- 'role=master'
edits: []
+ - name: node-config-master-crio
+ labels:
+ - 'node-role.kubernetes.io/master=true'
+ - 'role=master'
+ - 'runtime=cri-o'
+ edits:
+ - key: kubeletArguments.container-runtime
+ value: ["remote"]
+ - key: kubeletArguments.container-runtime-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.image-service-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.runtime-request-timeout
+ value: ["10m"]
- name: node-config-compute
labels:
- 'node-role.kubernetes.io/compute=true'
- 'node-role.kubernetes.io/infra=true'
- 'role=compute'
edits: []
+ - name: node-config-compute-crio
+ labels:
+ - 'node-role.kubernetes.io/compute=true'
+ - 'node-role.kubernetes.io/infra=true'
+ - 'role=compute'
+ - 'runtime=cri-o'
+ edits:
+ - key: kubeletArguments.container-runtime
+ value: ["remote"]
+ - key: kubeletArguments.container-runtime-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.image-service-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.runtime-request-timeout
+ value: ["10m"]
- name: node-config-storage
labels:
- 'node-role.kubernetes.io/storage=true'
- 'role=storage'
edits: []
+ - name: node-config-storage-crio
+ labels:
+ - 'node-role.kubernetes.io/storage=true'
+ - 'role=storage'
+ - 'runtime=cri-o'
+ edits:
+ - key: kubeletArguments.container-runtime
+ value: ["remote"]
+ - key: kubeletArguments.container-runtime-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.image-service-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.runtime-request-timeout
+ value: ["10m"]
- hosts: crs
gather_facts: no
diff --git a/deployment/playbooks/node-setup.yaml b/deployment/playbooks/node-setup.yaml
index f2f531d3..c8e5916e 100644
--- a/deployment/playbooks/node-setup.yaml
+++ b/deployment/playbooks/node-setup.yaml
@@ -27,6 +27,8 @@
load_balancer_hostname: "{{ lb_host }}"
openshift_master_cluster_hostname: "{{ load_balancer_hostname }}"
openshift_master_cluster_public_hostname: "{{ load_balancer_hostname }}"
+ openshift_crio_docker_gc_node_selector:
+ runtime: crio
# 'openshift_node_groups' is required for OCP3.10
openshift_node_groups:
- name: node-config-master
@@ -34,14 +36,57 @@
- 'node-role.kubernetes.io/master=true'
- 'role=master'
edits: []
+ - name: node-config-master-crio
+ labels:
+ - 'node-role.kubernetes.io/master=true'
+ - 'role=master'
+ - 'runtime=cri-o'
+ edits:
+ - key: kubeletArguments.container-runtime
+ value: ["remote"]
+ - key: kubeletArguments.container-runtime-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.image-service-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.runtime-request-timeout
+ value: ["10m"]
- name: node-config-compute
labels:
- 'node-role.kubernetes.io/compute=true'
- 'node-role.kubernetes.io/infra=true'
- 'role=compute'
edits: []
+ - name: node-config-compute-crio
+ labels:
+ - 'node-role.kubernetes.io/compute=true'
+ - 'node-role.kubernetes.io/infra=true'
+ - 'role=compute'
+ - 'runtime=cri-o'
+ edits:
+ - key: kubeletArguments.container-runtime
+ value: ["remote"]
+ - key: kubeletArguments.container-runtime-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.image-service-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.runtime-request-timeout
+ value: ["10m"]
- name: node-config-storage
labels:
- 'node-role.kubernetes.io/storage=true'
- 'role=storage'
edits: []
+ - name: node-config-storage-crio
+ labels:
+ - 'node-role.kubernetes.io/storage=true'
+ - 'role=storage'
+ - 'runtime=cri-o'
+ edits:
+ - key: kubeletArguments.container-runtime
+ value: ["remote"]
+ - key: kubeletArguments.container-runtime-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.image-service-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.runtime-request-timeout
+ value: ["10m"]
diff --git a/deployment/playbooks/ocp-install.yaml b/deployment/playbooks/ocp-install.yaml
index d8a5109e..51e08721 100644
--- a/deployment/playbooks/ocp-install.yaml
+++ b/deployment/playbooks/ocp-install.yaml
@@ -14,6 +14,8 @@
'/usr/share/ansible/openshift-ansible/playbooks/prerequisites.yml'
) }}"
vars:
+ openshift_crio_docker_gc_node_selector:
+ runtime: crio
# 'openshift_node_groups' is required for OCP3.10
openshift_node_groups:
- name: node-config-master
@@ -21,17 +23,60 @@
- 'node-role.kubernetes.io/master=true'
- 'role=master'
edits: []
+ - name: node-config-master-crio
+ labels:
+ - 'node-role.kubernetes.io/master=true'
+ - 'role=master'
+ - 'runtime=cri-o'
+ edits:
+ - key: kubeletArguments.container-runtime
+ value: ["remote"]
+ - key: kubeletArguments.container-runtime-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.image-service-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.runtime-request-timeout
+ value: ["10m"]
- name: node-config-compute
labels:
- 'node-role.kubernetes.io/compute=true'
- 'node-role.kubernetes.io/infra=true'
- 'role=compute'
edits: []
+ - name: node-config-compute-crio
+ labels:
+ - 'node-role.kubernetes.io/compute=true'
+ - 'node-role.kubernetes.io/infra=true'
+ - 'role=compute'
+ - 'runtime=cri-o'
+ edits:
+ - key: kubeletArguments.container-runtime
+ value: ["remote"]
+ - key: kubeletArguments.container-runtime-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.image-service-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.runtime-request-timeout
+ value: ["10m"]
- name: node-config-storage
labels:
- 'node-role.kubernetes.io/storage=true'
- 'role=storage'
edits: []
+ - name: node-config-storage-crio
+ labels:
+ - 'node-role.kubernetes.io/storage=true'
+ - 'role=storage'
+ - 'runtime=cri-o'
+ edits:
+ - key: kubeletArguments.container-runtime
+ value: ["remote"]
+ - key: kubeletArguments.container-runtime-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.image-service-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.runtime-request-timeout
+ value: ["10m"]
- name: call openshift includes for installer
include: "{{
@@ -104,6 +149,8 @@
kind: 'AllowAllPasswordIdentityProvider'
login: True
challenge: True
+ openshift_crio_docker_gc_node_selector:
+ runtime: crio
# 'openshift_node_groups' is required for OCP3.10
openshift_node_groups:
- name: node-config-master
@@ -111,17 +158,60 @@
- 'node-role.kubernetes.io/master=true'
- 'role=master'
edits: []
+ - name: node-config-master-crio
+ labels:
+ - 'node-role.kubernetes.io/master=true'
+ - 'role=master'
+ - 'runtime=cri-o'
+ edits:
+ - key: kubeletArguments.container-runtime
+ value: ["remote"]
+ - key: kubeletArguments.container-runtime-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.image-service-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.runtime-request-timeout
+ value: ["10m"]
- name: node-config-compute
labels:
- 'node-role.kubernetes.io/compute=true'
- 'node-role.kubernetes.io/infra=true'
- 'role=compute'
edits: []
+ - name: node-config-compute-crio
+ labels:
+ - 'node-role.kubernetes.io/compute=true'
+ - 'node-role.kubernetes.io/infra=true'
+ - 'role=compute'
+ - 'runtime=cri-o'
+ edits:
+ - key: kubeletArguments.container-runtime
+ value: ["remote"]
+ - key: kubeletArguments.container-runtime-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.image-service-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.runtime-request-timeout
+ value: ["10m"]
- name: node-config-storage
labels:
- 'node-role.kubernetes.io/storage=true'
- 'role=storage'
edits: []
+ - name: node-config-storage-crio
+ labels:
+ - 'node-role.kubernetes.io/storage=true'
+ - 'role=storage'
+ - 'runtime=cri-o'
+ edits:
+ - key: kubeletArguments.container-runtime
+ value: ["remote"]
+ - key: kubeletArguments.container-runtime-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.image-service-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.runtime-request-timeout
+ value: ["10m"]
- hosts: allnodes
gather_facts: no
diff --git a/deployment/playbooks/roles/docker-storage-setup/tasks/main.yaml b/deployment/playbooks/roles/docker-storage-setup/tasks/main.yaml
index d8fd457e..3736797c 100644
--- a/deployment/playbooks/roles/docker-storage-setup/tasks/main.yaml
+++ b/deployment/playbooks/roles/docker-storage-setup/tasks/main.yaml
@@ -3,6 +3,7 @@
file:
path: /etc/sysconfig/docker-storage
state: absent
+ when: not (openshift_use_crio | bool)
- block:
- name: create the docker-storage config file
@@ -12,10 +13,10 @@
owner: root
group: root
mode: 0644
-
when:
- ansible_distribution_version | version_compare('7.4', '>=')
- ansible_distribution == "RedHat"
+ - not (openshift_use_crio | bool)
- block:
- name: create the docker-storage-setup config file
@@ -25,10 +26,14 @@
owner: root
group: root
mode: 0644
-
when:
- ansible_distribution_version | version_compare('7.4', '<')
- ansible_distribution == "RedHat"
+ - not (openshift_use_crio | bool)
- name: start docker
- service: name=docker state=started enabled=true
+ service:
+ name: docker
+ state: started
+ enabled: true
+ when: not (openshift_use_crio | bool)
diff --git a/deployment/playbooks/roles/instance-groups/tasks/main.yaml b/deployment/playbooks/roles/instance-groups/tasks/main.yaml
index f8da4217..5607f4c7 100644
--- a/deployment/playbooks/roles/instance-groups/tasks/main.yaml
+++ b/deployment/playbooks/roles/instance-groups/tasks/main.yaml
@@ -20,7 +20,8 @@
add_host:
name: "{{ hostvars[item].inventory_hostname }}"
groups: allnodes, masters, etcd, nodes, cluster_hosts, master
- openshift_node_group_name: "node-config-master"
+ openshift_node_group_name: "node-config-master{{
+ (openshift_use_crio | bool) | ternary('-crio', '') }}"
with_items: "{{ groups[cluster_id + '-master'] }}"
when:
- "openshift_vers not in ['v3_6', 'v3_7', 'v3_9', 'v3_10']"
@@ -40,7 +41,8 @@
add_host:
name: "{{ hostvars[item].inventory_hostname }}"
groups: single_master
- openshift_node_group_name: "node-config-master"
+ openshift_node_group_name: "node-config-master{{
+ (openshift_use_crio | bool) | ternary('-crio', '') }}"
with_items: "{{ groups[cluster_id + '-master'][0] }}"
when:
- "openshift_vers not in ['v3_6', 'v3_7', 'v3_9', 'v3_10']"
@@ -60,7 +62,8 @@
add_host:
name: "{{ hostvars[item].inventory_hostname }}"
groups: allnodes, nodes, cluster_hosts, schedulable_nodes, compute
- openshift_node_group_name: "node-config-compute"
+ openshift_node_group_name: "node-config-compute{{
+ (openshift_use_crio | bool) | ternary('-crio', '') }}"
with_items: "{{ groups[cluster_id + '-compute'] }}"
when:
- "openshift_vers not in ['v3_6', 'v3_7', 'v3_9', 'v3_10']"
@@ -81,7 +84,8 @@
add_host:
name: "{{ hostvars[item].inventory_hostname }}"
groups: allnodes, new_nodes
- openshift_node_group_name: "node-config-compute"
+ openshift_node_group_name: "node-config-compute{{
+ (openshift_use_crio | bool) | ternary('-crio', '') }}"
with_items: "{{ groups.tag_provision_node | default([]) }}"
when:
- add_node is defined
@@ -104,7 +108,8 @@
add_host:
name: "{{ hostvars[item].inventory_hostname }}"
groups: allnodes
- openshift_node_group_name: "node-config-storage"
+ openshift_node_group_name: "node-config-storage{{
+ (openshift_use_crio | bool) | ternary('-crio', '') }}"
with_items: "{{ groups[cluster_id + '-storage'] | default([]) }}"
- name: Add crs instances to allnodes
@@ -118,7 +123,8 @@
add_host:
name: "{{ hostvars[item].inventory_hostname }}"
groups: nodes, cluster_hosts, schedulable_nodes, storage
- openshift_node_group_name: "node-config-storage"
+ openshift_node_group_name: "node-config-storage{{
+ (openshift_use_crio | bool) | ternary('-crio', '') }}"
with_items: "{{ groups[cluster_id + '-storage'] }}"
when:
- "'cns' in container_storage and add_node is defined and 'storage' in node_type"
@@ -144,12 +150,3 @@
with_items: "{{ groups[cluster_id + '-crs'] }}"
when:
- "'crs' in container_storage and add_node is defined and 'storage' in node_type"
-
-- name: Add a crs node to the single crs group
- add_host:
- name: "{{ hostvars[item].inventory_hostname }}"
- groups: single_crs
- openshift_node_group_name: "node-config-storage"
- with_items: "{{ groups[cluster_id + '-crs'][0] }}"
- when:
- - "'crs' in container_storage and add_node is defined and 'storage' in node_type"
diff --git a/deployment/playbooks/roles/vmware-guest-setup/tasks/main.yaml b/deployment/playbooks/roles/vmware-guest-setup/tasks/main.yaml
index 39dea695..c6c8cf27 100644
--- a/deployment/playbooks/roles/vmware-guest-setup/tasks/main.yaml
+++ b/deployment/playbooks/roles/vmware-guest-setup/tasks/main.yaml
@@ -27,16 +27,23 @@
- python-six
- iptables
- iptables-services
- - docker{{ '-' + docker_version if docker_version is defined else '' }}
- dnsmasq
retries: 5
delay: 5
register: result
until: result is succeeded
+ - name: Install docker
+ yum: name={{item}} state=installed
+ with_items:
+ - docker{{ '-' + docker_version if docker_version is defined else '' }}
+ retries: 5
+ delay: 5
+ register: result
+ until: result is succeeded
+ when: not (openshift_use_crio | bool)
- name: be sure openvmtools is running and enabled
service: name=vmtoolsd state=started enabled=yes
-
when:
- not is_atomic | bool
- ansible_distribution == "RedHat"
diff --git a/deployment/playbooks/vars/main.yaml b/deployment/playbooks/vars/main.yaml
index b646ec89..0b5a95af 100644
--- a/deployment/playbooks/vars/main.yaml
+++ b/deployment/playbooks/vars/main.yaml
@@ -11,6 +11,8 @@ openshift_required_repos:
- rhel-7-server-extras-rpms
- rhel-7-server-ose-3.{{ openshift_major_version }}-rpms
- rhel-7-fast-datapath-rpms
+openshift_crio_docker_gc_node_selector:
+ runtime: crio
# 'openshift_node_groups' is required for OCP3.10
openshift_node_groups:
- name: node-config-master
@@ -18,14 +20,57 @@ openshift_node_groups:
- 'node-role.kubernetes.io/master=true'
- 'role=master'
edits: []
+- name: node-config-master-crio
+ labels:
+ - 'node-role.kubernetes.io/master=true'
+ - 'role=master'
+ - 'runtime=cri-o'
+ edits:
+ - key: kubeletArguments.container-runtime
+ value: ["remote"]
+ - key: kubeletArguments.container-runtime-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.image-service-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.runtime-request-timeout
+ value: ["10m"]
- name: node-config-compute
labels:
- - 'node-role.kubernetes.io/compute=true'
- - 'node-role.kubernetes.io/infra=true'
- - 'role=compute'
+ - 'node-role.kubernetes.io/compute=true'
+ - 'node-role.kubernetes.io/infra=true'
+ - 'role=compute'
edits: []
+- name: node-config-compute-crio
+ labels:
+ - 'node-role.kubernetes.io/compute=true'
+ - 'node-role.kubernetes.io/infra=true'
+ - 'role=compute'
+ - 'runtime=cri-o'
+ edits:
+ - key: kubeletArguments.container-runtime
+ value: ["remote"]
+ - key: kubeletArguments.container-runtime-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.image-service-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.runtime-request-timeout
+ value: ["10m"]
- name: node-config-storage
labels:
- - 'node-role.kubernetes.io/storage=true'
- - 'role=storage'
+ - 'node-role.kubernetes.io/storage=true'
+ - 'role=storage'
edits: []
+- name: node-config-storage-crio
+ labels:
+ - 'node-role.kubernetes.io/storage=true'
+ - 'role=storage'
+ - 'runtime=cri-o'
+ edits:
+ - key: kubeletArguments.container-runtime
+ value: ["remote"]
+ - key: kubeletArguments.container-runtime-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.image-service-endpoint
+ value: ["/var/run/crio/crio.sock"]
+ - key: kubeletArguments.runtime-request-timeout
+ value: ["10m"]