mirror of https://github.com/k3s-io/k3s
create kubelet client cert with correct group
parent
25dd8cbd94
commit
8360bc1a9f
|
@ -932,9 +932,20 @@ function generate-certs {
|
|||
tar xzf easy-rsa.tar.gz
|
||||
cd easy-rsa-master/easyrsa3
|
||||
./easyrsa init-pki
|
||||
# this puts the cert into pki/ca.crt and the key into pki/private/ca.key
|
||||
./easyrsa --batch "--req-cn=${PRIMARY_CN}@$(date +%s)" build-ca nopass
|
||||
./easyrsa --subject-alt-name="${SANS}" build-server-full "${MASTER_NAME}" nopass
|
||||
./easyrsa build-client-full kubelet nopass
|
||||
|
||||
download-cfssl
|
||||
|
||||
# make the config for the signer
|
||||
echo '{"signing":{"default":{"expiry":"43800h","usages":["signing","key encipherment","client auth"]}}}' > "ca-config.json"
|
||||
# create the kubelet client cert with the correct groups
|
||||
echo '{"CN":"kubelet","names":[{"O":"system:nodes"}],"hosts":[""],"key":{"algo":"rsa","size":2048}}' | "${KUBE_TEMP}/cfssl/cfssl" gencert -ca=pki/ca.crt -ca-key=pki/private/ca.key -config=ca-config.json - | "${KUBE_TEMP}/cfssl/cfssljson" -bare kubelet
|
||||
mv "kubelet-key.pem" "pki/private/kubelet.key"
|
||||
mv "kubelet.pem" "pki/issued/kubelet.crt"
|
||||
rm -f "kubelet.csr"
|
||||
|
||||
./easyrsa build-client-full kubecfg nopass) &>${cert_create_debug_output} || {
|
||||
# If there was an error in the subshell, just die.
|
||||
# TODO(roberthbailey): add better error handling here
|
||||
|
|
|
@ -726,6 +726,38 @@ function get-master-disk-size() {
|
|||
fi
|
||||
}
|
||||
|
||||
# Downloads cfssl into ${KUBE_TEMP}/cfssl directory
|
||||
#
|
||||
# Assumed vars:
|
||||
# KUBE_TEMP: temporary directory
|
||||
#
|
||||
function download-cfssl {
|
||||
mkdir -p "${KUBE_TEMP}/cfssl"
|
||||
pushd "${KUBE_TEMP}/cfssl"
|
||||
|
||||
kernel=$(uname -s)
|
||||
case "${kernel}" in
|
||||
Linux)
|
||||
curl -s -L -o cfssl https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
|
||||
curl -s -L -o cfssljson https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
|
||||
;;
|
||||
Darwin)
|
||||
curl -s -L -o cfssl https://pkg.cfssl.org/R1.2/cfssl_darwin-amd64
|
||||
curl -s -L -o cfssljson https://pkg.cfssl.org/R1.2/cfssljson_darwin-amd64
|
||||
;;
|
||||
*)
|
||||
echo "Unknown, unsupported platform: ${kernel}." >&2
|
||||
echo "Supported platforms: Linux, Darwin." >&2
|
||||
exit 2
|
||||
esac
|
||||
|
||||
chmod +x cfssl
|
||||
chmod +x cfssljson
|
||||
|
||||
popd
|
||||
}
|
||||
|
||||
|
||||
# Generates SSL certificates for etcd cluster. Uses cfssl program.
|
||||
#
|
||||
# Assumed vars:
|
||||
|
@ -749,28 +781,10 @@ function create-etcd-certs {
|
|||
local ca_cert=${2:-}
|
||||
local ca_key=${3:-}
|
||||
|
||||
mkdir -p "${KUBE_TEMP}/cfssl"
|
||||
download-cfssl
|
||||
|
||||
pushd "${KUBE_TEMP}/cfssl"
|
||||
|
||||
kernel=$(uname -s)
|
||||
case "${kernel}" in
|
||||
Linux)
|
||||
curl -s -L -o cfssl https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
|
||||
curl -s -L -o cfssljson https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
|
||||
;;
|
||||
Darwin)
|
||||
curl -s -L -o cfssl https://pkg.cfssl.org/R1.2/cfssl_darwin-amd64
|
||||
curl -s -L -o cfssljson https://pkg.cfssl.org/R1.2/cfssljson_darwin-amd64
|
||||
;;
|
||||
*)
|
||||
echo "Unknown, unsupported platform: ${kernel}." >&2
|
||||
echo "Supported platforms: Linux, Darwin." >&2
|
||||
exit 2
|
||||
esac
|
||||
|
||||
chmod +x cfssl
|
||||
chmod +x cfssljson
|
||||
|
||||
cat >ca-config.json <<EOF
|
||||
{
|
||||
"signing": {
|
||||
|
|
Loading…
Reference in New Issue