Skip to content

Conversation

@tthvo
Copy link
Member

@tthvo tthvo commented Oct 28, 2025

In dual-stack environment, the CCM AWS provider expects NodeIPFamilies (kubernetes/cloud-provider-aws#638) to be in the format:

NodeIPFamilies=ipv4
NodeIPFamilies=ipv6

However, iniv1 is serializing go slices as comma-separated list, for example:

NodeIPFamilies=ipv4,ipv6

This commit ensures the original NodeIPFamilies field is kept as-is after transforming.

@openshift-ci-robot
Copy link

openshift-ci-robot commented Oct 28, 2025

@tthvo: This pull request references CORS-4209 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 story to target the "4.21.0" version, but no target version was set.

Details

In response to this:

In dual-stack environment, the CCM AWS provider expects NodeIPFamilies (kubernetes/cloud-provider-aws#638) to be in the format:

NodeIPFamilies=ipv4
NodeIPFamilies=ipv6

However, iniv1 is serializing go slices as comma-separated list, for example:

NodeIPFamilies=ipv4,ipv6

This commit ensures the original NodeIPFamilies field is kept as-is after transforming.

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.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Oct 28, 2025
@tthvo
Copy link
Member Author

tthvo commented Oct 28, 2025

/jira refresh

@openshift-ci-robot
Copy link

openshift-ci-robot commented Oct 28, 2025

@tthvo: This pull request references CORS-4209 which is a valid jira issue.

Details

In response to this:

/jira refresh

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.

@tthvo
Copy link
Member Author

tthvo commented Oct 28, 2025

/cc @sadasu

@openshift-ci openshift-ci bot requested a review from sadasu October 28, 2025 21:31
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 29, 2025

@mtulio: The following commands are available to trigger required jobs:

/test e2e-aws-ovn
/test e2e-aws-ovn-upgrade
/test fmt
/test images
/test lint
/test okd-scos-images
/test unit
/test vendor
/test verify-deps
/test vet

The following commands are available to trigger optional jobs:

/test e2e-aws-ovn-techpreview
/test e2e-azure-manual-oidc
/test e2e-azure-ovn
/test e2e-azure-ovn-upgrade
/test e2e-gcp-ovn
/test e2e-gcp-ovn-upgrade
/test e2e-ibmcloud-ovn
/test e2e-nutanix-ovn
/test e2e-openstack-ovn
/test e2e-vsphere-ovn
/test level0-clusterinfra-azure-ipi-proxy-tests
/test okd-scos-e2e-aws-ovn
/test regression-clusterinfra-vsphere-ipi-ccm

Use /test all to run the following jobs that were automatically triggered:

pull-ci-openshift-cluster-cloud-controller-manager-operator-main-e2e-aws-ovn
pull-ci-openshift-cluster-cloud-controller-manager-operator-main-e2e-aws-ovn-upgrade
pull-ci-openshift-cluster-cloud-controller-manager-operator-main-fmt
pull-ci-openshift-cluster-cloud-controller-manager-operator-main-images
pull-ci-openshift-cluster-cloud-controller-manager-operator-main-level0-clusterinfra-azure-ipi-proxy-tests
pull-ci-openshift-cluster-cloud-controller-manager-operator-main-lint
pull-ci-openshift-cluster-cloud-controller-manager-operator-main-okd-scos-e2e-aws-ovn
pull-ci-openshift-cluster-cloud-controller-manager-operator-main-okd-scos-images
pull-ci-openshift-cluster-cloud-controller-manager-operator-main-unit
pull-ci-openshift-cluster-cloud-controller-manager-operator-main-vendor
pull-ci-openshift-cluster-cloud-controller-manager-operator-main-verify-deps
pull-ci-openshift-cluster-cloud-controller-manager-operator-main-vet
Details

In response to this:

/test ?

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.

@damdo
Copy link
Member

damdo commented Oct 30, 2025

/assign @nrb

@nrb
Copy link
Contributor

nrb commented Oct 30, 2025

Running the unit tests locally, I'm not able to get it to fail, so not sure what's going on with CI.

I think this is all reasonable, just need to remove a stray comment.

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Oct 30, 2025

[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 ask for approval from nrb. 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

@tthvo
Copy link
Member Author

tthvo commented Oct 30, 2025

/verified by unit test and testwith openshift/installer#9930

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Oct 30, 2025
@openshift-ci-robot
Copy link

@tthvo: This PR has been marked as verified by unit test and testwith https://github.com/openshift/installer/pull/9930.

Details

In response to this:

/verified by unit test and testwith openshift/installer#9930

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.

@tthvo
Copy link
Member Author

tthvo commented Oct 30, 2025

Running the unit tests locally, I'm not able to get it to fail, so not sure what's going on with CI.

Local unit test passed quite consistently for me too 👀 I guess the test is flaky? It passed now on CI: ci/prow/unit 😁

@nrb
Copy link
Contributor

nrb commented Oct 30, 2025

I guess the test is flaky?

Yeah, I wasn't able to reproduce these failures, either.

Looks like right now quay might be having issues.

@tthvo
Copy link
Member Author

tthvo commented Oct 30, 2025

/retest-required

Let's see if things are back to normal 👀

@tthvo
Copy link
Member Author

tthvo commented Oct 30, 2025

/test e2e-aws-ovn

@tthvo
Copy link
Member Author

tthvo commented Nov 3, 2025

/retest

@RadekManak
Copy link
Contributor

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Nov 11, 2025
@mtulio
Copy link
Contributor

mtulio commented Nov 11, 2025

/lgtm

Comment on lines 79 to 86
nodeIPKey := file.Section("Global").Key("NodeIPFamilies")
for i, ipFamily := range cfg.Global.NodeIPFamilies {
if i == 0 {
nodeIPKey.SetValue(ipFamily)
} else if err := nodeIPKey.AddShadow(ipFamily); err != nil {
return "", fmt.Errorf("failed to set NodeIPFamilies: %w", err)
}
}
Copy link
Contributor

Choose a reason for hiding this comment

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

Copy link
Member Author

Choose a reason for hiding this comment

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

Hey @mtulio, in the afternoon sync call today, PM said we are, but they will double-check. I think this PR should ensure the cloud-config in both ocp and rosa to be in correct format; and it does not break existing behaviour (ipv4).

Let's move forward with this PR?

// NodeIPFamilies=ipv4,ipv6
//
// Below logic ensures the original NodeIPFamilies field is kept as-is after transforming.
nodeIPKey := file.Section("Global").Key("NodeIPFamilies")
Copy link

Choose a reason for hiding this comment

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

Does the transformation preserve the order in which NodeIPFamilies values are specified? For IPv6Primary and IPv4Primary will the order of values differ?

Copy link
Contributor

Choose a reason for hiding this comment

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

It looks like the ini loading code respects the order of values in the config file.

The cloud provider type also mentions that the order matters here - whichever's primary should come first.

The loop starting on L80 looks like it's preserving order to me, being sure to set the first value at index 0 and shadowing subsequent ones.

Copy link
Member Author

Choose a reason for hiding this comment

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

The cloud provider type also mentions that the order matters here - whichever's primary should come first.

That's true! The order in cloud-config will determine IP family order in the .status.addresses of nodes.

It looks like the ini loading code respects the order of values in the config file.
The loop starting on L80 looks like it's preserving order to me, being sure to set the first value at index 0 and shadowing subsequent ones.

Thanks for the reference! Yes, the order is preserved thanks to that handling logic.

Copy link
Member Author

Choose a reason for hiding this comment

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

I had to adjust the changes here a bit though because of other recent changes in the CCCMO that introduces sorting section. But the idea remains the same. PTAL 🙏

@openshift-ci-robot openshift-ci-robot removed the verified Signifies that the PR passed pre-merge verification criteria label Jan 21, 2026
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Jan 21, 2026
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 21, 2026

New changes are detected. LGTM label has been removed.

In dual-stack environment, the CCM expects NodeIPFamilies to be in the format:

NodeIPFamilies=ipv4
NodeIPFamilies=ipv6

However, iniv1 is serializing go slices as comma-separated list, for example:

NodeIPFamilies=ipv4,ipv6

This commit ensures the original NodeIPFamilies field is kept as-is after transforming.
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jan 22, 2026

@tthvo: 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants