60
60
const (
61
61
varURL = "url"
62
62
varToken = "token"
63
- varAgentToken = "agent-token"
64
- varAgentTokenFile = "agent-token-file"
65
- varAgentURL = "agent-url"
66
- varAgentAuth = "auth"
67
63
varHeader = "header"
68
64
varHeaderCommand = "header-command"
69
65
varNoOpen = "no-open"
@@ -201,7 +197,7 @@ func (r *RootCmd) RunWithSubcommands(subcommands []*serpent.Command) {
201
197
func (r * RootCmd )Command (subcommands []* serpent.Command ) (* serpent.Command ,error ) {
202
198
fmtLong := `Coder %s — A tool for provisioning self-hosted development environments with Terraform.
203
199
`
204
- hiddenAgentAuth := NewAgentAuth ()
200
+ hiddenAgentAuth := & AgentAuth {}
205
201
cmd := & serpent.Command {
206
202
Use :"coder [global-flags] <subcommand>" ,
207
203
Long :fmt .Sprintf (fmtLong ,buildinfo .Version ())+ FormatExamples (
@@ -652,42 +648,36 @@ type AgentAuth struct {
652
648
// Agent Client config
653
649
agentToken string
654
650
agentTokenFile string
655
- agentURL * url.URL
651
+ agentURL url.URL
656
652
agentAuth string
657
653
}
658
654
659
- func NewAgentAuth ()* AgentAuth {
660
- return & AgentAuth {
661
- agentURL :new (url.URL ),
662
- }
663
- }
664
-
665
655
func (a * AgentAuth )AttachOptions (cmd * serpent.Command ,hidden bool ) {
666
656
cmd .Options = append (cmd .Options , serpent.Option {
667
657
Name :"Agent Token" ,
668
658
Description :"An agent authentication token." ,
669
- Flag :varAgentToken ,
659
+ Flag :"agent-token" ,
670
660
Env :envAgentToken ,
671
661
Value :serpent .StringOf (& a .agentToken ),
672
662
Hidden :hidden ,
673
663
}, serpent.Option {
674
664
Name :"Agent Token File" ,
675
665
Description :"A file containing an agent authentication token." ,
676
- Flag :varAgentTokenFile ,
666
+ Flag :"agent-token-file" ,
677
667
Env :envAgentTokenFile ,
678
668
Value :serpent .StringOf (& a .agentTokenFile ),
679
669
Hidden :hidden ,
680
670
}, serpent.Option {
681
671
Name :"Agent URL" ,
682
672
Description :"URL for an agent to access your deployment." ,
683
- Flag :varAgentURL ,
673
+ Flag :"agent-url" ,
684
674
Env :envAgentURL ,
685
- Value :serpent .URLOf (a .agentURL ),
675
+ Value :serpent .URLOf (& a .agentURL ),
686
676
Hidden :hidden ,
687
677
}, serpent.Option {
688
678
Name :"Agent Auth" ,
689
679
Description :"Specify the authentication type to use for the agent." ,
690
- Flag :varAgentAuth ,
680
+ Flag :"auth" ,
691
681
Env :envAgentAuth ,
692
682
Default :"token" ,
693
683
Value :serpent .StringOf (& a .agentAuth ),
@@ -699,7 +689,7 @@ func (a *AgentAuth) AttachOptions(cmd *serpent.Command, hidden bool) {
699
689
// just like InitClient, but uses the agent token and URL instead.
700
690
func (a * AgentAuth )CreateClient (ctx context.Context ) (* agentsdk.Client ,error ) {
701
691
agentURL := a .agentURL
702
- if agentURL == nil || agentURL .String ()== "" {
692
+ if agentURL .String ()== "" {
703
693
return nil ,xerrors .Errorf ("%s must be set" ,envAgentURL )
704
694
}
705
695
@@ -719,7 +709,7 @@ func (a *AgentAuth) CreateClient(ctx context.Context) (*agentsdk.Client, error)
719
709
if token == "" {
720
710
return nil ,xerrors .Errorf ("CODER_AGENT_TOKEN or CODER_AGENT_TOKEN_FILE must be set for token auth" )
721
711
}
722
- return agentsdk .New (a .agentURL ,agentsdk .WithFixedToken (token )),nil
712
+ return agentsdk .New (& a .agentURL ,agentsdk .WithFixedToken (token )),nil
723
713
case "google-instance-identity" :
724
714
725
715
// This is *only* done for testing to mock client authentication.
@@ -729,9 +719,9 @@ func (a *AgentAuth) CreateClient(ctx context.Context) (*agentsdk.Client, error)
729
719
if gcpClientRaw != nil {
730
720
gcpClient ,_ = gcpClientRaw .(* metadata.Client )
731
721
}
732
- return agentsdk .New (a .agentURL ,agentsdk .WithGoogleInstanceIdentity ("" ,gcpClient )),nil
722
+ return agentsdk .New (& a .agentURL ,agentsdk .WithGoogleInstanceIdentity ("" ,gcpClient )),nil
733
723
case "aws-instance-identity" :
734
- client := agentsdk .New (a .agentURL ,agentsdk .WithAWSInstanceIdentity ())
724
+ client := agentsdk .New (& a .agentURL ,agentsdk .WithAWSInstanceIdentity ())
735
725
// This is *only* done for testing to mock client authentication.
736
726
// This will never be set in a production scenario.
737
727
var awsClient * http.Client
@@ -744,7 +734,7 @@ func (a *AgentAuth) CreateClient(ctx context.Context) (*agentsdk.Client, error)
744
734
}
745
735
return client ,nil
746
736
case "azure-instance-identity" :
747
- client := agentsdk .New (a .agentURL ,agentsdk .WithAzureInstanceIdentity ())
737
+ client := agentsdk .New (& a .agentURL ,agentsdk .WithAzureInstanceIdentity ())
748
738
// This is *only* done for testing to mock client authentication.
749
739
// This will never be set in a production scenario.
750
740
var azureClient * http.Client