Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commita8becfb

Browse files
authored
fix: improve log on provisioner daemon started with pk (#15588)
Resolve#15126 This PR aims to fetch the provisioned key details when starting aprovisioned daemon - for now in order to access the tags associated tothe provisioned key and display them accordingly in the starting logs.We do not want to change any other logic inside this PR as it wasalready working as expected.
1 parent32b4b77 commita8becfb

File tree

2 files changed

+85
-2
lines changed

2 files changed

+85
-2
lines changed

‎enterprise/cli/provisionerdaemonstart.go‎

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,22 @@ func (r *RootCmd) provisionerDaemonStart() *serpent.Command {
104104
returnerr
105105
}
106106

107+
displayedTags:=make(map[string]string,len(tags))
108+
ifprovisionerKey!="" {
109+
pkDetails,err:=client.GetProvisionerKey(ctx,provisionerKey)
110+
iferr!=nil {
111+
returnxerrors.New("unable to get provisioner key details")
112+
}
113+
114+
fork,v:=rangepkDetails.Tags {
115+
displayedTags[k]=v
116+
}
117+
}else {
118+
forkey,val:=rangetags {
119+
displayedTags[key]=val
120+
}
121+
}
122+
107123
ifname=="" {
108124
name=cliutil.Hostname()
109125
}
@@ -131,7 +147,7 @@ func (r *RootCmd) provisionerDaemonStart() *serpent.Command {
131147
defercloseLogger()
132148
}
133149

134-
iflen(tags)==0 {
150+
iflen(displayedTags)==0 {
135151
logger.Info(ctx,"note: untagged provisioners can only pick up jobs from untagged templates")
136152
}
137153

@@ -202,7 +218,7 @@ func (r *RootCmd) provisionerDaemonStart() *serpent.Command {
202218
defercloseFunc()
203219
}
204220

205-
logger.Info(ctx,"starting provisioner daemon",slog.F("tags",tags),slog.F("name",name))
221+
logger.Info(ctx,"starting provisioner daemon",slog.F("tags",displayedTags),slog.F("name",name))
206222

207223
connector:= provisionerd.LocalProvisioners{
208224
string(database.ProvisionerTypeTerraform):proto.NewDRPCProvisionerClient(terraformClient),

‎enterprise/cli/provisionerdaemonstart_test.go‎

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,73 @@ func TestProvisionerDaemon_ProvisionerKey(t *testing.T) {
294294
require.Equal(t,proto.CurrentVersion.String(),daemons[0].APIVersion)
295295
})
296296

297+
t.Run("OKWithTags",func(t*testing.T) {
298+
t.Parallel()
299+
300+
ctx,cancel:=context.WithTimeout(context.Background(),testutil.WaitLong)
301+
defercancel()
302+
client,user:=coderdenttest.New(t,&coderdenttest.Options{
303+
ProvisionerDaemonPSK:"provisionersftw",
304+
LicenseOptions:&coderdenttest.LicenseOptions{
305+
Features: license.Features{
306+
codersdk.FeatureExternalProvisionerDaemons:1,
307+
codersdk.FeatureMultipleOrganizations:1,
308+
},
309+
},
310+
})
311+
//nolint:gocritic // ignore This client is operating as the owner user, which has unrestricted permissions
312+
res,err:=client.CreateProvisionerKey(ctx,user.OrganizationID, codersdk.CreateProvisionerKeyRequest{
313+
Name:"dont-TEST-me",
314+
Tags:map[string]string{
315+
"tag1":"value1",
316+
"tag2":"value2",
317+
},
318+
})
319+
require.NoError(t,err)
320+
inv,conf:=newCLI(t,"provisionerd","start","--key",res.Key,"--name=matt-daemon")
321+
err=conf.URL().Write(client.URL.String())
322+
require.NoError(t,err)
323+
pty:=ptytest.New(t).Attach(inv)
324+
clitest.Start(t,inv)
325+
pty.ExpectNoMatchBefore(ctx,"check entitlement","starting provisioner daemon")
326+
pty.ExpectMatchContext(ctx,`tags={"tag1":"value1","tag2":"value2"}`)
327+
328+
vardaemons []codersdk.ProvisionerDaemon
329+
require.Eventually(t,func()bool {
330+
daemons,err=client.OrganizationProvisionerDaemons(ctx,user.OrganizationID,nil)
331+
iferr!=nil {
332+
returnfalse
333+
}
334+
returnlen(daemons)==1
335+
},testutil.WaitShort,testutil.IntervalSlow)
336+
require.Equal(t,"matt-daemon",daemons[0].Name)
337+
require.Equal(t,provisionersdk.ScopeOrganization,daemons[0].Tags[provisionersdk.TagScope])
338+
require.Equal(t,buildinfo.Version(),daemons[0].Version)
339+
require.Equal(t,proto.CurrentVersion.String(),daemons[0].APIVersion)
340+
})
341+
342+
t.Run("NoProvisionerKeyFound",func(t*testing.T) {
343+
t.Parallel()
344+
345+
ctx,cancel:=context.WithTimeout(context.Background(),testutil.WaitLong)
346+
defercancel()
347+
client,_:=coderdenttest.New(t,&coderdenttest.Options{
348+
ProvisionerDaemonPSK:"provisionersftw",
349+
LicenseOptions:&coderdenttest.LicenseOptions{
350+
Features: license.Features{
351+
codersdk.FeatureExternalProvisionerDaemons:1,
352+
codersdk.FeatureMultipleOrganizations:1,
353+
},
354+
},
355+
})
356+
357+
inv,conf:=newCLI(t,"provisionerd","start","--key","ThisKeyDoesNotExist","--name=matt-daemon")
358+
err:=conf.URL().Write(client.URL.String())
359+
require.NoError(t,err)
360+
err=inv.WithContext(ctx).Run()
361+
require.ErrorContains(t,err,"unable to get provisioner key details")
362+
})
363+
297364
t.Run("NoPSK",func(t*testing.T) {
298365
t.Parallel()
299366

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp