diff --git a/pkg/cmd/roachtest/option/options.go b/pkg/cmd/roachtest/option/options.go index b0beab4f00d9..40c4b9b71015 100644 --- a/pkg/cmd/roachtest/option/options.go +++ b/pkg/cmd/roachtest/option/options.go @@ -56,6 +56,22 @@ func DefaultStartSingleNodeOpts() StartOpts { return startOpts } +// DefaultStartVirtualClusterOpts returns StartOpts for starting an external +// process virtual cluster with the given tenant name and SQL instance. +func DefaultStartVirtualClusterOpts(tenantName string, sqlInstance int) StartOpts { + startOpts := StartOpts{RoachprodOpts: roachprod.DefaultStartOpts()} + startOpts.RoachprodOpts.Target = install.StartServiceForVirtualCluster + startOpts.RoachprodOpts.VirtualClusterName = tenantName + startOpts.RoachprodOpts.SQLInstance = sqlInstance + // We set the ports to 0 so that ports are assigned dynamically. This is a + // temporary workaround until we use dynamic port assignment as the default. + // See: https://github.com/cockroachdb/cockroach/issues/111052 + // TODO(herko): remove this once dynamic port assignment is the default. + startOpts.RoachprodOpts.SQLPort = 0 + startOpts.RoachprodOpts.AdminUIPort = 0 + return startOpts +} + // StopOpts is a type that combines the stop options needed by roachprod and roachtest. type StopOpts struct { // TODO(radu): we should use a higher-level abstraction instead of diff --git a/pkg/cmd/roachtest/tests/multitenant_distsql.go b/pkg/cmd/roachtest/tests/multitenant_distsql.go index bd0e0320d08d..0cf83d22cf77 100644 --- a/pkg/cmd/roachtest/tests/multitenant_distsql.go +++ b/pkg/cmd/roachtest/tests/multitenant_distsql.go @@ -73,17 +73,7 @@ func runMultiTenantDistSQL( for i := 0; i < numInstances; i++ { node := (i % c.Spec().NodeCount) + 1 sqlInstance := i / c.Spec().NodeCount - instStartOps := option.DefaultStartOpts() - instStartOps.RoachprodOpts.Target = install.StartServiceForVirtualCluster - instStartOps.RoachprodOpts.VirtualClusterName = tenantName - instStartOps.RoachprodOpts.SQLInstance = sqlInstance - // We set the ports to 0 so that ports are assigned dynamically. This is a - // temporary workaround until we use dynamic port assignment as the default. - // See: https://github.com/cockroachdb/cockroach/issues/111052 - // TODO(herko): remove this once dynamic port assignment is the default. - instStartOps.RoachprodOpts.SQLPort = 0 - instStartOps.RoachprodOpts.AdminUIPort = 0 - + instStartOps := option.DefaultStartVirtualClusterOpts(tenantName, sqlInstance) t.L().Printf("Starting instance %d on node %d", i, node) c.StartServiceForVirtualCluster(ctx, t.L(), c.Node(node), instStartOps, settings, storageNodes) nodes.Add(i + 1)