MGMT-21201: Enable dual-stack clusters#1659
MGMT-21201: Enable dual-stack clusters#1659openshift-merge-bot[bot] merged 1 commit intoopenshift-kni:mainfrom
Conversation
|
@danmanor: This pull request references MGMT-21201 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.20.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
1 similar comment
|
@danmanor: This pull request references MGMT-21201 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.20.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
|
Hi @danmanor. Thanks for your PR. I'm waiting for a openshift-kni member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions 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. |
|
@danmanor: This pull request references MGMT-21201 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.20.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
1 similar comment
|
@danmanor: This pull request references MGMT-21201 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.20.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
|
@danmanor: This pull request references MGMT-21201 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.20.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
|
@danmanor: This pull request references MGMT-21201 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.20.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
|
@danmanor: This pull request references MGMT-21201 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.20.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
|
@danmanor: This pull request references MGMT-21201 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.20.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
|
@danmanor: This pull request references MGMT-21201 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.20.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
|
@danmanor: This pull request references MGMT-21201 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.20.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
|
@danmanor: This pull request references MGMT-21201 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.20.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
|
@danmanor: This pull request references MGMT-21201 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.20.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
843109b to
95444b3
Compare
|
@danmanor: This pull request references MGMT-21201 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "4.20.0" version, but no target version was set. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
|
/ok-to-test |
|
Caution There are some errors in your PipelineRun template.
|
95444b3 to
64c57e0
Compare
|
/retest |
|
/lgtm |
|
/unhold |
|
/ok-to-test |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: eranco74 The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/retest |
1 similar comment
|
/retest |
|
/remove label cluster-config-api-changed |
|
/remove-label cluster-config-api-changed |
|
/ok-to-test |
|
/retest-required |
1 similar comment
|
/retest-required |
|
/retest |
4 similar comments
|
/retest |
|
/retest |
|
/retest |
|
/retest |
|
/ok-to-test |
1 similar comment
|
/ok-to-test |
|
/test integration |
|
/ok-to-test |
|
/retest |
1 similar comment
|
/retest |
|
@danmanor: The following test failed, say
Full PR test history. Your PR dashboard. DetailsInstructions 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. |
85c3954
into
openshift-kni:main
Enable dual-stack clusters
Depend on rh-ecosystem-edge/recert#390
Background / Context
The lifecycle-agent is a core component responsible for managing Image-Based Upgrades (IBU) and Image-Based Install (IBI) operations in OpenShift Single Node OpenShift (SNO) clusters. It handles critical cluster lifecycle operations including:
Currently, the lifecycle-agent's network handling is designed around single-stack networking, where clusters operate on either IPv4 OR IPv6, but not both simultaneously. All network-related data structures use single string fields (
NodeIP,MachineNetwork) and the logic assumes a single IP address per network interface.Key components involved:
api/seedreconfig: Defines theSeedReconfigurationAPI for cluster transformation parametersutils/client_helper.go: Extracts cluster network information from Kubernetes APIlca-cli/postpivot: Handles post-upgrade network configuration and kubelet setupinternal/recert: Manages certificate re-signing with updated network informationlca-cli/seedclusterinfo: Captures seed cluster network details for replicationIssue / Requirement / Reason for change
MGMT-21201: The lifecycle-agent needs to support dual-stack networking configurations where OpenShift clusters operate with both IPv4 and IPv6 addresses simultaneously on the same interfaces.
Current Limitations:
NodeIP,MachineNetwork) are single strings, preventing multiple IP supportRequirements:
Changes Made
API Extensions
NodeIPs []stringtoSeedReconfigurationandSeedClusterInfofor multiple node IPsMachineNetworks []stringto support multiple machine network CIDRsNodeIP,MachineNetwork) for backward compatibility with precedence rulesNetwork Configuration Updates
GetClusterInfo()to discover all internal node IPs viagetNodeInternalIPs()getMachineNetworks()to extract all machine networks from install configPost-Pivot Improvements
setNodeIpHint()to generate space-separated IP hints:KUBELET_NODEIP_HINT=<ip1> <ip2>setNodeIPIfNotProvided()to parse kubelet config from/etc/systemd/system/kubelet.service.d/20-nodenet.confparseKubeletNodeIPs()function to extract bothKUBELET_NODE_IPandKUBELET_NODE_IPSenvironment variablesnodeip-configurationserviceRecertification Logic
slices.Equal()comparison for clean IP change detectionconfig.IP = "ip1,ip2"for multiple addressesTest Scenarios Covered:
Backward Compatibility
100% backward compatibility maintained:
NodeIPandMachineNetworkfields preserved and populatedNodeIPs,MachineNetworks) take precedence when populatedTesting
Unit Tests Added
Integration Scenarios
Checklist
This is a personal checklist that should be applicable to most PRs. It's good
to go over it in order to make sure you haven't missed anything. If you feel
like some of these points are not relevant to your PR, feel free to keep them
unchecked and if you want also explain why you think they're inapplicable.
git config commit.template .github/pull_request_template.md)