in pkg/cmd/serviceaccount/phases/create/serviceaccount.go [74:97]
func (p *serviceAccountPhase) run(ctx context.Context, data workflow.RunData) error {
createData := data.(CreateData)
// TODO(aramase) make the update behavior configurable. If the service account already exists, fail if --overwrite is not specified
err := kuberneteshelper.CreateOrUpdateServiceAccount(
ctx,
p.kubeClient,
createData.ServiceAccountNamespace(),
createData.ServiceAccountName(),
createData.AADApplicationClientID(),
createData.AzureTenantID(),
createData.ServiceAccountTokenExpiration(),
)
if err != nil {
return errors.Wrap(err, "failed to create kubernetes service account")
}
mlog.WithValues(
"namespace", createData.ServiceAccountNamespace(),
"name", createData.ServiceAccountName(),
).WithName(serviceAccountPhaseName).Info("created kubernetes service account")
return nil
}