summaryrefslogtreecommitdiffstats
path: root/roles/openshift_loadbalancer
diff options
context:
space:
mode:
authorEric Wolinetz <ewolinet@redhat.com>2017-01-23 16:08:20 -0600
committerGitHub <noreply@github.com>2017-01-23 16:08:20 -0600
commit066494438d5baff9f555cd56a8bde94df148dc31 (patch)
treee0c802a5af8dc07f0a16b5d41ebea55de4a34d06 /roles/openshift_loadbalancer
parentd740fd159416783c88839e6e2c2e150eb81b67da (diff)
parentc2bdcebcf9bc8aebba6d09a80c6b5cccdb17786d (diff)
downloadopenshift-066494438d5baff9f555cd56a8bde94df148dc31.tar.gz
openshift-066494438d5baff9f555cd56a8bde94df148dc31.tar.bz2
openshift-066494438d5baff9f555cd56a8bde94df148dc31.tar.xz
openshift-066494438d5baff9f555cd56a8bde94df148dc31.zip
Merge branch 'master' into fix_logging_jks_gen
Diffstat (limited to 'roles/openshift_loadbalancer')
-rw-r--r--roles/openshift_loadbalancer/defaults/main.yml2
-rw-r--r--roles/openshift_loadbalancer/tasks/main.yml25
-rw-r--r--roles/openshift_loadbalancer/templates/haproxy.docker.service.j217
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