Skip to content
Snippets Groups Projects
Commit 778dba94 authored by Cédric Jeanneret's avatar Cédric Jeanneret
Browse files

Load known, standard kernel modules from the host, not within containers

Known kernel modules are:
- dm-multipath (for multipathd)
- ip_vs (for keepalived)
- iscsi_tcp (for ironic-conductor)
- openvswitch (for openvswitch-vswitchd)

Change-Id: I1841ec30cde142c8019830ad3190847dfe493eb9
parent 8045b3fb
No related branches found
No related tags found
No related merge requests found
......@@ -65,6 +65,13 @@
notify:
- Restart haproxy container
- name: Load and persist keepalived module
import_role:
role: module-load
vars:
modules:
- {'name': ip_vs }
- name: Copying over keepalived.conf
vars:
service: "{{ haproxy_services['keepalived'] }}"
......
---
- name: Load and persist iscsi_tcp module
import_role:
role: module-load
vars:
modules:
- {'name': iscsi_tcp}
- name: Ensuring config directories exist
file:
path: "{{ node_config_directory }}/{{ item.key }}"
......
---
# Module name as a list of hashes:
# modules:
# - { name: foo, params: 'bar baz' }
# - { name: starwars }
# - { name: starwars, state: absent }
modules: []
---
# Allow to get a clean way to load and persist kernel modules
- name: Run tasks only for specific kolla_action
when:
- kolla_action != "config"
block:
- name: Check whether /etc/modules-load.d exists
stat:
path: /etc/modules-load.d
register: modules_load_stat
- name: "Load modules"
become: true
modprobe:
name: "{{ item.name }}"
params: "{{ item.params | default(omit) }}"
state: "{{ item.state | default('present') }}"
loop: "{{ modules }}"
loop_control:
label: "{{ item.name }}"
- name: "Persist modules via modules-load.d"
become: true
template:
dest: "/etc/modules-load.d/{{ item.name }}.conf"
src: module-load.conf.j2
loop: "{{ modules }}"
loop_control:
label: "{{ item.name }}"
when:
- modules_load_stat.stat.exists
- (item.state | default('present')) == 'present'
- name: "Drop module persistence"
become: true
file:
path: "/etc/modules-load.d/{{ item.name }}.conf"
state: absent
loop: "{{ modules }}"
loop_control:
label: "{{ item.name }}"
when:
- modules_load_stat.stat.exists
- (item.state | default('present')) == 'absent'
- name: "Persist modules via /etc/modules"
become: true
lineinfile:
dest: /etc/modules
line: "{{ item.name }} {{ item.params | default('') }}"
state: "{{ item.state | default('present') }}"
loop: "{{ modules }}"
loop_control:
label: "{{ item.name }}"
when: not modules_load_stat.stat.exists
# {{ ansible_managed }}
{{ item.name }} {{ item.params |default('') }}
---
- name: Load and persist dm-multipath module
import_role:
role: module-load
vars:
modules:
- {'name': dm-multipath}
- name: Ensuring config directories exist
file:
path: "{{ node_config_directory }}/{{ item }}"
......
---
- name: Load and persist openvswitch module
import_role:
role: module-load
vars:
modules:
- {'name': openvswitch}
- name: Ensuring config directories exist
become: true
file:
......
---
features:
- Adds support for loading kernel modules required by containers. This is
required since kolla images are removing support for loading kernel modules
from within the container.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment