Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for clusterset IP for MCS Compliance #229

Closed
19 of 23 tasks
vthapar opened this issue Jul 31, 2024 · 4 comments
Closed
19 of 23 tasks

Add support for clusterset IP for MCS Compliance #229

vthapar opened this issue Jul 31, 2024 · 4 comments
Assignees
Labels

Comments

@vthapar
Copy link
Contributor

vthapar commented Jul 31, 2024

Epic Description

While Submariner/Lighthouse implements the MCS API, it is not compliant in that there is no clusterset IP assigned in the ServiceImport.

While there are design reasons mostly to do with perf and scale, there are compelling use cases to have Submariner provide an implementation that is compliant with MCS API in this respect. e.g. Istio with Submariner.

Acceptance Criteria

Submariner deployment is compliant with MCS API wrt clusterset IP assignment.

Any MCS SIG compliance tests that can serve as acceptance tests? Yes

Definition of Done (Checklist)

  • Code complete
  • Relevant metrics added
  • The acceptance criteria met
  • Unit/e2e test added & pass
  • CI jobs pass
  • Deployed using cloud-prepare+subctl
  • Deployed using ACM/OCM addon
  • Deploy using Helm
  • Deployed on supported platforms (for e.g kind, OCP on AWS, OCP on GCP)
  • Run subctl verify, diagnose and gather
  • Uninstall
  • Troubleshooting (gather/diagnose) added
  • Documentation added
  • Release notes added

Work Items

@vthapar vthapar self-assigned this Jul 31, 2024
@vthapar vthapar moved this to Schedule and Epics in Submariner 0.19 Jul 31, 2024
@tpantelis
Copy link
Contributor

tpantelis commented Jul 31, 2024

  1. EndpointSlices do not contain individual Pod IPs but ClusterIP of services in that cluster.

Looking at https://github.com/kubernetes/enhancements/tree/master/keps/sig-multicluster/1645-multi-cluster-services-api#tracking-endpoints, I don't see where it explicitly states that EndpointSlices have to contain individual Pod IPs. But perhaps I'm missing something.

Also it's optional to even use EndpointSlices.

BTW, I'm not saying we can't/shouldn't expose the Pod IPs - just pointing out that I don't think we're non-compliant.

@tpantelis
Copy link
Contributor

For 1), a prior issue was reported but went stale.

For 2), it was previously discussed here.

@vthapar
Copy link
Contributor Author

vthapar commented Aug 5, 2024

The spec mentions this:

One or more EndpointSlice resources will exist for the exported Service, with each EndpointSlice containing only endpoints from a single source cluster.

Here it does say that EndpointSlice should contain Endpoints from that cluster. ES are optional for an implementation but spec mentions that if created they should contain endpoints, which basically means pod ips.

Should we reword the Epic? It is more a use case from Istio, but I wanted to use a generic wording.

@tpantelis
Copy link
Contributor

tpantelis commented Aug 5, 2024

Here it does say that EndpointSlice should contain Endpoints from that cluster. ES are optional for an implementation but spec mentions that if created they should contain endpoints, which basically means pod ips.

I guess it's a matter of semantics. Generically an "endpoint is an API object that acts as a bridge between a service and the pods that fulfill that service's requests". However I don't think that necessarily means it has to be an actual pod IP - in our case it's the service VIP that indirectly leads to the backing pods.

I think the key point in that statement is that the endpoints contained in an EPS, whatever they are/represent, must all be from the same cluster.

Should we reword the Epic? It is more a use case from Istio, but I wanted to use a generic wording.

We can mention the use case is for Istio (which we just did :)).

@tpantelis tpantelis self-assigned this Aug 6, 2024
@tpantelis tpantelis moved this from Schedule and Epics to In Progress in Submariner 0.19 Sep 4, 2024
@tpantelis tpantelis changed the title Add support for 100% MCS Compliance Add support for clusterset IP for MCS Compliance Sep 25, 2024
@tpantelis tpantelis moved this from In Progress to In Review in Submariner 0.19 Sep 26, 2024
@github-project-automation github-project-automation bot moved this from In Review to Done in Submariner 0.19 Sep 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Done
Development

No branches or pull requests

2 participants