in aks-node-controller/app.go [55:85]
func (a *App) run(ctx context.Context, args []string) error {
if len(args) < 2 {
return errors.New("missing command argument")
}
switch args[1] {
case "provision":
fs := flag.NewFlagSet("provision", flag.ContinueOnError)
provisionConfig := fs.String("provision-config", "", "path to the provision config file")
dryRun := fs.Bool("dry-run", false, "print the command that would be run without executing it")
err := fs.Parse(args[2:])
if err != nil {
return fmt.Errorf("parse args: %w", err)
}
if provisionConfig == nil || *provisionConfig == "" {
return errors.New("--provision-config is required")
}
if dryRun != nil && *dryRun {
a.cmdRunner = cmdRunnerDryRun
}
return a.Provision(ctx, ProvisionFlags{ProvisionConfig: *provisionConfig})
case "provision-wait":
provisionStatusFiles := ProvisionStatusFiles{ProvisionJSONFile: provisionJSONFilePath, ProvisionCompleteFile: provisionCompleteFilePath}
provisionOutput, err := a.ProvisionWait(ctx, provisionStatusFiles)
//nolint:forbidigo // stdout is part of the interface
fmt.Println(provisionOutput)
slog.Info("provision-wait finished", "provisionOutput", provisionOutput)
return err
default:
return fmt.Errorf("unknown command: %s", args[1])
}
}