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

docs: egressgw: document incompatibility with Clustermesh #27918

Merged
merged 1 commit into from Sep 6, 2023

Conversation

julianwiedmann
Copy link
Member

The current way of subscribing to node events is not compatible with Clustermesh (see #25794). Reflect this in the documentation.

@julianwiedmann julianwiedmann added area/documentation Impacts the documentation, including textual changes, sphinx, or other doc generation code. area/clustermesh Relates to multi-cluster routing functionality in Cilium. release-note/misc This PR makes changes that have no direct user impact. feature/egress-gateway Impacts the egress IP gateway feature. labels Sep 4, 2023
@julianwiedmann julianwiedmann requested review from bimmlerd, a team and YutaroHayakawa and removed request for a team September 4, 2023 10:30
@julianwiedmann
Copy link
Member Author

@YutaroHayakawa do you know if there is any way of determining whether a node is set up for Clustermesh? So that we could at least give users a warning similar to

if dcfg.EnableL7Proxy {
log.WithField(logfields.URL, "https://github.com/cilium/cilium/issues/19642").
Warningf("both egress gateway and L7 proxy (--%s) are enabled. This is currently not fully supported: "+
"if the same endpoint is selected both by an egress gateway and a L7 policy, endpoint traffic will not go through egress gateway.", option.EnableL7Proxy)

@julianwiedmann julianwiedmann marked this pull request as ready for review September 4, 2023 10:33
@julianwiedmann julianwiedmann requested review from a team as code owners September 4, 2023 10:33
Copy link
Contributor

@learnitall learnitall left a comment

Choose a reason for hiding this comment

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

One nit, but otherwise LGTM!

Documentation/network/egress-gateway.rst Outdated Show resolved Hide resolved
@YutaroHayakawa
Copy link
Member

@YutaroHayakawa do you know if there is any way of determining whether a node is set up for Clustermesh? So that we could at least give users a warning similar to

Umm, I guess we can depend on ClusterMesh object as optional and check if it is nil or not. Like

type EgressGatewayParams struct {
  cell.In

  cm *ClusterMesh `optional:"true"`
}

func NewEgressGateway(params EgressGatewayParams) (EgressGateway, error) {
  if params.cm != nil {
    return nil, fmt.Errorf("Egress Gateway is incompatible with ClusterMesh")
  }
  ...
}

@giorio94 Do you have any other good ideas?

The current way of subscribing to node events is not compatible with
Clustermesh (see cilium#25794). Reflect this
in the documentation.

Signed-off-by: Julian Wiedmann <jwi@isovalent.com>
@julianwiedmann
Copy link
Member Author

@YutaroHayakawa do you know if there is any way of determining whether a node is set up for Clustermesh? So that we could at least give users a warning similar to

Umm, I guess we can depend on ClusterMesh object as optional and check if it is nil or not. Like

type EgressGatewayParams struct {
  cell.In

  cm *ClusterMesh `optional:"true"`
}

func NewEgressGateway(params EgressGatewayParams) (EgressGateway, error) {
  if params.cm != nil {
    return nil, fmt.Errorf("Egress Gateway is incompatible with ClusterMesh")
  }
  ...
}

@giorio94 Do you have any other good ideas?

Let's merge the docs change as-is then, and add the check once @giorio94 had a look.

Copy link
Contributor

@learnitall learnitall left a comment

Choose a reason for hiding this comment

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

LGTM, thank you!

@julianwiedmann julianwiedmann added the ready-to-merge This PR has passed all tests and received consensus from code owners to merge. label Sep 6, 2023
@julianwiedmann
Copy link
Member Author

@youngnick I think we don't need the full CI here, but feel free to disagree 👍

@youngnick
Copy link
Contributor

I agree, merging.

@youngnick youngnick merged commit 05bdc1e into cilium:main Sep 6, 2023
41 checks passed
@julianwiedmann julianwiedmann deleted the 1.15-egressgw-docs branch September 7, 2023 05:35
@julianwiedmann julianwiedmann added the needs-backport/1.14 This PR / issue needs backporting to the v1.14 branch label Sep 7, 2023
@maintainer-s-little-helper maintainer-s-little-helper bot added this to Needs backport from main in 1.13.7 Sep 7, 2023
@maintainer-s-little-helper maintainer-s-little-helper bot added this to Needs backport from main in 1.14.2 Sep 7, 2023
@maintainer-s-little-helper maintainer-s-little-helper bot added this to Needs backport from main in 1.12.14 Sep 7, 2023
@michi-covalent michi-covalent added this to Needs backport from main in 1.14.3 Sep 9, 2023
@michi-covalent michi-covalent removed this from Needs backport from main in 1.14.2 Sep 9, 2023
@michi-covalent michi-covalent added this to Needs backport from main in 1.13.8 Sep 9, 2023
@michi-covalent michi-covalent removed this from Needs backport from main in 1.13.7 Sep 9, 2023
@michi-covalent michi-covalent added this to Needs backport from main in 1.12.15 Sep 9, 2023
@michi-covalent michi-covalent removed this from Needs backport from main in 1.12.14 Sep 9, 2023
@gandro gandro mentioned this pull request Sep 12, 2023
15 tasks
@gandro gandro added backport-pending/1.14 The backport for Cilium 1.14.x for this PR is in progress. and removed needs-backport/1.14 This PR / issue needs backporting to the v1.14 branch labels Sep 12, 2023
@gandro gandro mentioned this pull request Sep 12, 2023
6 tasks
@gandro gandro added backport-pending/1.13 The backport for Cilium 1.13.x for this PR is in progress. and removed needs-backport/1.13 This PR / issue needs backporting to the v1.13 branch labels Sep 12, 2023
@gandro gandro mentioned this pull request Sep 12, 2023
3 tasks
@julianwiedmann julianwiedmann added backport-done/1.13 The backport for Cilium 1.13.x for this PR is done. backport-done/1.12 The backport for Cilium 1.12.x for this PR is done. and removed backport-pending/1.13 The backport for Cilium 1.13.x for this PR is in progress. backport-pending/1.12 labels Sep 14, 2023
@giorio94
Copy link
Member

@YutaroHayakawa do you know if there is any way of determining whether a node is set up for Clustermesh? So that we could at least give users a warning similar to

Umm, I guess we can depend on ClusterMesh object as optional and check if it is nil or not. Like

type EgressGatewayParams struct {
  cell.In

  cm *ClusterMesh `optional:"true"`
}

func NewEgressGateway(params EgressGatewayParams) (EgressGateway, error) {
  if params.cm != nil {
    return nil, fmt.Errorf("Egress Gateway is incompatible with ClusterMesh")
  }
  ...
}

@giorio94 Do you have any other good ideas?

Your proposal makes sense to me. The optional tag is not strictly required, as the ClusterMesh object is always provided, although it is nil if not initialized.

@gandro gandro added backport-done/1.14 The backport for Cilium 1.14.x for this PR is done. and removed backport-pending/1.14 The backport for Cilium 1.14.x for this PR is in progress. labels Sep 25, 2023
@jrajahalme jrajahalme moved this from Needs backport from main to Backport done to v1.12 in 1.12.15 Oct 17, 2023
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. area/documentation Impacts the documentation, including textual changes, sphinx, or other doc generation code. backport-done/1.12 The backport for Cilium 1.12.x for this PR is done. backport-done/1.13 The backport for Cilium 1.13.x for this PR is done. backport-done/1.14 The backport for Cilium 1.14.x for this PR is done. feature/egress-gateway Impacts the egress IP gateway feature. 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
No open projects
1.12.15
Backport done to v1.12
1.13.8
Needs backport from main
1.14.3
Needs backport from main
Development

Successfully merging this pull request may close these issues.

None yet

8 participants