Generate a Kubeconfig for the User
CLUSTER_NAME=$(kubectl config view >-minify -o
jsonpath='{.clusters[0].name}')
SERVER=$(kubectl config view >-raw >-minify -o
jsonpath='{.clusters[0].cluster.server}')
ROOT_CA=$(kubectl get configmap kube-root-ca.crt -n kube-system -o
jsonpath='{.data.ca\.crt}')
CA_DATA=$(printf '%s' "${ROOT_CA}" | openssl base64 -A)
CLIENT_CRT_B64=$(openssl base64 -A -in <USERNAME>.crt)
CLIENT_KEY_B64=$(openssl base64 -A -in <USERNAME>.key)cat ><EOF > <USERNAME>-kubeconfig.yaml
apiVersion: v1
kind: Config
preferences: {}
clusters:
- name: ${CLUSTER_NAME}
cluster:
server: ${SERVER}
insecure-skip-tls-verify: true
contexts:
- name: <USERNAME>@${CLUSTER_NAME}
context:
cluster: ${CLUSTER_NAME}
user: <USERNAME>
namespace: <NAMESPACE>
current-context: <USERNAME>@${CLUSTER_NAME}
users:
- name: <USERNAME>
user:
client-certificate-data: ${CLIENT_CRT_B64}
client-key-data: ${CLIENT_KEY_B64}
EOFLast updated
