Add dual-stack IPv4/IPv6 networking support for GCP instances#156
Add dual-stack IPv4/IPv6 networking support for GCP instances#156barbacbd wants to merge 1 commit into
Conversation
|
/hold |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (30)
📒 Files selected for processing (4)
✅ Files skipped from review due to trivial changes (1)
WalkthroughAdds GCP dual‑stack IPv6 support across machine reconciliation: NIC StackType mapping, optional IPv6 access configs and addresses, validation for dual‑stack fields, updated cloud-state address reconciliation, expanded tests, a mock setter for instance retrieval, and a Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@go.mod`:
- Around line 130-131: Remove the temporary replace directive that maps
"github.com/openshift/api" to the personal fork (the line starting with replace
github.com/openshift/api => github.com/barbacbd/api ...) from go.mod, ensure the
changes that required that fork are submitted/upstreamed to the official
github.com/openshift/api repository, then update the module graph (run go mod
tidy) and verify the project builds and CI passes so no local replace is
required.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 2852d1a3-0edf-4523-9693-6c57cf6c4baf
⛔ Files ignored due to path filters (30)
go.sumis excluded by!**/*.sumvendor/github.com/openshift/api/config/v1/types.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/types_authentication.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/types_dns.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/types_infrastructure.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-CustomNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-Default.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-DevPreviewNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-OKD.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-TechPreviewNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_dnses-CustomNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_dnses-Default.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_dnses-DevPreviewNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_dnses-OKD.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_dnses-TechPreviewNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Default.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-OKD.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.deepcopy.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yamlis excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1alpha1/types_cluster_monitoring.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1alpha1/zz_generated.deepcopy.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/config/v1alpha1/zz_generated.swagger_doc_generated.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/features/features.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/machine/v1beta1/types_gcpprovider.gois excluded by!vendor/**,!**/vendor/**vendor/github.com/openshift/api/machine/v1beta1/zz_generated.swagger_doc_generated.gois excluded by!vendor/**,!**/vendor/**vendor/modules.txtis excluded by!vendor/**,!**/vendor/**
📒 Files selected for processing (4)
go.modpkg/cloud/gcp/actuators/machine/reconciler.gopkg/cloud/gcp/actuators/machine/reconciler_test.gopkg/cloud/gcp/actuators/services/compute/computeservice_mock.go
|
|
||
| replace github.com/openshift/api => github.com/barbacbd/api v0.0.0-20260406135515-7f681bb588e9 |
There was a problem hiding this comment.
Replace directive to personal fork must be removed before merge.
This redirects the official github.com/openshift/api to a personal fork. As noted in the PR description, this is temporary for testing. Ensure this replace directive is removed and the changes are upstreamed to the official API repository before merging.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@go.mod` around lines 130 - 131, Remove the temporary replace directive that
maps "github.com/openshift/api" to the personal fork (the line starting with
replace github.com/openshift/api => github.com/barbacbd/api ...) from go.mod,
ensure the changes that required that fork are submitted/upstreamed to the
official github.com/openshift/api repository, then update the module graph (run
go mod tidy) and verify the project builds and CI passes so no local replace is
required.
7728ea7 to
5358064
Compare
Enable GCP instances to use dual-stack networking with both IPv4 and IPv6 addresses to support modern networking requirements and IPv6-first environments. This change extends the GCPNetworkInterface spec to support: - StackType field (IPv4Only or DualStack) - IPv6AccessType field (External or Internal) - Static IPv6 address assignment - IPv6 address reporting in Machine status The reconciler now configures GCP instances with appropriate stack types, IPv6 access configurations, and extracts both IPv4 and IPv6 addresses from running instances. Includes validation to ensure IPv6-specific fields are only used with DualStack configurations. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> Note: This commit is temporary and only used for testing. Please be aware that MAPI is being transitioned to CAPI. This is not currently available for GCP.
5358064 to
64bd9be
Compare
|
@barbacbd: 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. |
Enable GCP instances to use dual-stack networking with both IPv4 and IPv6
addresses to support modern networking requirements and IPv6-first environments.
This change extends the GCPNetworkInterface spec to support:
The reconciler now configures GCP instances with appropriate stack types,
IPv6 access configurations, and extracts both IPv4 and IPv6 addresses
from running instances. Includes validation to ensure IPv6-specific fields
are only used with DualStack configurations.
Co-Authored-By: Claude Sonnet 4.5 noreply@anthropic.com
Note: This commit is temporary and only used for testing. Please be aware that MAPI is being transitioned to CAPI. This is not currently available for GCP.