Files
threshold/internal/cmd/commands/workerscmd/controller-led_funcs.go
T
Jeff MitchellandIrena Rindos 01fb949d0b Add controller-led worker auth flow (#2413)
This adds an action to the API that allows pulling out an activation
token that can be given to a worker in its config (directly or via env
or file). The worker can pass this along with its normal request in
place of its normal nonce and the server will automatically accept it.

Co-authored-by: Irena Rindos <irenarindos@users.noreply.github.com>
2022-09-02 14:32:41 -04:00

41 lines
1.3 KiB
Go

package workerscmd
import (
"github.com/hashicorp/boundary/api"
"github.com/hashicorp/boundary/api/workers"
"github.com/hashicorp/boundary/internal/cmd/base"
)
func init() {
executeExtraControllerLedActions = executeExtraControllerLedActionsImpl
}
func (c *ControllerLedCommand) extraControllerLedHelpFunc(helpMap map[string]func() string) string {
var helpStr string
switch c.Func {
case "create":
helpStr = base.WrapForHelpText([]string{
"Usage: boundary workers create controller-led [options] [args]",
"",
" Create a worker using the controller-led approach, receiving an activation token for a worker. Example:",
"",
` $ boundary workers create controller-led -name us-east-1-1 "`,
"",
"",
})
}
return helpStr + c.Flags().Help()
}
func executeExtraControllerLedActionsImpl(c *ControllerLedCommand, origResp *api.Response, origItem *workers.Worker, origError error, workerClient *workers.Client, version uint32, opts []workers.Option) (*api.Response, *workers.Worker, error) {
switch c.Func {
case "create":
result, err := workerClient.CreateControllerLed(c.Context, c.FlagScopeId, opts...)
if err != nil {
return nil, nil, err
}
return result.GetResponse(), result.GetItem(), nil
}
return origResp, origItem, origError
}