Skip to content

Commit deaf09d

Browse files
authored
chore: improve service account token management (#1)
1 parent 2a5d9bd commit deaf09d

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
.idea/
2+
.envrc

src/kubeconfig-generator.sh

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,25 @@ get_sa_details() {
3333
kubernetesVersion=$(kubectl version --short | grep Server | awk '{print $3}')
3434

3535
if [[ "$kubernetesVersion" > "v1.23" ]]; then
36-
ca=$(kubectl config view --minify --raw --output 'jsonpath={..cluster.certificate-authority-data}')
37-
token=$(kubectl --namespace "$namespace" create token "$serviceAccount")
36+
secretName="$serviceAccount"-sa-token
37+
cat <<EOF | kubectl apply -f -
38+
apiVersion: v1
39+
kind: Secret
40+
metadata:
41+
name: "$secretName"
42+
namespace: "$namespace"
43+
annotations:
44+
kubernetes.io/service-account.name: "$serviceAccount"
45+
type: kubernetes.io/service-account-token
46+
EOF
47+
echo "Giving the service account token some time to be generated..."
48+
sleep 10
3849
else
3950
secretName=$(kubectl --namespace "$namespace" get serviceAccount "$serviceAccount" -o jsonpath='{.secrets[0].name}')
40-
ca=$(kubectl --namespace "$namespace" get secret "$secretName" -o jsonpath='{.data.ca\.crt}')
41-
token=$(kubectl --namespace "$namespace" get secret "$secretName" -o jsonpath='{.data.token}' | base64 --decode)
4251
fi
52+
53+
ca=$(kubectl --namespace "$namespace" get secret "$secretName" -o jsonpath='{.data.ca\.crt}')
54+
token=$(kubectl --namespace "$namespace" get secret "$secretName" -o jsonpath='{.data.token}' | base64 --decode)
4355
}
4456

4557
render_kubeconfig() {

0 commit comments

Comments
 (0)