summaryrefslogtreecommitdiffstats
path: root/roles/openshift_node/tasks/systemd_units.yml
blob: e3ce5df3df46695d58ed1097b34bfa496165ae0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
---
# This file is included both in the openshift_master role and in the upgrade
# playbooks.

- name: Install Node dependencies docker service file
  template:
    dest: "/etc/systemd/system/{{ openshift.common.service_type }}-node-dep.service"
    src: openshift.docker.node.dep.service
  register: install_node_dep_result
  when: openshift.common.is_containerized | bool
  notify:
  - reload systemd units
  - restart node

- block:
  - name: Pre-pull node image
    command: >
      docker pull {{ openshift.node.node_image }}:{{ openshift_image_tag }}
    register: pull_result
    changed_when: "'Downloaded newer image' in pull_result.stdout"

  - name: Install Node docker service file
    template:
      dest: "/etc/systemd/system/{{ openshift.common.service_type }}-node.service"
      src: openshift.docker.node.service
    register: install_node_result
    notify:
    - reload systemd units
    - restart node
  when:
  - openshift.common.is_containerized | bool
  - not openshift.common.is_node_system_container | bool

- name: Install Node service file
  template:
    dest: "/etc/systemd/system/{{ openshift.common.service_type }}-node.service"
    src: "{{ openshift.common.service_type }}-node.service.j2"
  register: install_node_result
  when: not openshift.common.is_containerized | bool
  notify:
  - reload systemd units
  - restart node

- name: Create the openvswitch service env file
  template:
    src: openvswitch.sysconfig.j2
    dest: /etc/sysconfig/openvswitch
  when: openshift.common.is_containerized | bool
  register: install_ovs_sysconfig
  notify:
  - reload systemd units
  - restart openvswitch

- name: Install Node system container
  include: node_system_container.yml
  when:
  - openshift.common.is_containerized | bool
  - openshift.common.is_node_system_container | bool

- name: Install OpenvSwitch system containers
  include: openvswitch_system_container.yml
  when:
  - openshift.common.use_openshift_sdn | default(true) | bool
  - openshift.common.is_containerized | bool
  - openshift.common.is_openvswitch_system_container | bool

# May be a temporary workaround.
# https://bugzilla.redhat.com/show_bug.cgi?id=1331590
- name: Create OpenvSwitch service.d directory
  file: path=/etc/systemd/system/openvswitch.service.d/ state=directory
  when: openshift.common.use_openshift_sdn | default(true) | bool

- name: Install OpenvSwitch service OOM fix
  template:
    dest: "/etc/systemd/system/openvswitch.service.d/01-avoid-oom.conf"
    src: openvswitch-avoid-oom.conf
  when: openshift.common.use_openshift_sdn | default(true) | bool
  register: install_oom_fix_result
  notify:
  - reload systemd units
  - restart openvswitch

- block:
  - name: Pre-pull openvswitch image
    command: >
      docker pull {{ openshift.node.ovs_image }}:{{ openshift_image_tag }}
    register: pull_result
    changed_when: "'Downloaded newer image' in pull_result.stdout"

  - name: Install OpenvSwitch docker service file
    template:
      dest: "/etc/systemd/system/openvswitch.service"
      src: openvswitch.docker.service
    notify:
    - reload systemd units
    - restart openvswitch
  when:
  - openshift.common.is_containerized | bool
  - openshift.common.use_openshift_sdn | default(true) | bool
  - not openshift.common.is_openvswitch_system_container | bool

- name: Configure Node settings
  lineinfile:
    dest: /etc/sysconfig/{{ openshift.common.service_type }}-node
    regexp: "{{ item.regex }}"
    line: "{{ item.line }}"
    create: true
  with_items:
  - regex: '^OPTIONS='
    line: "OPTIONS=--loglevel={{ openshift.node.debug_level | default(2) }}"
  - regex: '^CONFIG_FILE='
    line: "CONFIG_FILE={{ openshift.common.config_base }}/node/node-config.yaml"
  - regex: '^IMAGE_VERSION='
    line: "IMAGE_VERSION={{ openshift_image_tag }}"
  notify:
  - restart node

- name: Configure Proxy Settings
  lineinfile:
    dest: /etc/sysconfig/{{ openshift.common.service_type }}-node
    regexp: "{{ item.regex }}"
    line: "{{ item.line }}"
    create: true
  with_items:
  - regex: '^HTTP_PROXY='
    line: "HTTP_PROXY={{ openshift.common.http_proxy | default('') }}"
  - regex: '^HTTPS_PROXY='
    line: "HTTPS_PROXY={{ openshift.common.https_proxy | default('') }}"
  - regex: '^NO_PROXY='
    line: "NO_PROXY={{ openshift.common.no_proxy | default([]) }},{{ openshift.common.portal_net }},{{ hostvars[groups.oo_first_master.0].openshift.master.sdn_cluster_network_cidr }}"
  when: ('http_proxy' in openshift.common and openshift.common.http_proxy != '')
  notify:
  - restart node