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

Commit0f342ec

Browse files
authored
feat: add provisioner tags to dynamic-parameters scaletest (#20435)
Since `coder exp scaletest dynamic-parameters` ends up creating template versions, provisioner tags may be required to create the template versions.On our own scaletest clusters, we tag every provisioner, so an untagged template version won't build and won't get imported.
1 parente62c5db commit0f342ec

File tree

3 files changed

+46
-27
lines changed

3 files changed

+46
-27
lines changed

‎cli/exp_scaletest_dynamicparameters.go‎

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ const (
2727
func (r*RootCmd)scaletestDynamicParameters()*serpent.Command {
2828
var (
2929
templateNamestring
30+
provisionerTags []string
3031
numEvalsint64
3132
tracingFlags=&scaletestTracingFlags{}
3233
prometheusFlags=&scaletestPrometheusFlags{}
@@ -56,6 +57,11 @@ func (r *RootCmd) scaletestDynamicParameters() *serpent.Command {
5657
returnxerrors.Errorf("template cannot be empty")
5758
}
5859

60+
tags,err:=ParseProvisionerTags(provisionerTags)
61+
iferr!=nil {
62+
returnerr
63+
}
64+
5965
org,err:=orgContext.Selected(inv,client)
6066
iferr!=nil {
6167
returnerr
@@ -99,7 +105,7 @@ func (r *RootCmd) scaletestDynamicParameters() *serpent.Command {
99105
}()
100106
tracer:=tracerProvider.Tracer(scaletestTracerName)
101107

102-
partitions,err:=dynamicparameters.SetupPartitions(ctx,client,org.ID,templateName,numEvals,logger)
108+
partitions,err:=dynamicparameters.SetupPartitions(ctx,client,org.ID,templateName,tags,numEvals,logger)
103109
iferr!=nil {
104110
returnxerrors.Errorf("setup dynamic parameters partitions: %w",err)
105111
}
@@ -160,6 +166,11 @@ func (r *RootCmd) scaletestDynamicParameters() *serpent.Command {
160166
Default:"100",
161167
Value:serpent.Int64Of(&numEvals),
162168
},
169+
{
170+
Flag:"provisioner-tag",
171+
Description:"Specify a set of tags to target provisioner daemons.",
172+
Value:serpent.StringArrayOf(&provisionerTags),
173+
},
163174
}
164175
orgContext.AttachOptions(cmd)
165176
output.attach(&cmd.Options)

‎scaletest/dynamicparameters/template.go‎

Lines changed: 23 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -168,30 +168,33 @@ type SDKForDynamicParametersSetup interface {
168168
// partitioner is an internal struct to hold context and arguments for partition setup
169169
// and to provide methods for all sub-steps.
170170
typepartitionerstruct {
171-
ctx context.Context
172-
clientSDKForDynamicParametersSetup
173-
orgID uuid.UUID
174-
templateNamestring
175-
numEvalsint64
176-
logger slog.Logger
171+
ctx context.Context
172+
clientSDKForDynamicParametersSetup
173+
orgID uuid.UUID
174+
templateNamestring
175+
provisionerTagsmap[string]string
176+
numEvalsint64
177+
logger slog.Logger
177178

178179
// for testing
179180
clock quartz.Clock
180181
}
181182

182183
funcSetupPartitions(
183184
ctx context.Context,clientSDKForDynamicParametersSetup,
184-
orgID uuid.UUID,templateNamestring,numEvalsint64,
185+
orgID uuid.UUID,templateNamestring,provisionerTagsmap[string]string,
186+
numEvalsint64,
185187
logger slog.Logger,
186188
) ([]Partition,error) {
187189
p:=&partitioner{
188-
ctx:ctx,
189-
client:client,
190-
orgID:orgID,
191-
templateName:templateName,
192-
numEvals:numEvals,
193-
logger:logger,
194-
clock:quartz.NewReal(),
190+
ctx:ctx,
191+
client:client,
192+
orgID:orgID,
193+
templateName:templateName,
194+
provisionerTags:provisionerTags,
195+
numEvals:numEvals,
196+
logger:logger,
197+
clock:quartz.NewReal(),
195198
}
196199
returnp.run()
197200
}
@@ -272,11 +275,12 @@ func (p *partitioner) createTemplateVersion(templateID uuid.UUID) (codersdk.Temp
272275

273276
// Create template version
274277
versionReq:= codersdk.CreateTemplateVersionRequest{
275-
TemplateID:templateID,
276-
FileID:uploadResp.ID,
277-
Message:"Initial version for scaletest dynamic parameters",
278-
StorageMethod:codersdk.ProvisionerStorageMethodFile,
279-
Provisioner:codersdk.ProvisionerTypeTerraform,
278+
TemplateID:templateID,
279+
FileID:uploadResp.ID,
280+
Message:"Initial version for scaletest dynamic parameters",
281+
StorageMethod:codersdk.ProvisionerStorageMethodFile,
282+
Provisioner:codersdk.ProvisionerTypeTerraform,
283+
ProvisionerTags:p.provisionerTags,
280284
}
281285
version,err:=p.client.CreateTemplateVersion(p.ctx,p.orgID,versionReq)
282286
iferr!=nil {

‎scaletest/dynamicparameters/template_internal_test.go‎

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,20 +70,22 @@ func TestSetupPartitions_TemplateExists(t *testing.T) {
7070
t:t,
7171
expectedTemplateName:"test-template",
7272
expectedOrgID:orgID,
73+
expectedTags:map[string]string{"foo":"bar"},
7374
matchedProvisioners:1,
7475
templateVersionJobStatus:codersdk.ProvisionerJobSucceeded,
7576
}
7677
mClock:=quartz.NewMock(t)
7778
trap:=mClock.Trap().TickerFunc("waitForTemplateVersionJobs")
7879
defertrap.Close()
7980
uut:=partitioner{
80-
ctx:ctx,
81-
client:fClient,
82-
orgID:orgID,
83-
templateName:"test-template",
84-
numEvals:600,
85-
logger:logger,
86-
clock:mClock,
81+
ctx:ctx,
82+
client:fClient,
83+
orgID:orgID,
84+
templateName:"test-template",
85+
provisionerTags:map[string]string{"foo":"bar"},
86+
numEvals:600,
87+
logger:logger,
88+
clock:mClock,
8789
}
8890
varpartitions []Partition
8991
errCh:=make(chanerror,1)
@@ -234,6 +236,7 @@ type fakeClient struct {
234236
expectedOrgID uuid.UUID
235237
templateByNameErrorerror
236238

239+
expectedTagsmap[string]string
237240
matchedProvisionersint
238241
templateVersionJobStatus codersdk.ProvisionerJobStatus
239242

@@ -270,6 +273,7 @@ func (f *fakeClient) CreateTemplate(ctx context.Context, orgID uuid.UUID, create
270273

271274
func (f*fakeClient)CreateTemplateVersion(ctx context.Context,orgID uuid.UUID,createReq codersdk.CreateTemplateVersionRequest) (codersdk.TemplateVersion,error) {
272275
f.templateVersionsCount++
276+
require.Equal(f.t,f.expectedTags,createReq.ProvisionerTags)
273277
return codersdk.TemplateVersion{
274278
ID:uuid.New(),
275279
Name:f.expectedTemplateName,

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp