Skip to content

Instantly share code, notes, and snippets.

@superbrothers
Last active February 22, 2023 12:46
Show Gist options
  • Star 6 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save superbrothers/9bb1b7e00007395dc312e6e35f40931e to your computer and use it in GitHub Desktop.
Save superbrothers/9bb1b7e00007395dc312e6e35f40931e to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
set -e -o pipefail; [[ -n "$DEBUG" ]] && set -x
CERT_DIR="${CERT_DIR:-"/usr/local/share/ca-certificates"}"
function usage() {
echo "Usage: $(basename "$0") [-n name] certflie ..." >&2
}
while getopts n: OPT; do
case $OPT in
n) name="$OPTARG"
;;
*) usage
exit 1
;;
esac
done
shift "$((OPTIND - 1))"
name="${name:-"kind"}"
if [[ $# -eq 0 ]]; then
usage
exit 1
fi
containers="$(kind get nodes --name="$name" 2>/dev/null)"
if [[ "$containers" == "" ]]; then
echo "No kind nodes found for cluster \"$name\"" >&2
exit 1
fi
while IFS= read -r container; do
for certfile in "$@"; do
echo "Copying ${certfile} to ${container}:${CERT_DIR}"
docker cp "$certfile" "${container}:${CERT_DIR}"
done
echo "Updating CA certificates in ${container}..."
docker exec "$container" update-ca-certificates
echo "Restarting containerd"
docker exec "$container" systemctl restart containerd
done <<< "$containers"
# vim: ai ts=2 sw=2 et sts=2 ft=sh
@knowings
Copy link

knowings commented Mar 25, 2020

Hi,

First, Bravo for the script and I also vote for kind supporting this feature.

While I was struggling with certs, I fell on https://askubuntu.com/a/1159454 and I experienced exactly what is described: you must update /etc/ca-certificates.conf to make update-ca-certificates success. My 2 cents...

Best regards

@jamesdube
Copy link

This is what I need!!! Thanks a lot!!

@hesparza
Copy link

hesparza commented Apr 4, 2022

Thanks, this script has been helping me a lot

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment