aboutsummaryrefslogtreecommitdiff
path: root/docker
diff options
context:
space:
mode:
Diffstat (limited to 'docker')
-rw-r--r--docker/base/Dockerfile.j25
-rw-r--r--docker/base/copy_cacerts.sh27
-rw-r--r--docker/base/start.sh3
-rw-r--r--docker/base/sudoers3
4 files changed, 37 insertions, 1 deletions
diff --git a/docker/base/Dockerfile.j2 b/docker/base/Dockerfile.j2
index 6b4d5dd6e..170885346 100644
--- a/docker/base/Dockerfile.j2
+++ b/docker/base/Dockerfile.j2
@@ -230,6 +230,7 @@ RUN yum-config-manager --enable rhel-7-server-optional-rpms \
{% block base_redhat_binary_versionlock %}{% endblock %}
{% if install_type == 'binary' %}
{% set base_centos_binary_packages = [
+ 'ca-certificates',
'findutils',
'iproute',
'iscsi-initiator-utils',
@@ -259,6 +260,7 @@ RUN yum-config-manager --enable rhel-7-server-optional-rpms \
{% if install_type == 'source' %}
{% set base_centos_source_packages = [
+ 'ca-certificates',
'curl',
'iproute',
'iscsi-initiator-utils',
@@ -429,6 +431,7 @@ RUN sed -i -e "s+#\!/usr/bin/env python+#\!/usr/bin/env python3+g" /usr/local/bi
{% endif %}
COPY start.sh /usr/local/bin/kolla_start
+COPY copy_cacerts.sh /usr/local/bin/kolla_copy_cacerts
COPY sudoers /etc/sudoers
COPY curlrc /root/.curlrc
@@ -461,7 +464,7 @@ ENTRYPOINT ["dumb-init", "--single-child", "--"]
{% endif %}
RUN touch /usr/local/bin/kolla_extend_start \
- && chmod 755 /usr/local/bin/kolla_start /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_set_configs \
+ && chmod 755 /usr/local/bin/kolla_start /usr/local/bin/kolla_extend_start /usr/local/bin/kolla_set_configs /usr/local/bin/kolla_copy_cacerts \
&& chmod 440 /etc/sudoers \
&& mkdir -p /var/log/kolla \
&& chown :kolla /var/log/kolla \
diff --git a/docker/base/copy_cacerts.sh b/docker/base/copy_cacerts.sh
new file mode 100644
index 000000000..aa0dd679a
--- /dev/null
+++ b/docker/base/copy_cacerts.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+# Copy custom CA certificates to system trusted CA certificates folder
+# and run CA update utility
+
+# Remove old certificates
+rm -f /usr/local/share/ca-certificates/kolla-customca-* \
+ /etc/pki/ca-trust/source/anchors/kolla-customca-*
+
+if [[ -d /var/lib/kolla/config_files/ca-certificates ]] && \
+ [[ ! -z "$(ls -A /var/lib/kolla/config_files/ca-certificates/)" ]]; then
+ if [[ -e /etc/debian_version ]]; then
+ # Debian, Ubuntu
+ for cert in /var/lib/kolla/config_files/ca-certificates/*; do
+ file=$(basename "$cert")
+ cp $cert "/usr/local/share/ca-certificates/kolla-customca-$file"
+ done
+ update-ca-certificates
+ elif [[ -e /etc/redhat-release ]]; then
+ # CentOS, RHEL
+ for cert in /var/lib/kolla/config_files/ca-certificates/*; do
+ file=$(basename "$cert")
+ cp $cert "/etc/pki/ca-trust/source/anchors/kolla-customca-$file"
+ done
+ update-ca-trust
+ fi
+fi
diff --git a/docker/base/start.sh b/docker/base/start.sh
index 34a6e5397..b7ecc22ae 100644
--- a/docker/base/start.sh
+++ b/docker/base/start.sh
@@ -9,6 +9,9 @@ sudo -E kolla_set_configs
CMD=$(cat /run_command)
ARGS=""
+# Install/remove custom CA certificates
+sudo kolla_copy_cacerts
+
if [[ ! "${!KOLLA_SKIP_EXTEND_START[@]}" ]]; then
# Run additional commands if present
. kolla_extend_start
diff --git a/docker/base/sudoers b/docker/base/sudoers
index 76baefcb0..da9c04c30 100644
--- a/docker/base/sudoers
+++ b/docker/base/sudoers
@@ -15,4 +15,7 @@ root ALL=(ALL) ALL
# root user via sudo without password confirmation
%kolla ALL=(root) NOPASSWD: /usr/local/bin/kolla_set_configs
+# Copy custom CA certificates to containers
+%kolla ALL=(root) NOPASSWD: /usr/local/bin/kolla_copy_cacerts
+
#includedir /etc/sudoers.d