Skip to content

helm, info, status: Check and report reachability sequencer + refactor#6073

Merged
isegall-da merged 2 commits into
canton-network:mainfrom
giner:stas/helm_info_status_check_connectivity
Jul 16, 2026
Merged

helm, info, status: Check and report reachability sequencer + refactor#6073
isegall-da merged 2 commits into
canton-network:mainfrom
giner:stas/helm_info_status_check_connectivity

Conversation

@giner

@giner giner commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Possible status values:

  • Sequencer: 0 (reachable and not lagging), 1 (lagging), 2 (unreachable), 3 (unreachable and lagging).

@giner
giner force-pushed the stas/helm_info_status_check_connectivity branch from b376a39 to b4302e1 Compare June 22, 2026 10:21
@giner
giner force-pushed the stas/helm_info_status_check_connectivity branch from 96d24ab to 69a89d9 Compare June 22, 2026 10:43
@giner giner changed the title helm, info: Check and report reachability for scan and sequencer helm, info, status: Check and report reachability for scan and sequencer Jun 22, 2026
@giner
giner force-pushed the stas/helm_info_status_check_connectivity branch from 69a89d9 to 01a3ced Compare June 23, 2026 07:20
@isegall-da

Copy link
Copy Markdown
Contributor

/cluster_test

@github-actions

Copy link
Copy Markdown

Deploy cluster test triggered for Commit 01a3ced14e736c8d92fc1b7b9fb3d072cb36585b in , please contact a Contributor to approve it in CircleCI: https://app.circleci.com/pipelines/github/DACH-NY/canton-network-internal/71127

@isegall-da

Copy link
Copy Markdown
Contributor

/cluster_test

@github-actions

Copy link
Copy Markdown

Deploy cluster test triggered for Commit 01a3ced14e736c8d92fc1b7b9fb3d072cb36585b in , please contact a Contributor to approve it in CircleCI: https://app.circleci.com/pipelines/github/DACH-NY/canton-network-internal/null

@isegall-da

Copy link
Copy Markdown
Contributor

/cluster_test

@github-actions

Copy link
Copy Markdown

Deploy cluster test triggered for Commit 01a3ced14e736c8d92fc1b7b9fb3d072cb36585b in , please contact a Contributor to approve it in CircleCI: https://app.circleci.com/pipelines/github/DACH-NY/canton-network-internal/71265

@martinflorian-da

Copy link
Copy Markdown
Contributor

@martinflorian-da martinflorian-da added the static Used to label PRs for which static tests suffice label Jun 24, 2026

@martinflorian-da martinflorian-da 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 agree with Itai that this is hard to review. The downside of getting something wrong here is limited though IMO, so happy to rush this a bit to make the release cut tomorrow, and we can always fix things later on...

@giner I'll fix your merge conflict and set automerge now, so we get a little bit of more testing before the release cut.

Comment thread cluster/helm/splice-info/scripts/get-status.sh Outdated

@martinflorian-da martinflorian-da 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 actually need to retract my approval following some input from a watchful colleague ™️. Downloading remote binaries in a bash script is fairly sketchy from a supply chain security standpoint; at the very least I'd like us to review this with less haste.

How robust is that sha check against future code changes to this script, for example?

Perhaps the clean way is to use a different image that has grpcurl baked in?

@giner

giner commented Jun 24, 2026

Copy link
Copy Markdown
Contributor Author

I agree with Itai that this is hard to review.

Let me try to refactor it a bit on the next iteration (remove some verbose bash 3 compatibility stuff, split into smaller easier to read, self described pieces). If it's still hard to read after that I'll look into rewriting it Python.

@giner

giner commented Jun 24, 2026

Copy link
Copy Markdown
Contributor Author

Perhaps the clean way is to use a different image that has grpcurl baked in?

I couldn't find a good image containing all: jq, curl, prom2json and grpcurl. If downloading at runtime is no go we'll have to manage another image.

@moritzkiefer-da

Copy link
Copy Markdown
Contributor

There are two somewhat orthogonal issues for me:

  1. Downloading tools at runtime is a hard no for me here.
  2. grpcurl itself is in a bit of a dodgy state. If you look through the issue tracker there are a bunch of issues for dependencies with known vulnerabilities without a release that fixes it and it gets flagged by most docker image scanners. That's why we just removed it from the base image of all the actual apps. I'm not necessarily saying that those vulnerabilities do apply the way we use it here but I don't even want to have to reason about this and explain this every time an auditor runs a scan.

I suspect in most SVs setups the info pod has direct access to things like participant admin APIs so it is highly security critical so we definitely should err on the side of being overly cautious.

If we can build an image containing https://github.com/grpc-ecosystem/grpc-health-probe to get the same info, that seems like a reasonable option. I don't really know any other alternative that is well maintained and doesn't get flagged. We could write some custom python program or similar but at that point, I'd also start to somewhat question whether the complexity is worth the ROI.

@giner
giner force-pushed the stas/helm_info_status_check_connectivity branch from f6dea57 to 1f29dc7 Compare July 10, 2026 11:03
@giner
giner force-pushed the stas/helm_info_status_check_connectivity branch from 84c05a4 to f229026 Compare July 13, 2026 07:37
@giner

giner commented Jul 13, 2026

Copy link
Copy Markdown
Contributor Author

Rebased on main and squashed

@giner
giner force-pushed the stas/helm_info_status_check_connectivity branch from f229026 to c57d552 Compare July 14, 2026 03:26
@giner
giner force-pushed the stas/helm_info_status_check_connectivity branch from c57d552 to 7a634a5 Compare July 14, 2026 03:26
@giner

giner commented Jul 14, 2026

Copy link
Copy Markdown
Contributor Author

Rebased on the current main

@isegall-da isegall-da 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 still think that the readability gain of doing this in python would have greatly outweighed the downsides, but I accept that you see things differently.

@giner
giner force-pushed the stas/helm_info_status_check_connectivity branch from 7a634a5 to aa9d60d Compare July 16, 2026 02:57
@giner
giner force-pushed the stas/helm_info_status_check_connectivity branch from aa9d60d to c6cd678 Compare July 16, 2026 03:00
@isegall-da
isegall-da enabled auto-merge (squash) July 16, 2026 03:01
auto-merge was automatically disabled July 16, 2026 03:33

Head branch was pushed to by a user without write access

@giner
giner force-pushed the stas/helm_info_status_check_connectivity branch from c6cd678 to 17f7d93 Compare July 16, 2026 03:33
@giner
giner force-pushed the stas/helm_info_status_check_connectivity branch from 17f7d93 to a86ab42 Compare July 16, 2026 03:39
giner added 2 commits July 16, 2026 16:15
Possible status values:
- Scan: 0 (reachable and not lagging), 1 (lagging), 2 (unreachable).
- Sequencer: 0 (reachable and not lagging), 1 (lagging), 2
  (unreachable), 3 (unreachable and lagging).

Also in this change:
- Sort keys in the output
- Refactor for readability and robustness

Signed-off-by: Stanislav German-Evtushenko <ginermail@gmail.com>
Signed-off-by: Stanislav German-Evtushenko <ginermail@gmail.com>
@stas-sbi
stas-sbi force-pushed the stas/helm_info_status_check_connectivity branch from 4ea3c75 to a81df8f Compare July 16, 2026 07:15
@isegall-da
isegall-da merged commit 45075f4 into canton-network:main Jul 16, 2026
43 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

static Used to label PRs for which static tests suffice

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants