Skip to content

Commit e48206b

Browse files
authored
Create create-certs.sh
1 parent 81e4a7d commit e48206b

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

create-certs.sh

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
### A generator script to create self-signed certificates and Kubernetes secret for local development purpose, required mkcert and kubectl
2+
#!/bin/bash
3+
4+
set -o errexit
5+
set -o nounset
6+
set -o pipefail
7+
set -o errtrace
8+
9+
PRODUCT=buildkit
10+
DIR=./.certs
11+
if [[ "$#" -lt 1 ]]; then
12+
echo "Usage: $0 SAN [SAN...]"
13+
echo
14+
echo "Example: $0 buildkitd.default.svc 127.0.0.1"
15+
echo
16+
echo "The following files will be created under ${DIR}"
17+
echo "- daemon/{ca.pem,cert.pem,key.pem}"
18+
echo "- client/{ca.pem,cert.pem,key.pem}"
19+
echo "- ${PRODUCT}-daemon-certs.yaml"
20+
echo "- ${PRODUCT}-client-certs.yaml"
21+
echo "- SAN"
22+
exit 1
23+
fi
24+
if ! command -v mkcert >/dev/null; then
25+
echo "Missing mkcert (https://github.com/FiloSottile/mkcert)"
26+
exit 1
27+
fi
28+
SAN=$@
29+
SAN_CLIENT=client
30+
31+
mkdir -p $DIR ${DIR}/daemon ${DIR}/client
32+
(
33+
cd $DIR
34+
echo $SAN | tr " " "\n" >SAN
35+
CAROOT=$(pwd) mkcert -cert-file daemon/cert.pem -key-file daemon/key.pem ${SAN} >/dev/null 2>&1
36+
CAROOT=$(pwd) mkcert -client -cert-file client/cert.pem -key-file client/key.pem ${SAN_CLIENT} >/dev/null 2>&1
37+
cp -f rootCA.pem daemon/ca.pem
38+
cp -f rootCA.pem client/ca.pem
39+
rm -f rootCA.pem rootCA-key.pem
40+
41+
kubectl create secret generic ${PRODUCT}-daemon-certs --dry-run=client -o yaml --from-file=./daemon >${PRODUCT}-daemon-certs.yaml
42+
kubectl create secret generic ${PRODUCT}-client-certs --dry-run=client -o yaml --from-file=./client >${PRODUCT}-client-certs.yaml
43+
)

0 commit comments

Comments
 (0)