in pkg/internal/token/execCredentialWriter.go [31:69]
func (*execCredentialWriter) Write(accessToken azcore.AccessToken, writer io.Writer) error {
apiVersionFromEnv, err := getAPIVersionFromExecInfoEnv()
if err != nil {
return err
}
// Support both apiVersions of client.authentication.k8s.io/v1beta1 and client.authentication.k8s.io/v1
var ec interface{}
t := metav1.NewTime(accessToken.ExpiresOn)
switch apiVersionFromEnv {
case apiV1beta1:
ec = &v1beta1.ExecCredential{
TypeMeta: metav1.TypeMeta{
APIVersion: apiV1beta1,
Kind: "ExecCredential",
},
Status: &v1beta1.ExecCredentialStatus{
Token: accessToken.Token,
ExpirationTimestamp: &t,
},
}
case apiV1:
ec = &v1.ExecCredential{
TypeMeta: metav1.TypeMeta{
APIVersion: apiV1,
Kind: "ExecCredential",
},
Status: &v1.ExecCredentialStatus{
Token: accessToken.Token,
ExpirationTimestamp: &t,
},
}
}
e := json.NewEncoder(writer)
if err := e.Encode(ec); err != nil {
return fmt.Errorf("could not write the ExecCredential: %w", err)
}
return nil
}