Skip to content

Commit 5120f8e

Browse files
committed
Implement container runtime role
1 parent e0e1069 commit 5120f8e

File tree

83 files changed

+178
-422
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+178
-422
lines changed

playbooks/common/openshift-cluster/upgrades/docker/tasks/restart.yml

-4
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,6 @@
66
retries: 3
77
delay: 30
88

9-
- name: Update docker facts
10-
openshift_facts:
11-
role: docker
12-
139
- name: Restart containerized services
1410
service: name={{ item }} state=started
1511
with_items:

playbooks/common/openshift-cluster/upgrades/pre/verify_upgrade_targets.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
- name: Update oreg_auth docker login credentials if necessary
88
include_role:
9-
name: docker
9+
name: container_runtime
1010
tasks_from: registry_auth.yml
1111
when: oreg_auth_user is defined
1212

playbooks/common/openshift-cluster/upgrades/upgrade_control_plane.yml

-4
Original file line numberDiff line numberDiff line change
@@ -143,10 +143,6 @@
143143
roles:
144144
- { role: openshift_cli }
145145
vars:
146-
openshift_docker_hosted_registry_network: "{{ hostvars[groups.oo_first_master.0].openshift.common.portal_net }}"
147-
# Another spot where we assume docker is running and do not want to accidentally trigger an unsafe
148-
# restart.
149-
skip_docker_role: True
150146
__master_shared_resource_viewer_file: "shared_resource_viewer_role.yaml"
151147
tasks:
152148
- name: Reconcile Cluster Roles

playbooks/common/openshift-cluster/upgrades/v3_6/upgrade.yml

-6
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,6 @@
7373
openshift_release: "{{ openshift_upgrade_target }}"
7474
openshift_protect_installed_version: False
7575

76-
# We skip the docker role at this point in upgrade to prevent
77-
# unintended package, container, or config upgrades which trigger
78-
# docker restarts. At this early stage of upgrade we can assume
79-
# docker is configured and running.
80-
skip_docker_role: True
81-
8276
- include: ../../../../openshift-master/private/validate_restart.yml
8377
tags:
8478
- pre_upgrade

playbooks/common/openshift-cluster/upgrades/v3_6/upgrade_control_plane.yml

-6
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,6 @@
7777
openshift_release: "{{ openshift_upgrade_target }}"
7878
openshift_protect_installed_version: False
7979

80-
# We skip the docker role at this point in upgrade to prevent
81-
# unintended package, container, or config upgrades which trigger
82-
# docker restarts. At this early stage of upgrade we can assume
83-
# docker is configured and running.
84-
skip_docker_role: True
85-
8680
- include: ../../../../openshift-master/private/validate_restart.yml
8781
tags:
8882
- pre_upgrade

playbooks/common/openshift-cluster/upgrades/v3_6/upgrade_nodes.yml

-6
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,6 @@
6666
openshift_release: "{{ openshift_upgrade_target }}"
6767
openshift_protect_installed_version: False
6868

69-
# We skip the docker role at this point in upgrade to prevent
70-
# unintended package, container, or config upgrades which trigger
71-
# docker restarts. At this early stage of upgrade we can assume
72-
# docker is configured and running.
73-
skip_docker_role: True
74-
7569
- name: Verify masters are already upgraded
7670
hosts: oo_masters_to_config
7771
tags:

playbooks/common/openshift-cluster/upgrades/v3_7/upgrade.yml

-6
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,6 @@
7777
openshift_release: "{{ openshift_upgrade_target }}"
7878
openshift_protect_installed_version: False
7979

80-
# We skip the docker role at this point in upgrade to prevent
81-
# unintended package, container, or config upgrades which trigger
82-
# docker restarts. At this early stage of upgrade we can assume
83-
# docker is configured and running.
84-
skip_docker_role: True
85-
8680
- include: ../../../../openshift-master/private/validate_restart.yml
8781
tags:
8882
- pre_upgrade

playbooks/common/openshift-cluster/upgrades/v3_7/upgrade_control_plane.yml

-6
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,6 @@
8181
openshift_release: "{{ openshift_upgrade_target }}"
8282
openshift_protect_installed_version: False
8383

84-
# We skip the docker role at this point in upgrade to prevent
85-
# unintended package, container, or config upgrades which trigger
86-
# docker restarts. At this early stage of upgrade we can assume
87-
# docker is configured and running.
88-
skip_docker_role: True
89-
9084
- include: ../../../../openshift-master/private/validate_restart.yml
9185
tags:
9286
- pre_upgrade

playbooks/common/openshift-cluster/upgrades/v3_7/upgrade_nodes.yml

-6
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,6 @@
6666
openshift_release: "{{ openshift_upgrade_target }}"
6767
openshift_protect_installed_version: False
6868

69-
# We skip the docker role at this point in upgrade to prevent
70-
# unintended package, container, or config upgrades which trigger
71-
# docker restarts. At this early stage of upgrade we can assume
72-
# docker is configured and running.
73-
skip_docker_role: True
74-
7569
- name: Verify masters are already upgraded
7670
hosts: oo_masters_to_config
7771
tags:

playbooks/common/openshift-cluster/upgrades/v3_8/upgrade.yml

-6
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,6 @@
7777
openshift_release: "{{ openshift_upgrade_target }}"
7878
openshift_protect_installed_version: False
7979

80-
# We skip the docker role at this point in upgrade to prevent
81-
# unintended package, container, or config upgrades which trigger
82-
# docker restarts. At this early stage of upgrade we can assume
83-
# docker is configured and running.
84-
skip_docker_role: True
85-
8680
- include: ../../../../openshift-master/private/validate_restart.yml
8781
tags:
8882
- pre_upgrade

playbooks/common/openshift-cluster/upgrades/v3_8/upgrade_control_plane.yml

-6
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,6 @@
8181
openshift_release: "{{ openshift_upgrade_target }}"
8282
openshift_protect_installed_version: False
8383

84-
# We skip the docker role at this point in upgrade to prevent
85-
# unintended package, container, or config upgrades which trigger
86-
# docker restarts. At this early stage of upgrade we can assume
87-
# docker is configured and running.
88-
skip_docker_role: True
89-
9084
- include: ../../../../openshift-master/private/validate_restart.yml
9185
tags:
9286
- pre_upgrade

playbooks/common/openshift-cluster/upgrades/v3_8/upgrade_nodes.yml

-6
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,6 @@
6666
openshift_release: "{{ openshift_upgrade_target }}"
6767
openshift_protect_installed_version: False
6868

69-
# We skip the docker role at this point in upgrade to prevent
70-
# unintended package, container, or config upgrades which trigger
71-
# docker restarts. At this early stage of upgrade we can assume
72-
# docker is configured and running.
73-
skip_docker_role: True
74-
7569
- name: Verify masters are already upgraded
7670
hosts: oo_masters_to_config
7771
tags:

playbooks/init/facts.yml

+6-4
Original file line numberDiff line numberDiff line change
@@ -135,11 +135,13 @@
135135
- openshift_http_proxy is defined or openshift_https_proxy is defined
136136
- openshift_generate_no_proxy_hosts | default(True) | bool
137137

138+
- name: Initialize openshift.node.sdn_mtu
139+
openshift_facts:
140+
role: node
141+
local_facts:
142+
sdn_mtu: "{{ openshift_node_sdn_mtu | default(None) }}"
143+
138144
- name: initialize_facts set_fact repoquery command
139145
set_fact:
140146
repoquery_cmd: "{{ 'dnf repoquery --latest-limit 1 -d 0' if ansible_pkg_mgr == 'dnf' else 'repoquery --plugins' }}"
141147
repoquery_installed: "{{ 'dnf repoquery --latest-limit 1 -d 0 --disableexcludes=all --installed' if ansible_pkg_mgr == 'dnf' else 'repoquery --plugins --installed' }}"
142-
143-
- name: initialize_facts set_fact on openshift_docker_hosted_registry_network
144-
set_fact:
145-
openshift_docker_hosted_registry_network: "{{ '' if 'oo_first_master' not in groups else hostvars[groups.oo_first_master.0].openshift.common.portal_net }}"

playbooks/init/main.yml

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
- import_playbook: repos.yml
2525

2626
- import_playbook: version.yml
27+
when: not (skip_verison | default(False))
2728

2829
- name: Initialization Checkpoint End
2930
hosts: all

playbooks/openshift-hosted/private/cockpit-ui.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@
55
- role: cockpit-ui
66
when:
77
- openshift_hosted_manage_registry | default(true) | bool
8-
- not openshift.docker.hosted_registry_insecure | default(false) | bool
8+
- not (openshift_docker_hosted_registry_insecure | default(false)) | bool

playbooks/openshift-loadbalancer/private/config.yml

+1-3
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,12 @@
1111
status: "In Progress"
1212
start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"
1313

14-
- name: Configure firewall and docker for load balancers
14+
- name: Configure firewall load balancers
1515
hosts: oo_lb_to_config:!oo_masters_to_config:!oo_nodes_to_config
1616
vars:
1717
openshift_image_tag: "{{ hostvars[groups.oo_first_master.0].openshift_image_tag }}"
1818
roles:
1919
- role: os_firewall
20-
- role: openshift_docker
21-
when: openshift.common.is_containerized | default(False) | bool and not skip_docker_role | default(False) | bool
2220

2321
- name: Configure load balancers
2422
hosts: oo_lb_to_config

playbooks/openshift-node/private/configure_nodes.yml

-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
vars:
55
openshift_node_master_api_url: "{{ hostvars[groups.oo_first_master.0].openshift.master.api_url }}"
66
openshift_node_first_master_ip: "{{ hostvars[groups.oo_first_master.0].openshift.common.ip }}"
7-
openshift_docker_hosted_registry_network: "{{ hostvars[groups.oo_first_master.0].openshift.common.portal_net }}"
87
openshift_no_proxy_internal_hostnames: "{{ hostvars | oo_select_keys(groups['oo_nodes_to_config']
98
| union(groups['oo_masters_to_config'])
109
| union(groups['oo_etcd_to_config'] | default([])))

playbooks/openshift-node/private/containerized_nodes.yml

-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
vars:
66
openshift_node_master_api_url: "{{ hostvars[groups.oo_first_master.0].openshift.master.api_url }}"
77
openshift_node_first_master_ip: "{{ hostvars[groups.oo_first_master.0].openshift.common.ip }}"
8-
openshift_docker_hosted_registry_network: "{{ hostvars[groups.oo_first_master.0].openshift.common.portal_net }}"
98
openshift_no_proxy_internal_hostnames: "{{ hostvars | oo_select_keys(groups['oo_nodes_to_config']
109
| union(groups['oo_masters_to_config'])
1110
| union(groups['oo_etcd_to_config'] | default([])))

playbooks/openshift-node/private/restart.yml

-4
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,6 @@
1616
retries: 3
1717
delay: 30
1818

19-
- name: Update docker facts
20-
openshift_facts:
21-
role: docker
22-
2319
- name: Restart containerized services
2420
service:
2521
name: "{{ item }}"

playbooks/prerequisites.yml

+10-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
---
2-
- name: Place holder for prerequisites
3-
hosts: localhost
4-
gather_facts: false
2+
- include: init/main.yml
3+
vars:
4+
skip_verison: True
5+
6+
- hosts: "{{ l_containerized_host_groups }}"
7+
vars:
8+
l_chg_temp: "{{ openshift_containerized_host_groups | default([]) }}"
9+
l_containerized_host_groups: "{{ (['oo_nodes_to_config'] | union(l_chg_temp)) | join(':') }}"
510
tasks:
6-
- name: Debug placeholder
7-
debug: msg="Prerequisites ran."
11+
- include_role:
12+
name: container_runtime

playbooks/roles

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../roles

roles/calico/handlers/main.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@
33
become: yes
44
systemd: name=calico state=restarted
55

6-
- name: restart docker
6+
- name: restart container runtime
77
become: yes
88
systemd:
9-
name: "{{ openshift.docker.service_name }}"
9+
name: "{{ openshift_docker_service_name }}"
1010
state: restarted
1111
register: l_docker_restart_docker_in_calico_result
1212
until: not l_docker_restart_docker_in_calico_result | failed

roles/calico/templates/calico.service.j2

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[Unit]
22
Description=calico
3-
After={{ openshift.docker.service_name }}.service
4-
Requires={{ openshift.docker.service_name }}.service
3+
After={{ openshift_docker_service_name }}.service
4+
Requires={{ openshift_docker_service_name }}.service
55

66
[Service]
77
Restart=always

roles/docker/README.md roles/container_runtime/README.md

+4-8
Original file line numberDiff line numberDiff line change
@@ -10,27 +10,23 @@ Requirements
1010

1111
Ansible 2.2
1212

13-
Role Variables
13+
Mandator Role Variables
1414
--------------
1515

16-
docker_conf_dir: location of the Docker configuration directory
17-
docker_systemd_dir location of the systemd directory for Docker
18-
docker_udev_workaround: raises udevd timeout to 5 minutes (https://bugzilla.redhat.com/show_bug.cgi?id=1272446)
19-
udevw_udevd_dir: location of systemd config for systemd-udevd.service
16+
2017

2118
Dependencies
2219
------------
2320

24-
Depends on the os_firewall role.
21+
Depends on openshift_facts having already been run.
2522

2623
Example Playbook
2724
----------------
2825

2926
- hosts: servers
3027
roles:
31-
- role: docker
28+
- role: container_runtime
3229
docker_udev_workaround: "true"
33-
docker_use_system_container: False
3430

3531
License
3632
-------

roles/docker/defaults/main.yml roles/container_runtime/defaults/main.yml

+40
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,42 @@
22
docker_cli_auth_config_path: '/root/.docker'
33
openshift_docker_signature_verification: False
44

5+
repoquery_cmd: "{{ 'dnf repoquery --latest-limit 1 -d 0' if ansible_pkg_mgr == 'dnf' else 'repoquery --plugins' }}"
6+
57
openshift_docker_alternative_creds: False
68

79
# oreg_url is defined by user input.
810
oreg_host: "{{ oreg_url.split('/')[0] if (oreg_url is defined and '.' in oreg_url.split('/')[0]) else '' }}"
911
oreg_auth_credentials_replace: False
1012

13+
openshift_docker_use_system_container: False
14+
openshift_docker_disable_push_dockerhub: False # bool
15+
openshift_docker_selinux_enabled: True
16+
openshift_docker_service_name: "{{ 'container-engine' if (openshift_docker_use_system_container | default(False)) else 'docker' }}"
17+
18+
openshift_docker_hosted_registry_insecure: False # bool
19+
20+
openshift_docker_hosted_registry_network_default: "{{ openshift_portal_net | default(False) }}"
21+
openshift_docker_hosted_registry_network: "{{ openshift_docker_hosted_registry_network_default }}"
22+
1123
openshift_docker_additional_registries: []
1224
openshift_docker_blocked_registries: []
1325
openshift_docker_insecure_registries: []
1426

1527
openshift_docker_ent_reg: 'registry.access.redhat.com'
1628

29+
openshift_docker_options: False # str
30+
openshift_docker_log_driver: False # str
31+
openshift_docker_log_options: []
32+
1733
# The l2_docker_* variables convert csv strings to lists, if
1834
# necessary. These variables should be used in place of their respective
1935
# openshift_docker_* counterparts to ensure the properly formatted lists are
2036
# utilized.
2137
l2_docker_additional_registries: "{% if openshift_docker_additional_registries is string %}{% if openshift_docker_additional_registries == '' %}[]{% elif ',' in openshift_docker_additional_registries %}{{ openshift_docker_additional_registries.split(',') | list }}{% else %}{{ [ openshift_docker_additional_registries ] }}{% endif %}{% else %}{{ openshift_docker_additional_registries }}{% endif %}"
2238
l2_docker_blocked_registries: "{% if openshift_docker_blocked_registries is string %}{% if openshift_docker_blocked_registries == '' %}[]{% elif ',' in openshift_docker_blocked_registries %}{{ openshift_docker_blocked_registries.split(',') | list }}{% else %}{{ [ openshift_docker_blocked_registries ] }}{% endif %}{% else %}{{ openshift_docker_blocked_registries }}{% endif %}"
2339
l2_docker_insecure_registries: "{% if openshift_docker_insecure_registries is string %}{% if openshift_docker_insecure_registries == '' %}[]{% elif ',' in openshift_docker_insecure_registries %}{{ openshift_docker_insecure_registries.split(',') | list }}{% else %}{{ [ openshift_docker_insecure_registries ] }}{% endif %}{% else %}{{ openshift_docker_insecure_registries }}{% endif %}"
40+
l2_docker_log_options: "{% if openshift_docker_log_options is string %}{% if ',' in openshift_docker_log_options %}{{ openshift_docker_log_options.split(',') | list }}{% else %}{{ [ openshift_docker_log_options ] }}{% endif %}{% else %}{{ openshift_docker_log_options }}{% endif %}"
2441

2542
openshift_docker_use_etc_containers: False
2643
containers_registries_conf_path: /etc/containers/registries.conf
@@ -38,3 +55,26 @@ openshift_docker_is_node_or_master: "{{ True if inventory_hostname in (groups['o
3855

3956
docker_alt_storage_path: /var/lib/containers/docker
4057
docker_default_storage_path: /var/lib/docker
58+
59+
# Set local versions of facts that must be in json format for container-daemon.json
60+
# NOTE: When jinja2.9+ is used the container-daemon.json file can move to using tojson
61+
l_docker_log_options: "{{ l2_docker_log_options | to_json }}"
62+
l_docker_additional_registries: "{{ l2_docker_additional_registries | to_json }}"
63+
l_docker_blocked_registries: "{{ l2_docker_blocked_registries | to_json }}"
64+
l_docker_insecure_registries: "{{ l2_docker_insecure_registries | to_json }}"
65+
l_docker_selinux_enabled: "{{ openshift_docker_selinux_enabled | to_json }}"
66+
67+
docker_http_proxy: "{{ openshift_http_proxy | default('') }}"
68+
docker_https_proxy: "{{ openshift.common.https_proxy | default('') }}"
69+
docker_no_proxy: "{{ openshift.common.no_proxy | default('') }}"
70+
71+
openshift_use_crio: False
72+
openshift_use_crio_only: False
73+
74+
75+
l_insecure_crio_registries: "{{ '\"{}\"'.format('\", \"'.join(l2_docker_insecure_registries)) }}"
76+
l_crio_registries: "{{ l2_docker_additional_registries + ['docker.io'] }}"
77+
l_additional_crio_registries: "{{ '\"{}\"'.format('\", \"'.join(l_crio_registries)) }}"
78+
79+
l_openshift_image_tag_default: "{{ openshift_release }}"
80+
l_openshift_image_tag: "{{ openshift_image_tag | default(l_openshift_image_tag_default) | string}}"

roles/docker/handlers/main.yml roles/container_runtime/handlers/main.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
---
22

3-
- name: restart docker
3+
- name: restart container runtime
44
systemd:
5-
name: "{{ openshift.docker.service_name }}"
5+
name: "{{ openshift_docker_service_name }}"
66
state: restarted
77
daemon_reload: yes
88
register: r_docker_restart_docker_result

roles/docker/meta/main.yml roles/container_runtime/meta/main.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
galaxy_info:
33
author: OpenShift
4-
description: docker package install
4+
description: container runtime install and configure
55
company: Red Hat, Inc
66
license: ASL 2.0
77
min_ansible_version: 2.2

0 commit comments

Comments
 (0)