in pkg/cmd/serviceaccount/delete.go [28:65]
func newDeleteCmd(authProvider auth.Provider) *cobra.Command {
deleteRunner := workflow.NewPhaseRunner()
data := &deleteData{
authProvider: authProvider,
}
cmd := &cobra.Command{
Use: "delete",
RunE: func(cmd *cobra.Command, args []string) error {
// if we are running the AAD application delete phase, we can
// slightly optimize the delete command by skipping the federated-identity
// phase because it will get removed when the AAD application is removed.
if deleteRunner.IsPhaseActive(aadApplicationPhase) {
deleteRunner.AppendSkipPhases(federatedIdentityPhase)
}
return deleteRunner.Run(data)
},
}
f := cmd.Flags()
f.StringVar(&data.serviceAccountName, options.ServiceAccountName.Flag, "", options.ServiceAccountName.Description)
f.StringVar(&data.serviceAccountNamespace, options.ServiceAccountNamespace.Flag, "default", options.ServiceAccountNamespace.Description)
f.StringVar(&data.serviceAccountIssuerURL, options.ServiceAccountIssuerURL.Flag, "", options.ServiceAccountIssuerURL.Description)
f.StringVar(&data.aadApplicationName, options.AADApplicationName.Flag, "", options.AADApplicationName.Description)
f.StringVar(&data.aadApplicationObjectID, options.AADApplicationObjectID.Flag, "", options.AADApplicationObjectID.Description)
f.StringVar(&data.roleAssignmentID, options.RoleAssignmentID.Flag, "", options.RoleAssignmentID.Description)
// append phases in order
deleteRunner.AppendPhases(
roleAssignmentPhase,
federatedIdentityPhase,
serviceAccountPhase,
aadApplicationPhase,
)
deleteRunner.BindToCommand(cmd, data)
return cmd
}