From 46bf49b318a25f8edf2ad6e38aebc99871552b9b Mon Sep 17 00:00:00 2001 From: Valerii Ponomarov Date: Fri, 1 Mar 2019 20:14:03 +0530 Subject: [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 --- deployment/add-node.py | 13 ++++ deployment/ocp-on-vmware.ini | 5 ++ deployment/ocp-on-vmware.py | 12 +++ deployment/playbooks/add-node.yaml | 45 +++++++++++ deployment/playbooks/cns-node-setup.yaml | 45 +++++++++++ deployment/playbooks/crs-node-setup.yaml | 45 +++++++++++ deployment/playbooks/node-setup.yaml | 45 +++++++++++ deployment/playbooks/ocp-install.yaml | 90 ++++++++++++++++++++++ .../roles/docker-storage-setup/tasks/main.yaml | 11 ++- .../roles/instance-groups/tasks/main.yaml | 27 +++---- .../roles/vmware-guest-setup/tasks/main.yaml | 11 ++- deployment/playbooks/vars/main.yaml | 55 +++++++++++-- 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"] -- cgit