in pkg/cmd/serviceaccount/create.go [23:59]
func newCreateCmd(authProvider auth.Provider) *cobra.Command {
createRunner := workflow.NewPhaseRunner()
data := &createData{
authProvider: authProvider,
}
cmd := &cobra.Command{
Use: "create",
RunE: func(cmd *cobra.Command, args []string) error {
return createRunner.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.DurationVar(&data.serviceAccountTokenExpiration, options.ServiceAccountTokenExpiration.Flag, time.Duration(webhook.DefaultServiceAccountTokenExpiration)*time.Second, options.ServiceAccountTokenExpiration.Description)
f.StringVar(&data.aadApplicationName, options.AADApplicationName.Flag, "", options.AADApplicationName.Description)
f.StringVar(&data.aadApplicationClientID, options.AADApplicationClientID.Flag, "", options.AADApplicationClientID.Description)
f.StringVar(&data.aadApplicationObjectID, options.AADApplicationObjectID.Flag, "", options.AADApplicationObjectID.Description)
f.StringVar(&data.servicePrincipalName, options.ServicePrincipalName.Flag, "", options.ServicePrincipalName.Description)
f.StringVar(&data.servicePrincipalObjectID, options.ServicePrincipalObjectID.Flag, "", options.ServicePrincipalObjectID.Description)
f.StringVar(&data.azureScope, options.AzureScope.Flag, "", options.AzureScope.Description)
f.StringVar(&data.azureRole, options.AzureRole.Flag, "", options.AzureRole.Description)
// append phases in order
createRunner.AppendPhases(
phases.NewAADApplicationPhase(),
phases.NewServiceAccountPhase(),
phases.NewFederatedIdentityPhase(),
phases.NewRoleAssignmentPhase(),
)
createRunner.BindToCommand(cmd, data)
return cmd
}