Skip to content

Conversation

MrFreezeex
Copy link
Member

Add a short readme explaining the different components involved in the MCS-API implementation with an associated mermaid schema.

Followup to #34439 (comment)

@MrFreezeex MrFreezeex requested a review from a team as a code owner October 10, 2024 09:30
@MrFreezeex MrFreezeex requested a review from giorio94 October 10, 2024 09:30
@maintainer-s-little-helper maintainer-s-little-helper bot added the dont-merge/needs-release-note-label The author needs to describe the release impact of these changes. label Oct 10, 2024
@MrFreezeex
Copy link
Member Author

Hi @squeed, as promised here is the small readme with some more high level bits that should explains how everything is tied together, let me know if that's what you had in mind 🙏.

Copy link
Member

@giorio94 giorio94 left a comment

Choose a reason for hiding this comment

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

Thanks!

I'm personally not a big fan of this type of README files, as they tend to get stale over time given that no one ever remembers to update them subsequently. However, I don't actually see any better place for this type of information --- there's apparently no good location in the docs at the moment, and a doc.go file would suffer the same limitations (the only advantage is that it would be automatically used by godoc).

Content wise, my main suggestion would be to reorganize a bit the content, as I feel that in the current form may be a bit difficult to understand without the full context. One possible idea could be:

  • Adding a brief introductory paragraph with a bit more context, as simple as mentioning what MCS-API is and linking to the KEP;
  • Having a bullet list (or a couple of paragraphs) about the core types, simply linking to the dedicated KEP sections when appropriate.
  • Having a bullet list (or subsections) with one item for every controller (maybe mentioning in which file they are implemented?), briefly describing what they do, which are the inputs and outputs;
  • Briefly mentioning what conflict resolution is, and which role plays here -- again, just a simple sentence linking to the KEP, and possibly any additional info for non-trivial implementation choices where the KEP was not clear.

WDYT?

@MrFreezeex
Copy link
Member Author

MrFreezeex commented Oct 11, 2024

Thanks for the review! 🙏

I'm personally not a big fan of this type of README files, as they tend to get stale over time given that no one ever remembers to update them subsequently. However, I don't actually see any better place for this type of information --- there's apparently no good location in the docs at the moment, and a doc.go file would suffer the same limitations (the only advantage is that it would be automatically used by godoc).

Yeah I agree, I am trying to be a bit high level here so that it hopefully decrease the chance of being out of date but this might still happen 😅.

Content wise, my main suggestion would be to reorganize a bit the content, as I feel that in the current form may be a bit difficult to understand without the full context. One possible idea could be:

* Adding a brief introductory paragraph with a bit more context, as simple as mentioning what MCS-API is and linking to the KEP;
* Having a bullet list (or a couple of paragraphs) about the core types, simply linking to the dedicated KEP sections when appropriate.

I tried explaining this in a small intro let me know if that's what you had in mind!

* Having a bullet list (or subsections) with one item for every controller (maybe mentioning in which file they are implemented?), briefly describing what they do, which are the inputs and outputs;

Hmm this is already sort of done in the paragraphs before the schema, it's not in a super structured way though. My intent was more to describe the general flow and the controllers involved rather than what each controllers individually does and there is also some documentation in the code about each controller as well.

* Briefly mentioning what conflict resolution is, and which role plays here -- again, just a simple sentence linking to the KEP, and possibly any additional info for non-trivial implementation choices where the KEP was not clear.

I added a small note about that, also hopefully the KEP is going to be updated with what was not clear about conflicts on the ServiceImport PR anyway.

Copy link
Member

@giorio94 giorio94 left a comment

Choose a reason for hiding this comment

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

Looks great, thanks!

@giorio94 giorio94 added area/clustermesh Relates to multi-cluster routing functionality in Cilium. release-note/misc This PR makes changes that have no direct user impact. labels Oct 11, 2024
@maintainer-s-little-helper maintainer-s-little-helper bot removed dont-merge/needs-release-note-label The author needs to describe the release impact of these changes. labels Oct 11, 2024
Add a short readme explaining the different components involved in the MCS-API
implementation with an associated mermaid schema.

Signed-off-by: Arthur Outhenin-Chalandre <arthur@cri.epita.fr>
@MrFreezeex
Copy link
Member Author

/test

@MrFreezeex
Copy link
Member Author

/ci-ginkgo

@maintainer-s-little-helper maintainer-s-little-helper bot added the ready-to-merge This PR has passed all tests and received consensus from code owners to merge. label Oct 14, 2024
@squeed squeed added this pull request to the merge queue Oct 14, 2024
Merged via the queue into cilium:main with commit 236f026 Oct 14, 2024
62 of 63 checks passed
@MrFreezeex MrFreezeex deleted the mcsapi-readme branch October 14, 2024 11:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/clustermesh Relates to multi-cluster routing functionality in Cilium. ready-to-merge This PR has passed all tests and received consensus from code owners to merge. release-note/misc This PR makes changes that have no direct user impact.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants