11#! /usr/bin/env bash
2+
23# TODO: needs refactoring to work with kind
34# Initialization
45# shellcheck disable=SC1001,SC2215
@@ -16,70 +17,62 @@ CONTAINER_CLIENT="${CONTAINER_EXECUTABLE:-$TNF_CONTAINER_CLIENT}"
1617CERT_EXE_UBUNTU=update-ca-certificates
1718CERT_EXE_REDHAT=update-ca-trust
1819echo " $( which $CERT_EXE_UBUNTU 2> /dev/null) " ]
19- if [[ -n " $( which $CERT_EXE_UBUNTU 2> /dev/null) " ]];
20- then
21- echo " Running on Ubuntu Linux"
22- CERT_UPDATER=$CERT_EXE_UBUNTU
23- CERT_PATH=/usr/local/share/ca-certificates/$REGISTRY_NAME .crt
24-
25- elif [[ -n " $( which $CERT_EXE_REDHAT 2> /dev/null) " ]];
26- then
27- echo " Running on Redhat/Fedora Linux"
28- CERT_UPDATER=$CERT_EXE_REDHAT
29- CERT_PATH=/etc/pki/ca-trust/source/anchors/$REGISTRY_NAME .crt
20+ if [[ -n " $( which $CERT_EXE_UBUNTU 2> /dev/null) " ]]; then
21+ echo " Running on Ubuntu Linux"
22+ CERT_UPDATER=$CERT_EXE_UBUNTU
23+ CERT_PATH=/usr/local/share/ca-certificates/$REGISTRY_NAME .crt
24+ elif [[ -n " $( which $CERT_EXE_REDHAT 2> /dev/null) " ]]; then
25+ echo " Running on Redhat/Fedora Linux"
26+ CERT_UPDATER=$CERT_EXE_REDHAT
27+ CERT_PATH=/etc/pki/ca-trust/source/anchors/$REGISTRY_NAME .crt
3028else
31- echo " OS unknown, don't know how to update certificates"
32- exit 1
29+ echo " OS unknown, don't know how to update certificates"
30+ exit 1
3331fi
34-
32+
3533# Create certificates for registry authentication
3634rm -rf " $SCRIPT_DIR " /certs
3735mkdir " $SCRIPT_DIR " /certs
38- openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout " $SCRIPT_DIR " /certs/registry.key -out " $SCRIPT_DIR " /certs/registry.crt -subj " /CN=registry" -addext " subjectAltName=DNS:${REGISTRY_NAME} ,IP:127.0.0.1"
36+ openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout " $SCRIPT_DIR " /certs/registry.key -out " $SCRIPT_DIR " /certs/registry.crt -subj " /CN=registry" -addext " subjectAltName=DNS:${REGISTRY_NAME} ,IP:127.0.0.1"
3937openssl x509 -in " $SCRIPT_DIR " /certs/registry.crt -out " $SCRIPT_DIR " /certs/registry.pem -outform PEM
4038chmod 666 " $SCRIPT_DIR " /certs/*
4139
4240# Enable the new certificates for use in the current host
43- sudo cp " $SCRIPT_DIR " /certs/registry.crt " $CERT_PATH "
41+ sudo cp " $SCRIPT_DIR " /certs/registry.crt " $CERT_PATH "
4442sudo $CERT_UPDATER
4543
46-
4744# Add the hostname to /etc/hosts
4845# shellcheck disable=SC2143 # Use grep -q.
49- if [ -z " $( grep " $REGISTRY_NAME " /etc/hosts) " ]
50- then
51- REGISTRY_ADDRESS=$( hostname -I| awk ' {print $1}' )
52- echo REGISTRY_ADDRESS= " $REGISTRY_ADDRESS "
53- sudo REGISTRY_ADDRESS1=" $REGISTRY_ADDRESS " REGISTRY1=" $REGISTRY_NAME " sh -c ' echo "$REGISTRY_ADDRESS1 $REGISTRY1" >> /etc/hosts'
46+ if [ -z " $( grep " $REGISTRY_NAME " /etc/hosts) " ]; then
47+ REGISTRY_ADDRESS=$( hostname -I | awk ' {print $1}' )
48+ echo REGISTRY_ADDRESS= " $REGISTRY_ADDRESS "
49+ sudo REGISTRY_ADDRESS1=" $REGISTRY_ADDRESS " REGISTRY1=" $REGISTRY_NAME " sh -c ' echo "$REGISTRY_ADDRESS1 $REGISTRY1" >> /etc/hosts'
5450else
55- echo " entry already present"
51+ echo " entry already present"
5652fi
5753cat /etc/hosts
5854
59-
6055# Delete previous Registry
6156${CONTAINER_CLIENT} rm -f registry
6257
6358# Copy the certificate to the minikube directory for use by minikube
6459mkdir -p " $HOME " /.minikube/certs
65- cp " $SCRIPT_DIR " /certs/registry.pem " $HOME " /.minikube/certs/.
60+ cp " $SCRIPT_DIR " /certs/registry.pem " $HOME " /.minikube/certs/.
6661
67- # Remove the docker registry
62+ # Remove the docker registry
6863${CONTAINER_CLIENT} rm -f registry
6964
7065# Create the docker registry
71- ${CONTAINER_CLIENT} run -d \ L inux
72- -v " $( pwd) " /" $SCRIPT_DIR " /certs:/certs:Z \
73- -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
74- -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.crt \
75- -e REGISTRY_HTTP_TLS_KEY=/certs/registry.key \
76- -p 443:443 \
77- registry:2
66+ ${CONTAINER_CLIENT} run -d Linux \
67+ -v " $( pwd) " /" $SCRIPT_DIR " /certs:/certs:Z \
68+ -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
69+ -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.crt \
70+ -e REGISTRY_HTTP_TLS_KEY=/certs/registry.key \
71+ -p 443:443 \
72+ registry:2
7873
79- # Restart docker
80- if [ " ${CONTAINER_CLIENT} " = " docker" ];
81- then
82- sudo systemctl restart docker
74+ # Restart docker
75+ if [ " ${CONTAINER_CLIENT} " = " docker" ]; then
76+ sudo systemctl restart docker
8377fi
84-
8578echo " Created local registry at: ${REGISTRY_NAME} :443"
0 commit comments