Skip to content

Commit 4b6292b

Browse files
authored
Merge pull request #7206 from rabbitmq/khepri
Allow to use Khepri database to store metadata instead of Mnesia
2 parents 35110d8 + 0bbb188 commit 4b6292b

File tree

185 files changed

+14629
-1670
lines changed

Some content is hidden

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

185 files changed

+14629
-1670
lines changed

.github/workflows/test-mixed-versions.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,9 @@ jobs:
131131
matrix:
132132
otp_version_id:
133133
- "25_3"
134+
metadata_store:
135+
- mnesia
136+
- khepri
134137
timeout-minutes: 120
135138
steps:
136139
- name: CHECKOUT REPOSITORY
@@ -164,6 +167,7 @@ jobs:
164167
sudo ethtool -K eth0 tso off gso off gro off tx off rx off lro off
165168
bazelisk test //... \
166169
--config=rbe-${{ matrix.otp_version_id }} \
170+
--test_env RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} \
167171
--test_tag_filters=mixed-version-cluster,-aws,-docker \
168172
--build_tests_only \
169173
--verbose_failures

.github/workflows/test-windows.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ jobs:
1313
include:
1414
- erlang_version: "26.1"
1515
elixir_version: "1.15.2"
16+
metadata_store:
17+
- mnesia
18+
- khepri
1619
timeout-minutes: 120
1720
steps:
1821
- name: CHECKOUT REPOSITORY
@@ -57,6 +60,7 @@ jobs:
5760
run: |
5861
bazelisk test //... ^
5962
--config=buildbuddy ^
63+
--test_env RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} ^
6064
--test_tag_filters=-aws,-docker,-bats,-starts-background-broker,-dialyze ^
6165
--build_tests_only ^
6266
--verbose_failures

.github/workflows/test.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ jobs:
3737
otp_version_id:
3838
- 25_3
3939
- 26
40+
metadata_store:
41+
- mnesia
42+
- khepri
4043
timeout-minutes: 120
4144
steps:
4245
- name: CHECKOUT REPOSITORY
@@ -72,6 +75,7 @@ jobs:
7275
sudo ethtool -K eth0 tso off gso off gro off tx off rx off lro off
7376
bazelisk test //... \
7477
--config=rbe-${{ matrix.otp_version_id }} \
78+
--test_env RABBITMQ_METADATA_STORE=${{ matrix.metadata_store }} \
7579
--test_tag_filters=-aws,-docker,-mixed-version-cluster \
7680
--build_tests_only \
7781
--verbose_failures

MODULE.bazel

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,13 @@ erlang_package.hex_package(
263263
version = "1.3.3",
264264
)
265265

266+
erlang_package.git_package(
267+
name = "horus",
268+
build_file = "@rabbitmq-server//bazel:BUILD.horus",
269+
commit = "253f9af23e539b7370a5105df19dcbb66762b247",
270+
repository = "rabbitmq/horus",
271+
)
272+
266273
erlang_package.git_package(
267274
name = "jose",
268275
build_file = "@rabbitmq-server//bazel:BUILD.jose",
@@ -277,6 +284,20 @@ erlang_package.hex_package(
277284
version = "1.4.1",
278285
)
279286

287+
erlang_package.git_package(
288+
name = "khepri",
289+
build_file = "@rabbitmq-server//bazel:BUILD.khepri",
290+
commit = "952a52969eaa97a4327806b4fc062238dc3e6214",
291+
repository = "rabbitmq/khepri",
292+
)
293+
294+
erlang_package.git_package(
295+
name = "khepri_mnesia_migration",
296+
build_file = "@rabbitmq-server//bazel:BUILD.khepri_mnesia_migration",
297+
repository = "rabbitmq/khepri_mnesia_migration",
298+
commit = "ec891800b449f6a8fc975f959447039b3df343ed",
299+
)
300+
280301
erlang_package.hex_package(
281302
name = "thoas",
282303
build_file = "@rabbitmq-server//bazel:BUILD.thoas",
@@ -305,6 +326,22 @@ erlang_package.hex_package(
305326
version = "0.2.1",
306327
)
307328

329+
erlang_package.hex_package(
330+
name = "ra_alt",
331+
pkg = "ra",
332+
build_file = "@rabbitmq-server//bazel:BUILD.ra",
333+
sha256 = "f4dd317ab4030c0b14453bcf70179130f388dec35f7d59b6c7edcdfa25270397",
334+
version = "2.7.0",
335+
)
336+
337+
erlang_package.hex_package(
338+
name = "seshat_alt",
339+
pkg = "seshat",
340+
build_file = "@rabbitmq-server//bazel:BUILD.seshat",
341+
sha256 = "7cef700f92831dd7cae6a6dd223ccc55ac88ecce0631ee9ab0f2b5fb70e79b90",
342+
version = "0.6.0",
343+
)
344+
308345
erlang_package.hex_package(
309346
name = "ranch",
310347
build_file = "@rabbitmq-server//bazel:BUILD.ranch",
@@ -370,13 +407,18 @@ use_repo(
370407
"gen_batch_server",
371408
"getopt",
372409
"gun",
410+
"horus",
373411
"jose",
374412
"json",
413+
"khepri",
414+
"khepri_mnesia_migration",
375415
"observer_cli",
376416
"prometheus",
417+
"ra_alt",
377418
"ranch",
378419
"recon",
379420
"redbug",
421+
"seshat_alt",
380422
"stdout_formatter",
381423
"syslog",
382424
"sysmon_handler",

bazel/BUILD.horus

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
load("@rules_erlang//:erlang_bytecode2.bzl", "erlang_bytecode", "erlc_opts")
2+
load("@rules_erlang//:erlang_app.bzl", "erlang_app")
3+
4+
erlc_opts(
5+
name = "erlc_opts",
6+
values = select({
7+
"@rules_erlang//:debug_build": [
8+
"+debug_info",
9+
"+warn_export_vars",
10+
"+warnings_as_errors",
11+
],
12+
"//conditions:default": [
13+
"+debug_info",
14+
"+deterministic",
15+
"+warn_export_vars",
16+
"+warnings_as_errors",
17+
],
18+
}),
19+
visibility = [":__subpackages__"],
20+
)
21+
22+
erlang_bytecode(
23+
name = "other_beam",
24+
srcs = [
25+
"src/horus.erl",
26+
"src/horus_cover.erl",
27+
"src/horus_utils.erl",
28+
],
29+
hdrs = [":public_and_private_hdrs"],
30+
app_name = "horus",
31+
dest = "ebin",
32+
erlc_opts = "//:erlc_opts",
33+
)
34+
35+
filegroup(
36+
name = "beam_files",
37+
srcs = [":other_beam"],
38+
)
39+
40+
filegroup(
41+
name = "srcs",
42+
srcs = [
43+
"src/horus.app.src",
44+
"src/horus.erl",
45+
"src/horus_cover.erl",
46+
"src/horus_utils.erl",
47+
],
48+
)
49+
50+
filegroup(
51+
name = "private_hdrs",
52+
srcs = [
53+
"src/horus_error.hrl",
54+
"src/horus_fun.hrl",
55+
],
56+
)
57+
58+
filegroup(
59+
name = "public_hdrs",
60+
srcs = [
61+
"include/horus.hrl",
62+
],
63+
)
64+
65+
filegroup(
66+
name = "priv",
67+
srcs = [
68+
"priv/horus_cover_helper.erl",
69+
],
70+
)
71+
72+
filegroup(
73+
name = "license_files",
74+
srcs = [
75+
"LICENSE-Apache-2.0",
76+
"LICENSE-MPL-2.0",
77+
],
78+
)
79+
80+
filegroup(
81+
name = "public_and_private_hdrs",
82+
srcs = [
83+
":private_hdrs",
84+
":public_hdrs",
85+
],
86+
)
87+
88+
filegroup(
89+
name = "all_srcs",
90+
srcs = [
91+
":public_and_private_hdrs",
92+
":srcs",
93+
],
94+
)
95+
96+
erlang_app(
97+
name = "erlang_app",
98+
srcs = [":all_srcs"],
99+
hdrs = [":public_hdrs"],
100+
app_name = "horus",
101+
beam_files = [":beam_files"],
102+
extra_apps = [
103+
"compiler",
104+
"tools",
105+
],
106+
license_files = [":license_files"],
107+
priv = [":priv"],
108+
)
109+
110+
alias(
111+
name = "horus",
112+
actual = ":erlang_app",
113+
visibility = ["//visibility:public"],
114+
)

0 commit comments

Comments
 (0)