diff --git a/functions/kubernetes/setup_registry.sh b/functions/kubernetes/setup_registry.sh new file mode 100755 index 00000000..7b24b3e1 --- /dev/null +++ b/functions/kubernetes/setup_registry.sh @@ -0,0 +1,38 @@ +#!/bin/bash +# Check if ifconfig is present and use it to get the default IP +if command -v ifconfig &> /dev/null; then + default_ip=$(ifconfig | grep 'inet ' | grep -v 127.0.0.1 | awk '{print $2}') +# Check if ip is present and use it if ifconfig is not available +elif command -v ip &> /dev/null; then + default_ip=$(ip addr show | grep -oP 'inet \K[\d.]+' | sed -n '2p') +# If both tools are not available, error out +else + echo "Error: Neither ifconfig nor ip command found in the machine. Exiting.." + exit 1 +fi + + +read -p "Enter your node IP to use for cert generation (default is $default_ip): " custom_ip +# Use localhost as the default value +node_ip=${custom_ip:-$default_ip} + +echo "Using node IP: $node_ip to generate SSL certs!" + +mkdir -p certs + +# Generate CA key +openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/reg.key -x509 -days 365 -out certs/reg.crt -subj "/CN=$node_ip" + +# generate a random string +random_string=$(openssl rand -hex 3) + +echo "Starting docker registry with name shuffle-local-registry-$random_string.." + +docker run -d -p 5000:5000 --restart=always --name "shuffle-local-registry-$random_string" \ + -v $(pwd)/certs:/certs \ + -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/reg.crt \ + -e REGISTRY_HTTP_TLS_KEY=/certs/reg.key \ + registry:2 + +echo "Done!" +