Skip to content

Add installer/bootstrap-konnectivity-tunnel.md#1941

Open
mdbooth wants to merge 1 commit intoopenshift:masterfrom
openshift-cloud-team:bootstrap-konnectivity
Open

Add installer/bootstrap-konnectivity-tunnel.md#1941
mdbooth wants to merge 1 commit intoopenshift:masterfrom
openshift-cloud-team:bootstrap-konnectivity

Conversation

@mdbooth
Copy link
Contributor

@mdbooth mdbooth commented Feb 12, 2026

An EP describing the investigation outcomes of a PoC implementing a Konnectivity tunnel between the bootstrap node and early cluster nodes.

Tracker: https://issues.redhat.com/browse/CORS-4334

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 12, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign mandre for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@mdbooth mdbooth force-pushed the bootstrap-konnectivity branch from 8b9f582 to 156c5cc Compare February 12, 2026 20:37
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 12, 2026

@mdbooth: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

### Workflow Description

This feature is transparent to the cluster administrator.
It requires no user action and does not change the `openshift-install` CLI interface.
Copy link
Contributor

Choose a reason for hiding this comment

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

Unfortunately this part will not be true in cases where users bring their own networks:

  • baremetal/on-prem platforms
  • azure byo vnet

Because the port management will need to be updated to open port 8091. That's not an unreasonable ask, but it is definitely not transparent.

Copy link
Contributor

Choose a reason for hiding this comment

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

And I see you included this in open questions 👍

1. How should the bootstrap script determine the bootstrap node IP?
This IP is required for the server certificate SAN and the agent `--proxy-server-host` argument.
1. Clarify the impacts, if any, on SNO, MicroShift, and OKE.
For SNO, the bootstrap node is typically separate from the single cluster node, so the architecture still applies.
Copy link
Member

Choose a reason for hiding this comment

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

This is only true in the cloud. On-prem SNO uses bootstrap-in-place, and the bootstrap and control plane never interact.

MicroShift does not use the bootstrap process and is likely not affected.
OKE uses the same installer and is likely affected in the same way as OCP.
These assumptions need confirmation.
1. Determine all platforms requiring security group updates for TCP port 8091.
Copy link
Member

Choose a reason for hiding this comment

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

@JoelSpeed
Copy link
Contributor

LGTM once existing comments are resolved. We can merge this and iterate during implementation as we answer open questions IMO


10. The installer destroys the bootstrap node infrastructure.
The Konnectivity server is gone with it.
The production KAS instances have direct access to the pod network and do not need the tunnel.
Copy link
Member

Choose a reason for hiding this comment

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

The installer destroys the bootstrap node infrastructure

Quick question: For cloud platforms, this also implies deleting the rule that allows TCP/8091 to bootstrap node, right? Or are we leaving it behind?

Copy link
Member

Choose a reason for hiding this comment

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

Background: On AWS, the bootstrap node shares the same security group(s) as the control plane nodes. So, adding TCP/8091 will need cleaning up post-bootstrap; otherwise, it will stay behind.

Looking at this change (still in-progress), I don't see the cleanup logic so just wanted to double-check 😅

Copy link
Member

Choose a reason for hiding this comment

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

Sorry, nvmind me, I missed Patrick's openshift/installer#10344 (comment) 😩 (been a long day...)

nit: How about making the wordings a bit more explicit? Let's add the following to section Workflow:

  1. The konnectivity server listens on TCP/8091
  2. The installer should configure platforms to open a security group rule/firewall rule to allow TCP/8091 (link to section Cloud-specific Security Group Configuration).
  3. After bootstrap, the installer destroys bootstrap resources, including the new security/firewall rule.

IMO, allow TCP/8091 is an important workflow step so it should be mentioned here, which sounds clearer... That being said, it's just a nit 😅

4. The script creates cluster resources for the Konnectivity agent:
a. Resolves the `apiserver-network-proxy` image from the release payload.
b. Substitutes the image and bootstrap IP into the DaemonSet template and writes the resulting manifest to the manifests directory.
c. Writes the `openshift-installer-bootstrap` Namespace manifest to the manifests directory.
Copy link
Member

Choose a reason for hiding this comment

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

Looking at commit (still in progress), the namespace says openshift-bootstrap-konnectivity, but here the EP says openshift-installer-bootstrap. I just wanted to double-check which one is the correct 👀?

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.

5 participants