Skip to content

Add egw host ip docs#2602

Open
MichalFupso wants to merge 1 commit intotigera:mainfrom
MichalFupso:egress-gateway-host-ip
Open

Add egw host ip docs#2602
MichalFupso wants to merge 1 commit intotigera:mainfrom
MichalFupso:egress-gateway-host-ip

Conversation

@MichalFupso
Copy link
Copy Markdown
Contributor

Product Version(s):

Calico Cloud, Calico Enterprise 3.23
Issue:

Link to docs preview:

SME review:

  • An SME has approved this change.

DOCS review:

  • A member of the docs team has approved this change.

Additional information:

Merge checklist:

  • Deploy preview inspected wherever changes were made
  • Build completed successfully
  • Test have passed

@MichalFupso MichalFupso requested a review from a team as a code owner March 20, 2026 01:47
Copilot AI review requested due to automatic review settings March 20, 2026 01:47
@netlify
Copy link
Copy Markdown

netlify Bot commented Mar 20, 2026

Deploy Preview for calico-docs-preview-next ready!

Name Link
🔨 Latest commit d3c12f6
🔍 Latest deploy log https://app.netlify.com/projects/calico-docs-preview-next/deploys/69bca735760dfd0008f956d6
😎 Deploy Preview https://deploy-preview-2602--calico-docs-preview-next.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify
Copy link
Copy Markdown

netlify Bot commented Mar 20, 2026

Deploy Preview for tigera failed. Why did it fail? →

Built without sensitive environment variables

Name Link
🔨 Latest commit d3c12f6
🔍 Latest deploy log https://app.netlify.com/projects/tigera/deploys/69bca7356f1f2900086bda1a

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds new documentation pages describing how to configure egress gateways to SNAT outbound traffic to the gateway node’s host IP, and exposes those pages in the Calico Enterprise and Calico Cloud navigation.

Changes:

  • Added a new “egress gateway host IP” guide for Calico Enterprise.
  • Added a corresponding “egress gateway host IP” guide for Calico Cloud.
  • Updated both products’ sidebars to include the new page under Networking → Egress.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 11 comments.

File Description
sidebars-calico-enterprise.js Adds the new host-IP egress gateway doc to the Enterprise egress section navigation.
sidebars-calico-cloud.js Adds the new host-IP egress gateway doc to the Cloud egress section navigation.
calico-enterprise/networking/egress/egress-gateway-host-ip.mdx New Enterprise guide explaining host-IP mode behavior and configuration steps.
calico-cloud/networking/egress/egress-gateway-host-ip.mdx New Cloud guide explaining host-IP mode behavior and configuration steps.


#### Configure a namespace or pod to use an egress gateway (egress gateway policy method)

Creating an egress gateway policy allows gives you more control over how your egress gateways work.
Copy link

Copilot AI Mar 20, 2026

Choose a reason for hiding this comment

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

The sentence “Creating an egress gateway policy allows gives you more control…” has an extra verb (“allows gives”). Reword to a grammatically correct sentence (e.g., “allows you to…”).

Suggested change
Creating an egress gateway policy allows gives you more control over how your egress gateways work.
Creating an egress gateway policy gives you more control over how your egress gateways work.

Copilot uses AI. Check for mistakes.

:::note

This setting is not specific to egress gateway. In some cases where nodes happen to be in the same subnet, setting the value to `Never`will work the same as `Always`. It all depends on the hop from the client node to the egress gateway node. For example, if the client nodes are in the same AWS subnet, and you are using `Always` because some of the nodes are in different subnets, then `Never` will work for the egress IP Pool when the client and gateway nodes are in the same subnet.
Copy link

Copilot AI Mar 20, 2026

Choose a reason for hiding this comment

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

There is a missing space in “Neverwill”, which reads like a typo. Insert a space after the inline code so the sentence renders correctly.

Copilot uses AI. Check for mistakes.

#### Configure a namespace or pod to use an egress gateway (egress gateway policy method)

Creating an egress gateway policy allows gives you more control over how your egress gateways work.
Copy link

Copilot AI Mar 20, 2026

Choose a reason for hiding this comment

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

The sentence “Creating an egress gateway policy allows gives you more control…” has an extra verb (“allows gives”). Reword to a grammatically correct sentence (e.g., “allows you to…”).

Suggested change
Creating an egress gateway policy allows gives you more control over how your egress gateways work.
Creating an egress gateway policy gives you more control over how your egress gateways work.

Copilot uses AI. Check for mistakes.

:::note

This setting is not specific to egress gateway. In some cases where nodes happen to be in the same subnet, setting the value to `Never`will work the same as `Always`. It all depends on the hop from the client node to the egress gateway node. For example, if the client nodes are in the same AWS subnet, and you are using `Always` because some of the nodes are in different subnets, then `Never` will work for the egress IP Pool when the client and gateway nodes are in the same subnet.
Copy link

Copilot AI Mar 20, 2026

Choose a reason for hiding this comment

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

There is a missing space in “Neverwill”, which reads like a typo. Insert a space after the inline code so the sentence renders correctly.

Copilot uses AI. Check for mistakes.
Comment on lines +440 to +441
name: my-client,
namespace: my-namespace,
Copy link

Copilot AI Mar 20, 2026

Choose a reason for hiding this comment

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

This Pod manifest example includes trailing commas after name and namespace, which makes the YAML invalid for copy/paste. Remove the commas so the manifest can be applied as written.

Suggested change
name: my-client,
namespace: my-namespace,
name: my-client
namespace: my-namespace

Copilot uses AI. Check for mistakes.
Comment on lines +440 to +441
name: my-client,
namespace: my-namespace,
Copy link

Copilot AI Mar 20, 2026

Choose a reason for hiding this comment

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

This Pod manifest example includes trailing commas after name and namespace, which makes the YAML invalid for copy/paste. Remove the commas so the manifest can be applied as written.

Suggested change
name: my-client,
namespace: my-namespace,
name: my-client
namespace: my-namespace

Copilot uses AI. Check for mistakes.
Comment on lines +527 to +528
name: my-client,
namespace: my-namespace,
Copy link

Copilot AI Mar 20, 2026

Choose a reason for hiding this comment

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

This Pod manifest example includes trailing commas after name and namespace, which makes the YAML invalid for copy/paste. Remove the commas so the manifest can be applied as written.

Suggested change
name: my-client,
namespace: my-namespace,
name: my-client
namespace: my-namespace

Copilot uses AI. Check for mistakes.
link: { type: 'doc', id: 'networking/egress/index' },
items: [
'networking/egress/egress-gateway-on-prem',
'networking/egress/egress-gateway-host-ip',
Copy link

Copilot AI Mar 20, 2026

Choose a reason for hiding this comment

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

PR description lists “Calico Enterprise 3.23”, but this sidebar change only adds the new page to the unversioned (next/master) Enterprise docs. If the intent is to document the feature for the 3.23 docs set, the corresponding versioned sidebar (e.g. calico-enterprise_versioned_sidebars/version-3.23-1-sidebars.json) and versioned docs content should also be updated, or the PR metadata should be adjusted to reflect that this is for next/master only.

Copilot uses AI. Check for mistakes.
Comment on lines +139 to +140
to the egress gateway. In eBPF mode, the probe traffic can be blocked by policy, so you must ensure that this traffic allowed; this should be fixed in an upcoming
patch release.
Copy link

Copilot AI Mar 20, 2026

Choose a reason for hiding this comment

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

In the eBPF-mode note, the sentence “ensure that this traffic allowed” is missing “is”, which makes it grammatically incorrect and a bit hard to parse. Add the missing word (and consider splitting the long sentence) so the requirement is unambiguous.

Suggested change
to the egress gateway. In eBPF mode, the probe traffic can be blocked by policy, so you must ensure that this traffic allowed; this should be fixed in an upcoming
patch release.
to the egress gateway. In eBPF mode, the probe traffic can be blocked by policy, so you must ensure that this traffic is
allowed by your network policy. This limitation should be fixed in an upcoming patch release.

Copilot uses AI. Check for mistakes.
Comment on lines +527 to +528
name: my-client,
namespace: my-namespace,
Copy link

Copilot AI Mar 20, 2026

Choose a reason for hiding this comment

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

This Pod manifest example includes trailing commas after name and namespace, which makes the YAML invalid for copy/paste. Remove the commas so the manifest can be applied as written.

Suggested change
name: my-client,
namespace: my-namespace,
name: my-client
namespace: my-namespace

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Member

@mazdakn mazdakn left a comment

Choose a reason for hiding this comment

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

The content looks OK to me technically, but I think @ctauchen should review from other aspects.

We should also add a release note about adding this feature.

## Big picture

Configure specific application traffic to exit the cluster through an egress gateway, using the
gateway's **host (node) IP** as the source address for traffic leaving the cluster.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

using host and node seems redundant. Maybe we should just use host address

within the cluster.

In this mode, outbound traffic passing through an egress gateway is source-NATed (SNAT) to the
**node IP of the host** where the egress gateway pod is running, rather than the gateway's own pod
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
**node IP of the host** where the egress gateway pod is running, rather than the gateway's own pod
**host address** where the egress gateway pod is running, rather than the gateway's own pod

In this mode, outbound traffic passing through an egress gateway is source-NATed (SNAT) to the
**node IP of the host** where the egress gateway pod is running, rather than the gateway's own pod
IP. This is useful when external firewalls or services need to allowlist traffic based on a
stable set of known node IPs, or when pod IPs are not routable outside the cluster.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
stable set of known node IPs, or when pod IPs are not routable outside the cluster.
stable set of known host addresses, or when pod IPs are not routable outside the cluster.

The Tigera Operator configures egress gateways to use the same iptables backend as `calico-node`.
To modify the iptables backend for egress gateways, you must change the `iptablesBackend` field in the [Felix configuration](../../reference/resources/felixconfig.mdx).

### Configure IP autodetection for dual-ToR clusters.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We should no include dual ToR or basically any other details related to BGP or on-prem in this page.

The Tigera Operator configures egress gateways to use the same iptables backend as `calico-node`.
To modify the iptables backend for egress gateways, you must change the `iptablesBackend` field in the [Felix configuration](../../reference/resources/felixconfig.mdx).

### Configure IP autodetection for dual-ToR clusters.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We should no include dual ToR or basically any other details related to BGP or on-prem in this page. (same in the other file)

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.

3 participants