From 37de78ca9f2ec564358e9a168467a530514471e4 Mon Sep 17 00:00:00 2001 From: jurgenhaas <juergen@paragon-es.de> Date: Mon, 25 Apr 2022 14:55:20 +0200 Subject: [PATCH] gitlab-ci-cd/drupal#10 - add support for basic auth --- src/Handler.php | 12 ++++++++++++ templates/docker-compose.yml.twig | 8 ++++++++ 2 files changed, 20 insertions(+) diff --git a/src/Handler.php b/src/Handler.php index e1d670c..14afa21 100644 --- a/src/Handler.php +++ b/src/Handler.php @@ -36,6 +36,12 @@ class Handler extends BaseHandler { $options = [ 'projectname' => $projectname, 'staging' => FALSE, + 'basicauth' => [ + 'enabled' => FALSE, + 'user' => ',', + 'pass' => ',', + 'code' => ',', + ], 'ci_home' => '/home/gitlab-runner', 'docker0' => [ 'ip' => ($this->isCiContext() || $this->isLocalDevMode()) ? @@ -231,6 +237,12 @@ class Handler extends BaseHandler { 'projectprotocol' => 'https', 'projectport' => '', 'extradomains' => $config->readValue('aliases'), + 'basicauth' => [ + 'enabled' => (getenv('BASIC_AUTH') === 'yes'), + 'user' => getenv('BASIC_AUTH_USER'), + 'pass' => getenv('BASIC_AUTH_PASS'), + 'code' => getenv('BASIC_AUTH_CODE'), + ], ]; foreach ($overwriteConfig as $key => $value) { $this->config->setValue($key, $value, FALSE); diff --git a/templates/docker-compose.yml.twig b/templates/docker-compose.yml.twig index 4cf8e83..449ca84 100644 --- a/templates/docker-compose.yml.twig +++ b/templates/docker-compose.yml.twig @@ -129,6 +129,10 @@ services: labels: traefik.enable: 'true' traefik.docker.network: traefik-public +{% if basicauth.enabled %} + traefik.http.middlewares.{{ webserver.type }}-{{ projectname }}-auth.basicauth.users: {{ basicauth.code }} + traefik.http.routers.{{ webserver.type }}-{{ projectname }}.middlewares: {{ webserver.type }}-{{ projectname }}-auth@docker +{% endif %} traefik.http.routers.{{ webserver.type }}-{{ projectname }}.rule: Host(`{{ projectdomain }}`){% for domain in extradomains|default([]) %} || Host(`{{ domain }}`){% endfor %} {% if varnish.enable %} @@ -231,6 +235,10 @@ services: labels: traefik.enable: 'true' traefik.docker.network: traefik-public +{% if basicauth.enabled %} + traefik.http.middlewares.mailhog-{{ projectname }}-auth.basicauth.users: {{ basicauth.code }} + traefik.http.routers.mailhog-{{ projectname }}.middlewares: mailhog-{{ projectname }}-auth@docker +{% endif %} traefik.http.services.{{ projectname }}_mailhog.loadbalancer.server.port: 8025 traefik.http.routers.mailhog-{{ projectname }}.rule: Host(`mailhog-{{ projectdomain }}`) {% endif %} -- GitLab