Feature/support Add support for L4 Internal Loadbalancer with IPv6#8453
Conversation
Added the 'ipVersion' field to the forwarding-rule resource. The new field accept enum from one of ['IPV4', 'IPV6']. If not specified, the IPV4 value will be used.
Added the 'ipVersion' field to the forwarding-rule resource. The new field accept enum from one of ['IPV4', 'IPV6']. If not specified, the IPV4 value will be used.
|
Hello! I am a robot. It looks like you are a community contributor. @rileykarson, a repository maintainer, has been assigned to review your changes. If you have not received review feedback within 2 business days, please leave a comment on this PR asking them to take a look. You can help make sure that review is quick by doing a self-review and by running impacted tests locally. |
|
Hi @rileykarson, please kindly help to take a look at the PR when you've got some time, thank you :) |
|
Hi @rileykarson just a friendly reminder, can you please help to review the change when you've got sometime? Thanks |
rileykarson
left a comment
There was a problem hiding this comment.
Looks reasonable at first glance- running build+test
|
Hi there, I'm the Modular magician. I've detected the following information about your changes: Diff reportYour PR generated some diffs in downstreams - here they are. Terraform GA: Diff ( 3 files changed, 161 insertions(+)) |
Tests analyticsTotal tests: Action takenFound 2 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected testsTestAccContainerAwsNodePool_BetaBasicHandWritten|TestAccComputeForwardingRule_forwardingRuleInternallbIpv6Example |
|
Rerun these tests in REPLAYING mode to catch issues
|
|
Ah- two minor lint errors, let's resolve those before merging: |
Added the 'ipVersion' field to the forwarding-rule resource. The new field accept enum from one of ['IPV4', 'IPV6']. If not specified, the IPV4 value will be used.
|
Hi there, I'm the Modular magician. I've detected the following information about your changes: Diff reportYour PR generated some diffs in downstreams - here they are. Terraform GA: Diff ( 3 files changed, 161 insertions(+)) |
Tests analyticsTotal tests: Action takenFound 1 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected testsTestAccContainerAwsNodePool_BetaBasicHandWritten |
|
|
| all_ports = true | ||
| network = google_compute_network.default.name | ||
| subnetwork = google_compute_subnetwork.default.name | ||
| ip_version = "IPV6" |
There was a problem hiding this comment.
Agh, I just thought of a possible failure case. Some APIs, GCE in particular, will sometimes return a null when the default value is returned from the API. Could you amend an existing test to explicitly send IPV4? That'll confirm whether we need to mitigate that behaviour here or not.
There was a problem hiding this comment.
Got it, I'll try modify one basic test case. Bth, should we do default_value = IPV4, instead of default_from_api=true?
There was a problem hiding this comment.
Either is fine. Since the field is immutable, default_from_api is a little safer. Explicit default values create a slightly cleaner plan, though, since the default value is known when planning.
Added the 'ipVersion' field to the forwarding-rule resource. The new field accept enum from one of ['IPV4', 'IPV6']. If not specified, the IPV4 value will be used.
|
@rileykarson can you please help to trigger the workflow again? I registered google org yesterday afternoon, however it still doesn't seem to allow me run the presubmit |
|
Triggered! It'll only recheck on new commits, since that's when the job is triggered. |
Got it. Thanks! Btw, forgot to ask this question in the previous meeting, when will the next release cut for this repo? |
|
Hi there, I'm the Modular magician. I've detected the following information about your changes: Diff reportYour PR generated some diffs in downstreams - here they are. Terraform GA: Diff ( 3 files changed, 163 insertions(+)) |
|
We cut on Tuesdays at EOD and release on the following Monday. go/terraform-releases internally. |
|
Got it. So ultimately I may catch the release on Aug 14th |
|
Yep! |
Tests analyticsTotal tests: Action takenFound 4 affected test(s) by replaying old test recordings. Starting RECORDING based on the most recent commit. Click here to see the affected testsTestAccComputeForwardingRule_forwardingRuleInternallbExample|TestAccBigtableAppProfile_bigtableAppProfileSingleclusterExample|TestAccBigtableAppProfile_bigtableAppProfileAnyclusterExample|TestAccSpannerDatabaseIamPolicy |
|
Rerun these tests in REPLAYING mode to catch issues$\textcolor{green}{\textsf{All tests passed!}} |
|
It seems like the tests passed with all three possible values: empty, IPV4 and IPV6. @rileykarson It seems like I don't have the permission to merge the PR, could you please help with the merging part? Thanks! |
|
Looking at logs:
Additionally, the null and IPV4 cases I understand to be equivalent from the API's perspective. In the event that nulls are returned as IPV4 in the future we'll be fine, as the field is |
|
@rileykarson Thanks a lot for helping in this PR!! One last question post submission -- how do we make sure the change works from end to end, i.e. if we pass in "IPv6" in this field, it will translate to the correct gcloud cmd |
|
Terraform and gcloud are both REST API clients, there's no dependency between them. The |
Added the 'ipVersion' field to the forwarding-rule resource. The new field accept enum from one of ['IPV4', 'IPV6']. If not specified, the IPV4 value will be used.
If this PR is for Terraform, I acknowledge that I have:
make testandmake lintin the generated providers to ensure it passes unit and linter tests.