Skip to content

Instantly share code, notes, and snippets.

@ams0
Created February 20, 2019 21:15
Show Gist options
  • Select an option

  • Save ams0/500b79c421fba244b7c3e3636aaa5919 to your computer and use it in GitHub Desktop.

Select an option

Save ams0/500b79c421fba244b7c3e3636aaa5919 to your computer and use it in GitHub Desktop.
create a serviceaccount and its kubeconfig (works on macOS)
#!/bin/bash
$saname=$1
k create sa $saname
#works on Mac OS X
server=`kubectl cluster-info | sed $'s,\x1b\\[[0-9;]*[a-zA-Z],,g'| grep master | awk '{print $6}'`
name=`kubectl get secret | grep $saname|awk '{print $1}'`
ca=$(kubectl get secret/$name -o jsonpath='{.data.ca\.crt}')
token=$(kubectl get secret/$name -o jsonpath='{.data.token}' | base64 --decode)
namespace=$(kubectl get secret/$name -o jsonpath='{.data.namespace}' | base64 -D)
echo "
apiVersion: v1
kind: Config
clusters:
- name: default-cluster
cluster:
certificate-authority-data: ${ca}
server: ${server}
contexts:
- name: default-context
context:
cluster: default-cluster
namespace: default
user: default-user
current-context: default-context
users:
- name: default-user
user:
token: ${token}
" > sa.kubeconfig
#optional
#kubectl create clusterrolebinding $saname --clusterrole=cluster-admin --serviceaccount=default:$saname
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment