Skip to content

[raft/ci] CI Check with Raft cluster - #1695

Merged
mickmis merged 2 commits into
interuss:masterfrom
Orbitalize:raft-cluster-ci-test
Sep 30, 2026
Merged

mickmis merged 2 commits into
interuss:masterfrom
Orbitalize:raft-cluster-ci-test

Conversation

@MariemBaccari

@MariemBaccari MariemBaccari commented Sep 16, 2026 •

Copy link
Copy Markdown
Contributor

Adds a CI check for Raft (probe, qualify and security locally) that uses 3 nodes and a load balancer to distribute requests across them.

Implements #1703

@MariemBaccari
MariemBaccari marked this pull request as ready for review September 16, 2026 08:03
@MariemBaccari
MariemBaccari force-pushed the raft-cluster-ci-test branch 8 times, most recently from fa923a5 to a705e20 Compare September 28, 2026 07:57

@mickmis mickmis left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a bit conflicted by this: I see the value in running those tests on the clustered raft nodes in the CI of this repo, especially since now with raft it is significantly easier to do (no separate DB service or whatever).
However now it looks like by doing it that way we are just recreating little by little the stack of the monitoring repository and duplicating our testing stacks, which are getting pretty complex on top of that.

Given that we already have part of the DSS CI relying on the monitoring image for running the USS qualifier and prober, maybe it could make sense relying on it too (or the repo) for the deployment of the full testing stack...
WDYT? Interested in your input on this @BenjaminPelletier @barroco.

@MariemBaccari

Copy link
Copy Markdown
Contributor Author

@mickmis Just to add to what you already mentioned, I think having a way to test a cluster on the CI is important since we implement a consensus layer that can "easily" be broken. This was not the case with CRDB.

@barroco

barroco commented Sep 28, 2026

Copy link
Copy Markdown
Contributor

Given that we already have part of the DSS CI relying on the monitoring image for running the USS qualifier and prober, maybe it could make sense relying on it too (or the repo) for the deployment of the full testing stack...
WDYT?

The monitoring repository only contains test suites, which should cover as much as possible any DSS implementation. As we introduce the more specialized testing described in the design document, we will need additional infrastructure here, since it is highly implementation-specific.

@mickmis

mickmis commented Sep 29, 2026

Copy link
Copy Markdown
Contributor

FTR, discussed offline: for now let's duplicate the tooling from monitoring in this repo so that the two may stay relatively aligned while still benefiting from running the CI test on multi-nodes raft in this repo. In parallel discuss the strategy regarding the testing stack to come up with something that makes sense.

@MariemBaccari
MariemBaccari force-pushed the raft-cluster-ci-test branch 3 times, most recently from 508dd85 to 37c83da Compare September 29, 2026 12:15

@mickmis mickmis left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: partial review. IMO that's a bit too much changes and complexification on the existing scripts. I think we should be able to do that a bit differently and not have too refactor as much the existing scripts.
I'm not sure we need to keep the ports exposed strictly separated, they are not already as of now. I think it's reasonable to expect stopping down a stack before starting the other and that both cannot be fully live at the same time. However they should not interfere with each other when stopped: so a different docker compose project should be enough.

Comment thread build/dev/qualify_locally.sh
Comment thread build/dev/probe_locally.sh
Comment thread build/dev/ci_infra/docker-compose.yaml Outdated
Comment on lines +23 to +25
- "195${PADDED_NODE_IDX:?}:95${PADDED_NODE_IDX:?}"
- "196${PADDED_NODE_IDX:?}:96${PADDED_NODE_IDX:?}"
- "197${PADDED_NODE_IDX:?}:97${PADDED_NODE_IDX:?}"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not for this PR, but those ports are required because of each service (rid, scd, aux) right?
IMO we should try to reduce that to one port, that really simplifies deployment. Could you open an issue regarding that?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Opened #1735 to track this although I'm not sure yet how it would work exactly.

@mickmis mickmis left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM modulo minor comments.
I will make a commit with those changes.

Comment thread Makefile Outdated
Comment thread .github/workflows/ci.yml Outdated
@mickmis
mickmis merged commit 49bda8e into interuss:master Sep 30, 2026
20 checks passed
@mickmis
mickmis deleted the raft-cluster-ci-test branch September 30, 2026 09:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants