Application may sometimes require non-expiring token in ./kube/config.
This article provides guidance on how to generate non-expiring token.
VMware Supervisor 8.x
Kubernetes version 1.24 and later
The default kubeconfig file in a VMware vSphere with Tanzu Kubernetes Guest Cluster contains a token which expires after ten hours.
Deploy non-expiring token via followings:
kubectl create serviceaccount <account name> -n kube-systemkubectl create clusterrolebinding <role binding name> --serviceaccount=kube-system:<account name> --clusterrole=cluster-adminapiVersion: v1kind: Secrettype: kubernetes.io/service-account-tokenmetadata: name: <account name> namespace: kube-system annotations: kubernetes.io/service-account.name: "<account name>"kubectl apply -f <filename create above.yaml>SECRET=$(kubectl get secrets <account name> -n kube-system -ojsonpath='{.metadata.name}')TOKEN=$(kubectl get secret $SECRET -n kube-system -ojsonpath='{.data.token}' | base64 -d)kubectl get secrets $SECRET -n kube-system -o jsonpath='{.data.ca\.crt}' | base64 -d > ./ca.crtkubectl config --kubeconfig=$TO_BE_CREATED_KUBECONFIG_FILE set-cluster $CLUSTER --server=$URL --certificate-authority=./ca.crt --embed-certs=truekubectl config --kubeconfig=$TO_BE_CREATED_KUBECONFIG_FILE set-credentials <account name> --token=$TOKEN kubectl config --kubeconfig=$TO_BE_CREATED_KUBECONFIG_FILE set-context $CONTEXT --cluster=$CLUSTER --user=<account name>kubectl config --kubeconfig=$TO_BE_CREATED_KUBECONFIG_FILE use-context $CONTEXT