func()

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
}