in appconfigmgrv2/api/webhooks/builtins/common.go [176:216]
func svcAcctJWT(ctx context.Context, name, namespace string) (string, error) {
log.Info("common:svcAcctJWT")
var (
err error
cl = localMgr.GetClient()
secret = &corev1.Secret{}
svcAccount = &corev1.ServiceAccount{}
)
log.Info("common:svcAcctJWT:secret", "name", name, "namespace", namespace)
// get service account
err = cl.Get(ctx, types.NamespacedName{Name: name, Namespace: namespace}, svcAccount)
if err != nil {
log.Error(err, "get ServiceAccount")
return "", fmt.Errorf("%s serviceAccount not found in %s namespace", name, namespace)
}
if len(svcAccount.Secrets) == 0 {
return "", fmt.Errorf("%s serviceAccount token not found", name)
}
log.Info("common:svcAcctJWT:secret:value", "name", name, "namespace", namespace)
ref := svcAccount.Secrets[0]
// get service account token secret
err = cl.Get(ctx, types.NamespacedName{Name: ref.Name, Namespace: namespace}, secret)
if err != nil {
return "", fmt.Errorf("%s serviceAccount token not found: %s", name, err)
}
b := string(secret.Data["token"])
//b, err := base64.StdEncoding.DecodeString(string(secret.Data["token"]))
//if err != nil {
// return "", err
//}
return b, nil
}