func svcAcctJWT()

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
}