diff options
| -rw-r--r-- | docker/haproxy/haproxy-ssh/Dockerfile.j2 | 40 | ||||
| -rw-r--r-- | docker/haproxy/haproxy-ssh/extend_start.sh | 16 | ||||
| -rw-r--r-- | docker/haproxy/haproxy/Dockerfile.j2 (renamed from docker/haproxy/Dockerfile.j2) | 0 | ||||
| -rw-r--r-- | docker/haproxy/haproxy/ensure_latest_config.sh (renamed from docker/haproxy/ensure_latest_config.sh) | 0 | ||||
| -rw-r--r-- | docker/letsencrypt/Dockerfile.j2 | 19 |
5 files changed, 69 insertions, 6 deletions
diff --git a/docker/haproxy/haproxy-ssh/Dockerfile.j2 b/docker/haproxy/haproxy-ssh/Dockerfile.j2 new file mode 100644 index 000000000..8eecc8891 --- /dev/null +++ b/docker/haproxy/haproxy-ssh/Dockerfile.j2 @@ -0,0 +1,40 @@ +FROM {{ namespace }}/{{ image_prefix }}base:{{ tag }} +{% block labels %} +LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}" +{% endblock %} + +{% block haproxy_ssh_header %}{% endblock %} + +{% import "macros.j2" as macros with context %} + +{{ macros.configure_user(name='haproxy', shell='/bin/bash') }} + +{% if base_package_type == 'rpm' %} + {% set haproxy_ssh_packages = [ + 'openssh-server', + 'openssh-clients', + ] %} + +# NOTE(mgoddard): The centos:8 image contains a /run/nologin file, which +# prevents SSH access to it. +RUN rm -f /run/nologin + +{% elif base_package_type == 'deb' %} + {% set haproxy_ssh_packages = [ + 'openssh-server', + 'openssh-client', + ] %} + +RUN mkdir -p /var/run/sshd \ + && chmod 0755 /var/run/sshd + +{% endif %} + +{{ macros.install_packages(haproxy_ssh_packages | customizable("packages")) }} + +COPY extend_start.sh /usr/local/bin/kolla_extend_start +RUN chmod 644 /usr/local/bin/kolla_extend_start \ + && sed -ri 's/session(\s+)required(\s+)pam_loginuid.so/session\1optional\2pam_loginuid.so/' /etc/pam.d/sshd + +{% block haproxy_ssh_footer %}{% endblock %} +{% block footer %}{% endblock %} diff --git a/docker/haproxy/haproxy-ssh/extend_start.sh b/docker/haproxy/haproxy-ssh/extend_start.sh new file mode 100644 index 000000000..d571e7292 --- /dev/null +++ b/docker/haproxy/haproxy-ssh/extend_start.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +SSH_HOST_KEY_TYPES=( "ecdsa" ) + +for key_type in ${SSH_HOST_KEY_TYPES[@]}; do + KEY_PATH=/etc/ssh/ssh_host_${key_type}_key + if [[ ! -f "${KEY_PATH}" ]]; then + ssh-keygen -q -t ${key_type} -f ${KEY_PATH} -N "" + fi +done + +mkdir -p /var/lib/haproxy/.ssh + +if [[ $(stat -c %U:%G /var/lib/haproxy/.ssh) != "haproxy:haproxy" ]]; then + sudo chown haproxy: /var/lib/haproxy/.ssh +fi diff --git a/docker/haproxy/Dockerfile.j2 b/docker/haproxy/haproxy/Dockerfile.j2 index 27d4c9189..27d4c9189 100644 --- a/docker/haproxy/Dockerfile.j2 +++ b/docker/haproxy/haproxy/Dockerfile.j2 diff --git a/docker/haproxy/ensure_latest_config.sh b/docker/haproxy/haproxy/ensure_latest_config.sh index 4b84f3aed..4b84f3aed 100644 --- a/docker/haproxy/ensure_latest_config.sh +++ b/docker/haproxy/haproxy/ensure_latest_config.sh diff --git a/docker/letsencrypt/Dockerfile.j2 b/docker/letsencrypt/Dockerfile.j2 index b344c6734..30062f0b0 100644 --- a/docker/letsencrypt/Dockerfile.j2 +++ b/docker/letsencrypt/Dockerfile.j2 @@ -5,25 +5,32 @@ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" {% import "macros.j2" as macros with context %} -{# NOTE(jkirsch): EPEL required for lego #} -{{ macros.enable_extra_repos(['epel']) }} - {% if base_package_type == 'rpm' %} {% set letsencrypt_packages = [ - 'certbot', + 'openssh-clients', 'cronie' ] %} {% elif base_package_type == 'deb' %} {% set letsencrypt_packages = [ - 'certbot', + 'openssh-client', 'cron' ] %} {% endif %} {{ macros.install_packages(letsencrypt_packages | customizable("packages")) }} - COPY extend_start.sh /usr/local/bin/kolla_extend_start RUN chmod 644 /usr/local/bin/kolla_extend_start +{% block lego_repository %} +ENV lego_version=4.6.0 +ENV lego_download_url=https://github.com/go-acme/lego/releases/download/v${lego_version}/lego_v${lego_version}_linux_{{debian_arch}}.tar.gz +{% endblock %} + +{% block lego_install %} +RUN curl -o /tmp/lego.tar.gz ${lego_download_url} \ + && tar xvf /tmp/lego.tar.gz -C /opt/ \ + && rm -f /tmp/lego.tar.gz +{% endblock %} + {% block letsencrypt_footer %}{% endblock %} {% block footer %}{% endblock %} |
