Skip to content

feat: multi-shard support#41

Merged
trevex merged 11 commits intochore/cleaner-export-path-handlingfrom
feat/multi-shard-support
May 7, 2026
Merged

feat: multi-shard support#41
trevex merged 11 commits intochore/cleaner-export-path-handlingfrom
feat/multi-shard-support

Conversation

@trevex
Copy link
Copy Markdown
Contributor

@trevex trevex commented Apr 29, 2026

Stack created with GitHub Stacks CLIGive Feedback 💬

Closes #25

@trevex trevex changed the title feat/multi shard support feat: multi-shard support Apr 29, 2026
@BergCyrill BergCyrill assigned BergCyrill and unassigned BergCyrill Apr 30, 2026
@BergCyrill BergCyrill self-requested a review April 30, 2026 19:32
Copy link
Copy Markdown
Contributor

@BergCyrill BergCyrill left a comment

Choose a reason for hiding this comment

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

I may have an oversight here but I haven't seen anything that will enable the controller to actually watch and reconcile on events regarding new dependency rules on more than just the first virtual workspace url (and related shard). Changing the webhook installer to not use virtual workspaces but instead rely on access through frontProxy may seem tempting at first but comes with the huge tradeoff to not leverage virtual workspaces and permissionClaims anymore but instead rely on instance wide permissions. There even may be more issues when it comes to controller-sharding.
I still would suggest to look at the way the api-syncagent does it and/or thing about leveraging the cache server - may be sufficient here too.

Comment thread docs/development.md Outdated
Comment thread internal/controller/dependencyrule_controller.go Outdated
Comment thread internal/webhook/rule_cache_manager.go
Comment thread test/e2e/dependency_test.go Outdated
Comment thread test/fixtures/root-rbac-bootstrap.yaml Outdated
Comment thread test/fixtures/shard-admin-rbac-bootstrap.yaml Outdated
Comment thread test/fixtures/shard-admin-rbac-bootstrap.yaml Outdated
…ce to alleviate the need for shard-level system:admin RBAC
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 1, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 087bba77-a533-4a44-ab65-c31d1aef4891

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/multi-shard-support

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@BergCyrill BergCyrill left a comment

Choose a reason for hiding this comment

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

I am currently unsure about the following points:

  • how is consumer RBAC ensured for the webhook? There isn't anything in here (or I have missed it) - maybe it is because of a RBAC misunderstanding
  • What is now cached so the webhook can access this information? Only dependencyRules information and it now queries everything through its dynamicClient?

Comment thread docs/getting-started.md Outdated
Comment thread docs/getting-started.md Outdated
Comment thread docs/getting-started.md Outdated
BergCyrill added 2 commits May 6, 2026 23:48
Signed-off-by: Cyrill Berg <cyrill.berg@opendefense.cloud>
Signed-off-by: Cyrill Berg <cyrill.berg@opendefense.cloud>
@BergCyrill
Copy link
Copy Markdown
Contributor

BergCyrill commented May 6, 2026

I validated the current implementation and modified the e2e tests to match the current desired setup regarding authorization & sharding. The e2e tests now ensure everything is working across shards and implements the same authorization objects that are required by design.
I have also modified the documentation since this was outdated and did not match the current architecture & implementation.

So looks good for me now

@BergCyrill BergCyrill mentioned this pull request May 6, 2026
@trevex trevex merged commit 67b5bfd into chore/cleaner-export-path-handling May 7, 2026
3 checks passed
@trevex trevex deleted the feat/multi-shard-support branch May 7, 2026 06:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants