diff options
Diffstat (limited to 'roles')
| -rw-r--r-- | roles/openshift_loadbalancer/defaults/main.yml | 2 | ||||
| -rw-r--r-- | roles/openshift_loadbalancer/tasks/main.yml | 25 | ||||
| -rw-r--r-- | roles/openshift_loadbalancer/templates/haproxy.docker.service.j2 | 17 | 
3 files changed, 40 insertions, 4 deletions
diff --git a/roles/openshift_loadbalancer/defaults/main.yml b/roles/openshift_loadbalancer/defaults/main.yml index d096019af..6190383b6 100644 --- a/roles/openshift_loadbalancer/defaults/main.yml +++ b/roles/openshift_loadbalancer/defaults/main.yml @@ -2,7 +2,7 @@  haproxy_frontends:  - name: main    binds: -  - "*:8443" +  - "*:{{ openshift_master_api_port | default(8443) }}"    default_backend: default  haproxy_backends: diff --git a/roles/openshift_loadbalancer/tasks/main.yml b/roles/openshift_loadbalancer/tasks/main.yml index 400f80715..e9bc8b4ab 100644 --- a/roles/openshift_loadbalancer/tasks/main.yml +++ b/roles/openshift_loadbalancer/tasks/main.yml @@ -1,14 +1,31 @@  --- -- fail: msg="Cannot use containerized=true for load balancer hosts." -  when: openshift.common.is_containerized | bool -  - name: Install haproxy    package: name=haproxy state=present +  when: not openshift.common.is_containerized | bool + +- name: Pull haproxy image +  command: > +    docker pull {{ openshift.common.router_image }}:{{ openshift_image_tag }} +  when: openshift.common.is_containerized | bool + +- name: Create config directory for haproxy +  file: +    path: /etc/haproxy +    state: directory +  when: openshift.common.is_containerized | bool + +- name: Create the systemd unit files +  template: +    src: "haproxy.docker.service.j2" +    dest: "{{ containerized_svc_dir }}/haproxy.service" +  when: openshift.common.is_containerized | bool +  notify: restart haproxy  - name: Configure systemd service directory for haproxy    file:      path: /etc/systemd/system/haproxy.service.d      state: directory +  when: not openshift.common.is_containerized | bool  # Work around ini_file create option in 2.2 which defaults to no  - name: Create limits.conf file @@ -19,6 +36,7 @@      owner: root      group: root    changed_when: false +  when: not openshift.common.is_containerized | bool  - name: Configure the nofile limits for haproxy    ini_file: @@ -27,6 +45,7 @@      option: LimitNOFILE      value: "{{ openshift_loadbalancer_limit_nofile | default(100000) }}"    notify: restart haproxy +  when: not openshift.common.is_containerized | bool  - name: Configure haproxy    template: diff --git a/roles/openshift_loadbalancer/templates/haproxy.docker.service.j2 b/roles/openshift_loadbalancer/templates/haproxy.docker.service.j2 new file mode 100644 index 000000000..624876ab0 --- /dev/null +++ b/roles/openshift_loadbalancer/templates/haproxy.docker.service.j2 @@ -0,0 +1,17 @@ +[Unit] +After=docker.service +Requires=docker.service +PartOf=docker.service + +[Service] +ExecStartPre=-/usr/bin/docker rm -f openshift_loadbalancer +ExecStart=/usr/bin/docker run --rm --name openshift_loadbalancer -p {{ openshift_master_api_port | default(8443) }}:{{ openshift_master_api_port | default(8443) }} -v /etc/haproxy/haproxy.cfg:/etc/haproxy/haproxy.cfg:ro --entrypoint="haproxy -f /etc/haproxy/haproxy.cfg" {{ openshift.common.router_image }}:{{ openshift_image_tag }} +ExecStartPost=/usr/bin/sleep 10 +ExecStop=/usr/bin/docker stop openshift_loadbalancer +LimitNOFILE={{ openshift_loadbalancer_limit_nofile | default(100000) }} +LimitCORE=infinity +Restart=always +RestartSec=5s + +[Install] +WantedBy=docker.service  | 
