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

When validating Dataplane resource, make sure that all inbound and outbound interfaces are unique and don't overshadow one another #513

Closed
yskopets opened this issue Dec 23, 2019 · 7 comments
Labels
area/api breaking-change kind/improvement Improvement on an existing feature triage/rotten closed due to lack of information for too long, rejected feature...

Comments

@yskopets
Copy link
Contributor

yskopets commented Dec 23, 2019

Summary

  • When validating Dataplane resource, make sure that all inbound and outbound interfaces are unique and don't overshadow one another
    • it's invalid for an inbound listener to be bound to 0.0.0.0 interface (control plane cannot use this IP in configuration of an Endpoint that represents this Dataplane)
    • every inbound listener must have a unique interface, e.g.
      • it's invalid to have two inbound listeners bound to the same 192.168.0.1:8080 interface
    • every outbound listener must have a unique interface, e.g.
      • it's invalid to have two outbound listeners bound to the same :8080 interface
      • it's invalid to have two outbound listeners where one is bound to :8080 interface and another is bound to 0.0.0.0:8080 interface
    • outbound interfaces must not overshadow inbound interfaces, e.g.
      • if a Dataplane has an inbound interface 192.168.0.1:80:8080 it would be invalid to have the following outbound interfaces:
        • :8080 or 0.0.0.0:8080 (both overshadow application port 8080)
        • 192.168.0.1:80 or 0.0.0.0:80 (both overshadow inbound dataplane port 80)
    • prometheus endpoint (configured via metrics.prometheus) must not overshadow inbound interfaces, outbound interfaces, original application
      • we're already checking this at the moment when we generate Envoy config (because Mesh-wide Prometheus settings might be updated after a Dataplane has been created/updated)
      • additionally, we need to check it at Dataplane modification time as well
@lahabana
Copy link
Contributor

#2799 also suggests an annotation for precedence in case of Clashes which probably makes sense.
In the absence of precedence we should have a total order of services for k8s (headless > clusterIP > alphanumeric).

@lahabana
Copy link
Contributor

Note the slightly related ignore annotation which is the opposite of the primary service exposed in #2799

@github-actions
Copy link
Contributor

This issue was inactive for 30 days it will be reviewed in the next triage meeting and might be closed.
If you think this issue is still relevant please comment on it promptly or attend the next triage meeting.

@github-actions github-actions bot added the triage/stale Inactive for some time. It will be triaged again label Dec 31, 2021
@lahabana lahabana removed the good first issue Good for newcomers label Jan 21, 2022
@jakubdyszkiewicz jakubdyszkiewicz added triage/accepted The issue was reviewed and is complete enough to start working on it and removed triage/pending This issue will be looked at on the next triage meeting triage/stale Inactive for some time. It will be triaged again labels Mar 7, 2022
@github-actions github-actions bot added the triage/stale Inactive for some time. It will be triaged again label Apr 7, 2022
@github-actions
Copy link
Contributor

github-actions bot commented Apr 7, 2022

This issue was inactive for 30 days it will be reviewed in the next triage meeting and might be closed.
If you think this issue is still relevant please comment on it promptly or attend the next triage meeting.

@lahabana lahabana removed the triage/stale Inactive for some time. It will be triaged again label Apr 7, 2022
@github-actions github-actions bot added the triage/stale Inactive for some time. It will be triaged again label May 8, 2022
@github-actions
Copy link
Contributor

github-actions bot commented May 8, 2022

This issue was inactive for 30 days it will be reviewed in the next triage meeting and might be closed.
If you think this issue is still relevant please comment on it promptly or attend the next triage meeting.

@lahabana lahabana removed triage/accepted The issue was reviewed and is complete enough to start working on it triage/stale Inactive for some time. It will be triaged again labels May 9, 2022
@lahabana lahabana added the triage/pending This issue will be looked at on the next triage meeting label May 9, 2022
@lahabana lahabana added triage/rotten closed due to lack of information for too long, rejected feature... and removed triage/pending This issue will be looked at on the next triage meeting labels May 16, 2022
@github-actions
Copy link
Contributor

Automatically closing the issue due to having one of the "closed state label".

@lahabana
Copy link
Contributor

Triage: Users don't seem to be hitting this so please re-open if you are hitting it :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/api breaking-change kind/improvement Improvement on an existing feature triage/rotten closed due to lack of information for too long, rejected feature...
Projects
None yet
Development

No branches or pull requests

3 participants