Skip to content

Instantly share code, notes, and snippets.

@trusch
Created August 9, 2018 09:38
Show Gist options
  • Save trusch/c18ce3964c6a5cbbc89158e6b9ba4ed5 to your computer and use it in GitHub Desktop.
Save trusch/c18ce3964c6a5cbbc89158e6b9ba4ed5 to your computer and use it in GitHub Desktop.
#!/bin/bash
NAMESPACE=usecaseapp
SERVICE=usecaseapp
cat <<EOF | cfssl genkey - | cfssljson -bare server
{
"hosts": [
"${SERVICE}.${NAMESPACE}.svc.cluster.local"
],
"CN": "${SERVICE}.${NAMESPACE}.svc.cluster.local",
"key": {
"algo": "ecdsa",
"size": 256
}
}
EOF
cat <<EOF | kubectl -n ${NAMESPACE} create -f -
apiVersion: certificates.k8s.io/v1beta1
kind: CertificateSigningRequest
metadata:
name: ${SERVICE}.${NAMESPACE}
spec:
groups:
- system:authenticated
request: $(cat server.csr | base64 | tr -d '\n')
usages:
- digital signature
- key encipherment
- server auth
EOF
kubectl -n ${NAMESPACE} certificate approve ${SERVICE}.${NAMESPACE}
kubectl -n ${NAMESPACE} get csr ${SERVICE}.${NAMESPACE} -o jsonpath='{.status.certificate}' \
| base64 --decode > server.crt
kubectl -n ${NAMESPACE} create secret generic ${SERVICE}-keys --from-file=cert.pem=server.crt --from-file=key.pem=server-key.pem
exit $?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment