aboutsummaryrefslogtreecommitdiff
path: root/docker/base/copy_cacerts.sh
blob: 213033c0c91a21a8fcd6b9af3287826b9284411c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#!/bin/bash

# Copy custom CA certificates to system trusted CA certificates folder
# and run CA update utility

if [[ -e "/etc/debian_version" ]]; then
    ca_dst_path="/usr/local/share/ca-certificates"
    update_command="update-ca-certificates"
elif [[ -e "/etc/redhat-release" ]]; then
    ca_dst_path="/etc/pki/ca-trust/source/anchors"
    update_command="update-ca-trust"
else
    echo "Unsupported OS"
    exit 1
fi

# Initialize update_needed variable
update_needed="false"

# Remove old certificates
if find /etc/ssl/certs/ \
        /usr/local/share/ca-certificates/ \
        /etc/pki/ca-trust/source/anchors/ \
        -name 'kolla*' -exec rm -f {} + 2>/dev/null; then
    update_needed="true"
fi

# Determine source path for CA certificates
if grep -q '"source": "/var/lib/kolla/share/ca-certificates"' /etc/kolla/defaults/state; then
    ca_src_path="/var/lib/kolla/share/ca-certificates"
else
    ca_src_path="/var/lib/kolla/config_files/ca-certificates"
fi

# Check if the source path exists and is not empty
if [[ -d ${ca_src_path} && $(ls -A "${ca_src_path}" 2>/dev/null) ]]; then
    # Copy certificates and update CA
    for cert in "${ca_src_path}"/*; do
        file=$(basename "${cert}")
        cp ${cert} ${ca_dst_path}/kolla-customca-${file}
        update_needed="true"
    done
fi

# Run the update command if needed
if [[ "${update_needed}" == "true" ]]; then
    ${update_command}
fi