---
- fail: msg="Cannot use containerized=true for load balancer hosts."
  when: openshift.common.is_containerized | bool

- name: Install haproxy
  action: "{{ ansible_pkg_mgr }} name=haproxy state=present"

- name: Configure systemd service directory for haproxy
  file:
    path: /etc/systemd/system/haproxy.service.d
    state: directory

# Work around ini_file create option in 2.2 which defaults to no
- name: Create limits.conf file
  file:
    dest: /etc/systemd/system/haproxy.service.d/limits.conf
    state: touch
    mode: 0660
    owner: root
    group: root
  changed_when: false

- name: Configure the nofile limits for haproxy
  ini_file:
    dest: /etc/systemd/system/haproxy.service.d/limits.conf
    section: Service
    option: LimitNOFILE
    value: "{{ openshift_loadbalancer_limit_nofile | default(100000) }}"
  notify: restart haproxy
  register: nofile_limit_result

- name: Reload systemd if needed
  command: systemctl daemon-reload
  when: nofile_limit_result | changed

- name: Configure haproxy
  template:
    src: haproxy.cfg.j2
    dest: /etc/haproxy/haproxy.cfg
    owner: root
    group: root
    mode: 0644
  notify: restart haproxy

- name: Enable and start haproxy
  service:
    name: haproxy
    state: started
    enabled: yes
  register: start_result

- set_fact:
    haproxy_start_result_changed: "{{ start_result | changed }}"
