Skip to content

Commit 29edf81

Browse files
committed
kvtenant: move kv tenant connector out of ccl
This change moves the kv tenant connector out of `kvtenantccl` to enable wider test coverage of multi-tenant outside `ccl`. There are now two versions of the kv tenant connector factory, one that provides a connector that only connects clients to a loopback address, and another that will allow both loopback and remote addresses. If the loopback version is used in the wrong context an error will be returned explaining license requirements. To assist with testing, utilities have been added to instantiate the required kv connector factory. Tests requiring a kv connector that can connect to remote nodes can use a testing only factory that is available outside `ccl`. Existing tests that fell into this category, and depended on `ccl`, have been updated to use the appropriate utility and connector. This change does not yet remove the license check for maybe starting a tenant when a test server is started, since this will most likely break various existing tests and will require a larger change to fix, it will be done separately. Additionally, there are a few other places where `TenantKVAddrs` is populated with a loopback address, and we can rather favour the new `TenantLoopbackAddr` to better let the connector factory know that it's only making a loopback connection and choose the correct logic accordingly. This will be implemented as part of the test changes mentioned above. Resolves: #98226 Epic: CRDB-16091
1 parent bd2eaeb commit 29edf81

49 files changed

Lines changed: 1176 additions & 1103 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

pkg/BUILD.bazel

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ ALL_TESTS = [
4242
"//pkg/ccl/kvccl/kvfollowerreadsccl:kvfollowerreadsccl_test",
4343
"//pkg/ccl/kvccl/kvtenantccl/upgradeccl:upgradeccl_test",
4444
"//pkg/ccl/kvccl/kvtenantccl/upgradeinterlockccl:upgradeinterlockccl_test",
45-
"//pkg/ccl/kvccl/kvtenantccl:kvtenantccl_test",
4645
"//pkg/ccl/logictestccl/tests/3node-tenant-multiregion:3node-tenant-multiregion_test",
4746
"//pkg/ccl/logictestccl/tests/3node-tenant:3node-tenant_test",
4847
"//pkg/ccl/logictestccl/tests/5node:5node_test",
@@ -188,6 +187,7 @@ ALL_TESTS = [
188187
"//pkg/kv/kvclient/kvcoord:kvcoord_disallowed_imports_test",
189188
"//pkg/kv/kvclient/kvcoord:kvcoord_test",
190189
"//pkg/kv/kvclient/kvstreamer:kvstreamer_test",
190+
"//pkg/kv/kvclient/kvtenant:kvtenant_test",
191191
"//pkg/kv/kvclient/rangecache:rangecache_test",
192192
"//pkg/kv/kvclient/rangefeed/rangefeedbuffer:rangefeedbuffer_test",
193193
"//pkg/kv/kvclient/rangefeed/rangefeedcache:rangefeedcache_test",
@@ -785,7 +785,6 @@ GO_TARGETS = [
785785
"//pkg/ccl/kvccl/kvtenantccl/upgradeccl:upgradeccl_test",
786786
"//pkg/ccl/kvccl/kvtenantccl/upgradeinterlockccl:upgradeinterlockccl_test",
787787
"//pkg/ccl/kvccl/kvtenantccl:kvtenantccl",
788-
"//pkg/ccl/kvccl/kvtenantccl:kvtenantccl_test",
789788
"//pkg/ccl/kvccl:kvccl",
790789
"//pkg/ccl/logictestccl/tests/3node-tenant-multiregion:3node-tenant-multiregion_test",
791790
"//pkg/ccl/logictestccl/tests/3node-tenant:3node-tenant_test",
@@ -1203,6 +1202,7 @@ GO_TARGETS = [
12031202
"//pkg/kv/kvclient/kvstreamer:kvstreamer",
12041203
"//pkg/kv/kvclient/kvstreamer:kvstreamer_test",
12051204
"//pkg/kv/kvclient/kvtenant:kvtenant",
1205+
"//pkg/kv/kvclient/kvtenant:kvtenant_test",
12061206
"//pkg/kv/kvclient/rangecache/rangecachemock:rangecachemock",
12071207
"//pkg/kv/kvclient/rangecache:rangecache",
12081208
"//pkg/kv/kvclient/rangecache:rangecache_test",

pkg/ccl/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ go_library(
1515
"//pkg/ccl/gssapiccl",
1616
"//pkg/ccl/jwtauthccl",
1717
"//pkg/ccl/kvccl",
18+
"//pkg/ccl/kvccl/kvtenantccl",
1819
"//pkg/ccl/multiregionccl",
1920
"//pkg/ccl/multitenantccl",
2021
"//pkg/ccl/oidcccl",

pkg/ccl/ccl_init.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
_ "github.com/cockroachdb/cockroach/pkg/ccl/gssapiccl"
2121
_ "github.com/cockroachdb/cockroach/pkg/ccl/jwtauthccl"
2222
_ "github.com/cockroachdb/cockroach/pkg/ccl/kvccl"
23+
_ "github.com/cockroachdb/cockroach/pkg/ccl/kvccl/kvtenantccl"
2324
_ "github.com/cockroachdb/cockroach/pkg/ccl/multiregionccl"
2425
_ "github.com/cockroachdb/cockroach/pkg/ccl/multitenantccl"
2526
_ "github.com/cockroachdb/cockroach/pkg/ccl/oidcccl"
Lines changed: 4 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -1,108 +1,15 @@
11
load("//build/bazelutil/unused_checker:unused.bzl", "get_x_data")
2-
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
2+
load("@io_bazel_rules_go//go:def.bzl", "go_library")
33

44
go_library(
55
name = "kvtenantccl",
66
srcs = [
7-
"connector.go",
8-
"rangedesc_iter.go",
9-
"setting_overrides.go",
7+
"connector_factory.go",
8+
"test_utils.go",
109
],
1110
importpath = "github.com/cockroachdb/cockroach/pkg/ccl/kvccl/kvtenantccl",
1211
visibility = ["//visibility:public"],
13-
deps = [
14-
"//pkg/config",
15-
"//pkg/config/zonepb",
16-
"//pkg/gossip",
17-
"//pkg/kv",
18-
"//pkg/kv/kvclient/kvcoord",
19-
"//pkg/kv/kvclient/kvtenant",
20-
"//pkg/kv/kvclient/rangecache",
21-
"//pkg/kv/kvpb",
22-
"//pkg/roachpb",
23-
"//pkg/rpc",
24-
"//pkg/server/serverpb",
25-
"//pkg/settings",
26-
"//pkg/spanconfig",
27-
"//pkg/ts/tspb",
28-
"//pkg/util/contextutil",
29-
"//pkg/util/errorutil",
30-
"//pkg/util/grpcutil",
31-
"//pkg/util/hlc",
32-
"//pkg/util/log",
33-
"//pkg/util/rangedesc",
34-
"//pkg/util/retry",
35-
"//pkg/util/syncutil",
36-
"//pkg/util/syncutil/singleflight",
37-
"//pkg/util/uuid",
38-
"@com_github_cockroachdb_errors//:errors",
39-
"@com_github_cockroachdb_errors//errorspb",
40-
"@org_golang_google_grpc//:go_default_library",
41-
"@org_golang_google_grpc//codes",
42-
"@org_golang_google_grpc//status",
43-
],
44-
)
45-
46-
go_test(
47-
name = "kvtenantccl_test",
48-
size = "large",
49-
srcs = [
50-
"connector_test.go",
51-
"main_test.go",
52-
"setting_overrides_test.go",
53-
"tenant_kv_test.go",
54-
"tenant_range_lookup_test.go",
55-
"tenant_scan_range_descriptors_test.go",
56-
"tenant_trace_test.go",
57-
],
58-
args = ["-test.timeout=895s"],
59-
embed = [":kvtenantccl"],
60-
shard_count = 16,
61-
tags = ["ccl_test"],
62-
deps = [
63-
"//pkg/base",
64-
"//pkg/ccl",
65-
"//pkg/config",
66-
"//pkg/gossip",
67-
"//pkg/keys",
68-
"//pkg/kv/kvclient/kvcoord",
69-
"//pkg/kv/kvclient/kvtenant",
70-
"//pkg/kv/kvclient/rangecache",
71-
"//pkg/kv/kvpb",
72-
"//pkg/kv/kvserver",
73-
"//pkg/kv/kvserver/kvserverbase",
74-
"//pkg/kv/kvserver/load",
75-
"//pkg/roachpb",
76-
"//pkg/rpc",
77-
"//pkg/security",
78-
"//pkg/security/securityassets",
79-
"//pkg/security/securitytest",
80-
"//pkg/server",
81-
"//pkg/settings",
82-
"//pkg/sql",
83-
"//pkg/testutils",
84-
"//pkg/testutils/serverutils",
85-
"//pkg/testutils/sqlutils",
86-
"//pkg/testutils/testcluster",
87-
"//pkg/util",
88-
"//pkg/util/grpcutil",
89-
"//pkg/util/hlc",
90-
"//pkg/util/leaktest",
91-
"//pkg/util/log",
92-
"//pkg/util/netutil",
93-
"//pkg/util/protoutil",
94-
"//pkg/util/randutil",
95-
"//pkg/util/rangedesc",
96-
"//pkg/util/retry",
97-
"//pkg/util/stop",
98-
"//pkg/util/tracing/tracingpb",
99-
"//pkg/util/uuid",
100-
"@com_github_cockroachdb_redact//:redact",
101-
"@com_github_stretchr_testify//assert",
102-
"@com_github_stretchr_testify//require",
103-
"@org_golang_google_grpc//codes",
104-
"@org_golang_google_grpc//status",
105-
],
12+
deps = ["//pkg/kv/kvclient/kvtenant"],
10613
)
10714

10815
get_x_data(name = "get_x_data")

0 commit comments

Comments
 (0)