diff --git a/inventory/service/group_vars/gitea-lb.yaml b/inventory/service/group_vars/gitea-lb.yaml index b201a12888..41780cc8e8 100644 --- a/inventory/service/group_vars/gitea-lb.yaml +++ b/inventory/service/group_vars/gitea-lb.yaml @@ -1,4 +1,4 @@ -haproxy_listeners: +gitea_lb_listeners: - name: balance_git_http bind: - ':::80' diff --git a/playbooks/roles/gitea-lb/README.rst b/playbooks/roles/gitea-lb/README.rst new file mode 100644 index 0000000000..de1031d3c1 --- /dev/null +++ b/playbooks/roles/gitea-lb/README.rst @@ -0,0 +1,9 @@ +Install the gitea-lb services + +This configures haproxy + +**Role Variables** + +.. zuul:rolevar:: gitea_lb_listeners + + The backends to configure diff --git a/playbooks/roles/gitea-lb/tasks/main.yaml b/playbooks/roles/gitea-lb/tasks/main.yaml new file mode 100644 index 0000000000..9d7f7150ee --- /dev/null +++ b/playbooks/roles/gitea-lb/tasks/main.yaml @@ -0,0 +1,5 @@ +- name: Install haproxy with gitea config + include_role: + name: haproxy + vars: + haproxy_config_template: gitea-haproxy.cfg.j2 diff --git a/playbooks/roles/haproxy/templates/haproxy.cfg.j2 b/playbooks/roles/gitea-lb/templates/gitea-haproxy.cfg.j2 similarity index 94% rename from playbooks/roles/haproxy/templates/haproxy.cfg.j2 rename to playbooks/roles/gitea-lb/templates/gitea-haproxy.cfg.j2 index c655a692a5..200de378ba 100644 --- a/playbooks/roles/haproxy/templates/haproxy.cfg.j2 +++ b/playbooks/roles/gitea-lb/templates/gitea-haproxy.cfg.j2 @@ -20,7 +20,7 @@ defaults timeout server 2m timeout check 10s -{% for listener in haproxy_listeners %} +{% for listener in gitea_lb_listeners %} listen {{ listener.name }} {% for bind in listener.bind %} bind {{ bind }} diff --git a/playbooks/roles/haproxy/README.rst b/playbooks/roles/haproxy/README.rst index 3e5aa70398..f28d4e73db 100644 --- a/playbooks/roles/haproxy/README.rst +++ b/playbooks/roles/haproxy/README.rst @@ -1 +1,16 @@ Install, configure, and run a haproxy server. + +**Role Variables** + +.. zuul:rolevar:: haproxy_config_template + :type: string + :default: Undefined + + The config template to install for haproxy. Must be defined. + +.. zuul:rolevar:: haproxy_run_statsd + :type: string + :default: True + + Run the ``haproxy-statsd`` docker container to report back-end + stats to graphite.opendev.org diff --git a/playbooks/roles/haproxy/defaults/main.yaml b/playbooks/roles/haproxy/defaults/main.yaml new file mode 100644 index 0000000000..4a6c122618 --- /dev/null +++ b/playbooks/roles/haproxy/defaults/main.yaml @@ -0,0 +1 @@ +haproxy_run_statsd: True \ No newline at end of file diff --git a/playbooks/roles/haproxy/tasks/main.yaml b/playbooks/roles/haproxy/tasks/main.yaml index 6854b94852..cf9f6b5c27 100644 --- a/playbooks/roles/haproxy/tasks/main.yaml +++ b/playbooks/roles/haproxy/tasks/main.yaml @@ -2,10 +2,7 @@ package: name: socat state: present -- name: Synchronize docker-compose directory - synchronize: - src: docker/ - dest: /etc/haproxy-docker/ + - name: Ensure registry volume directories exists file: state: directory @@ -15,19 +12,47 @@ loop: - etc - run + +- name: Ensure haproxy config template available + assert: + that: + - haproxy_config_template is defined + - name: Write haproxy config file template: - src: haproxy.cfg.j2 + src: '{{ haproxy_config_template }}' dest: /var/haproxy/etc/haproxy.cfg + owner: 1000 + group: 1000 + mode: 0644 + +- name: Ensure docker compose configuration directory + file: + path: /etc/haproxy-docker + state: directory + owner: root + group: root + mode: 0755 + +- name: Install docker-compose configuration + template: + src: docker-compose.yaml.j2 + dest: /etc/haproxy-docker/docker-compose.yaml + owner: root + group: root + mode: 0644 + notify: Reload haproxy - name: Run docker-compose pull shell: cmd: docker-compose pull chdir: /etc/haproxy-docker/ + - name: Run docker-compose up shell: cmd: docker-compose up -d chdir: /etc/haproxy-docker/ + - name: Run docker prune to cleanup unneeded images shell: cmd: docker image prune -f diff --git a/playbooks/roles/haproxy/files/docker/docker-compose.yaml b/playbooks/roles/haproxy/templates/docker-compose.yaml.j2 similarity index 98% rename from playbooks/roles/haproxy/files/docker/docker-compose.yaml rename to playbooks/roles/haproxy/templates/docker-compose.yaml.j2 index 4eb63e3ec7..2b8361b266 100644 --- a/playbooks/roles/haproxy/files/docker/docker-compose.yaml +++ b/playbooks/roles/haproxy/templates/docker-compose.yaml.j2 @@ -42,6 +42,8 @@ services: driver: syslog options: tag: "docker-haproxy" + +{% if haproxy_run_statsd %} haproxy-statsd: restart: always image: docker.io/opendevorg/haproxy-statsd:latest @@ -56,3 +58,4 @@ services: driver: syslog options: tag: "docker-haproxy-statsd" +{% endif %} diff --git a/playbooks/service-gitea-lb.yaml b/playbooks/service-gitea-lb.yaml index 466c41392a..f0999c7d99 100644 --- a/playbooks/service-gitea-lb.yaml +++ b/playbooks/service-gitea-lb.yaml @@ -3,4 +3,4 @@ roles: - iptables - install-docker - - haproxy + - gitea-lb diff --git a/playbooks/zuul/templates/group_vars/gitea-lb.yaml.j2 b/playbooks/zuul/templates/group_vars/gitea-lb.yaml.j2 index c6fe4e26fc..9eb0f3f456 100644 --- a/playbooks/zuul/templates/group_vars/gitea-lb.yaml.j2 +++ b/playbooks/zuul/templates/group_vars/gitea-lb.yaml.j2 @@ -1,4 +1,4 @@ -haproxy_listeners: +gitea_lb_listeners: - name: balance_git_http bind: - ":::80"