32 lines
883 B
Bash
Executable File
32 lines
883 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
cluster_name=sandbox
|
|
namespace=default
|
|
service_account=demo-readonly
|
|
server=http://0.0.0.0:58253
|
|
|
|
secret_name=$(kubectl --namespace $namespace get serviceaccount $service_account -o jsonpath='{.secrets[0].name}')
|
|
ca=$(kubectl --namespace $namespace get secret/$secret_name -o jsonpath='{.data.ca\.crt}')
|
|
token=$(kubectl --namespace $namespace get secret/$secret_name -o jsonpath='{.data.token}' | base64 --decode)
|
|
|
|
echo "apiVersion: v1
|
|
kind: Config
|
|
clusters:
|
|
- name: ${cluster_name}
|
|
cluster:
|
|
certificate-authority-data: ${ca}
|
|
server: ${server}
|
|
contexts:
|
|
- name: ${service_account}@${cluster_name}
|
|
context:
|
|
cluster: ${cluster_name}
|
|
namespace: ${namespace}
|
|
user: ${service_account}
|
|
users:
|
|
- name: ${service_account}
|
|
user:
|
|
token: ${token}
|
|
current-context: ${service_account}@${cluster_name}
|
|
"
|