Skip to content

Commit 2490d7c

Browse files
committed
feat: add support for kubernetes version > 1.23
1 parent 1dc78bc commit 2490d7c

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ A simple script for generating kubeconfig for a provided service account
99

1010
</div>
1111

12+
> :warning: Starting from Kubernetes version 1.24 ServiceAccount token secrets are no longer automatically created. You can read more about it [here](https://kubernetes.io/docs/concepts/configuration/secret/#service-account-token-secrets).
13+
1214
## Requirements
1315
- kubectl
1416

src/kubeconfig-generator.sh

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,23 @@ get_cluster_details() {
2828

2929
get_sa_details() {
3030
local secretName
31+
local kubernetesVersion
3132

32-
secretName=$(kubectl --namespace "$namespace" get serviceAccount "$serviceAccount" -o jsonpath='{.secrets[0].name}')
33-
ca=$(kubectl --namespace "$namespace" get secret "$secretName" -o jsonpath='{.data.ca\.crt}')
34-
token=$(kubectl --namespace "$namespace" get secret "$secretName" -o jsonpath='{.data.token}' | base64 --decode)
33+
kubernetesVersion=$(kubectl version --short | grep Server | awk '{print $3}')
34+
35+
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")
38+
else
39+
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)
42+
fi
3543
}
3644

3745
render_kubeconfig() {
3846
echo "Rendering kubeconfig..."
39-
cat > kubeconfig <<EOF
47+
cat > "${clusterName}"-kubeconfig <<EOF
4048
apiVersion: v1
4149
kind: Config
4250
clusters:

0 commit comments

Comments
 (0)