diff options
| author | Andrew Lau <andrew@andrewklau.com> | 2017-01-18 21:28:01 +1100 | 
|---|---|---|
| committer | Andrew Lau <andrew@andrewklau.com> | 2017-01-21 08:16:38 +1100 | 
| commit | c537e9599fc01dfeddb84cbcc52fa6991cb3ab27 (patch) | |
| tree | 8381b1ffb0b98d8325359e21f257af183174238f /roles | |
| parent | 7b512bf5fc36ee9ad2df65d8e129aa52c939d98e (diff) | |
| download | openshift-c537e9599fc01dfeddb84cbcc52fa6991cb3ab27.tar.gz openshift-c537e9599fc01dfeddb84cbcc52fa6991cb3ab27.tar.bz2 openshift-c537e9599fc01dfeddb84cbcc52fa6991cb3ab27.tar.xz openshift-c537e9599fc01dfeddb84cbcc52fa6991cb3ab27.zip  | |
Add containzerized haproxy option
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  | 
