Commit fa33469c authored by Pierre Smeyers's avatar Pierre Smeyers
Browse files

feat: support CA certs provided as file

parent c042671e
Loading
Loading
Loading
Loading
+15 −6
Original line number Diff line number Diff line
@@ -398,7 +398,16 @@ stages:
    exit 1
  }

  function install_custom_ca_certs() {
  function as_content() {
    file_or_content=$1
    if [[ -f "${file_or_content}" ]]; then
      cat "${file_or_content}"
    else
      echo "${file_or_content}"
    fi
  }

  function install_ca_certs() {
    certs="${CUSTOM_CA_CERTS:-$DEFAULT_CA_CERTS}"
    if [[ -z "$certs" ]]
    then
@@ -407,21 +416,21 @@ stages:
    # import in system for regular linux (Ubuntu, Debian) image
    if [[ -w /etc/ssl/certs/ca-certificates.crt ]]
    then
      echo "$certs" | tr -d '\r' >> /etc/ssl/certs/ca-certificates.crt
      as_content "$certs" | tr -d '\r' >> /etc/ssl/certs/ca-certificates.crt
      log_info "Custom CA certificates imported in \\e[33;1m/etc/ssl/certs/ca-certificates.crt\\e[0m"
    # import in system for regular linux (Fedora, RHEL) image (e.g. Skopeo image)
    elif [[ -f /etc/ssl/certs/ca-bundle.crt ]]
    then
      echo "$certs" | tr -d '\r' >> /etc/ssl/certs/ca-bundle.crt
      as_content "$certs" | tr -d '\r' >> /etc/ssl/certs/ca-bundle.crt
      log_info "Custom CA certificates imported in \\e[33;1m/etc/ssl/certs/ca-bundle.crt\\e[0m"
    # kaniko image : specific directory for ca certificates, no standard import tool
    elif [[ -d /kaniko/ssl/certs ]]
    then
      echo "$certs" | tr -d '\r' >> /kaniko/ssl/certs/ca-certificates.crt
      as_content "$certs" | tr -d '\r' >> /kaniko/ssl/certs/ca-certificates.crt
      log_info "Custom CA certificates imported in \\e[33;1m/kaniko/ssl/certs/ca-certificates.crt\\e[0m"
    # for syft : loaded with environment variable
    else
      echo "$certs" | tr -d '\r' >> /tmp/ca-certificates.crt
      as_content "$certs" | tr -d '\r' >> /tmp/ca-certificates.crt
      log_info "Custom CA certificates imported in \\e[33;1m/tmp/ca-certificates.crt\\e[0m"
    fi
  }
@@ -871,7 +880,7 @@ stages:
  }

  function init_workspace() {
    install_custom_ca_certs
    install_ca_certs
    maybe_install_awk
    unscope_variables
    eval_all_secrets