Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[#12620] Allow gke nodepool labels to be updated #6941

Merged
merged 2 commits into from
Dec 19, 2022

Conversation

LucaPrete
Copy link
Member

@LucaPrete LucaPrete commented Dec 11, 2022

Allow GKE nodepool labels to be updated without causing nodepools disruption.

If this PR is for Terraform, I acknowledge that I have:

  • Searched through the issue tracker for an open issue that this either resolves or contributes to, commented on it to claim it, and written "fixes {url}" or "part of {url}" in this PR description. If there were no relevant open issues, I opened one and commented that I would like to work on it (not necessary for very small changes).
  • Generated Terraform, and ran make test and make lint to ensure it passes unit and linter tests.
  • Ensured that all new fields I added that can be set by a user appear in at least one example (for generated resources) or third_party test (for handwritten resources or update tests).
  • Ran relevant acceptance tests (If the acceptance tests do not yet pass or you are unable to run them, please let your reviewer know).
  • Read the Release Notes Guide before writing my release note below.
container: supported in-place update for `labels` in `google_container_node_pool`

@modular-magician
Copy link
Collaborator

Hello! I am a robot who works on Magic Modules PRs.

I've detected that you're a community contributor. @shuyama1, a repository maintainer, has been assigned to assist you and help review your changes.

❓ First time contributing? Click here for more details

Your assigned reviewer will help review your code by:

  • Ensuring it's backwards compatible, covers common error cases, etc.
  • Summarizing the change into a user-facing changelog note.
  • Passes tests, either our "VCR" suite, a set of presubmit tests, or with manual test runs.

You can help make sure that review is quick by running local tests and ensuring they're passing in between each push you make to your PR's branch. Also, try to leave a comment with each push you make, as pushes generally don't generate emails.

If your reviewer doesn't get back to you within a week after your most recent change, please feel free to leave a comment on the issue asking them to take a look! In the absence of a dedicated review dashboard most maintainers manage their pending reviews through email, and those will sometimes get lost in their inbox.


@modular-magician
Copy link
Collaborator

Hi there, I'm the Modular magician. I've detected the following information about your changes:

Diff report

Your PR generated some diffs in downstreams - here they are.

Terraform GA: Diff ( 3 files changed, 60 insertions(+), 14 deletions(-))
Terraform Beta: Diff ( 3 files changed, 60 insertions(+), 14 deletions(-))
TF Validator: Diff ( 2 files changed, 3 insertions(+), 3 deletions(-))

@modular-magician
Copy link
Collaborator

Tests analytics

Total tests: 2339
Passed tests 2086
Skipped tests: 244
Failed tests: 9

Action taken

Triggering VCR tests in RECORDING mode for the tests that failed during VCR. Click here to see the failed tests
TestAccLoggingBucketConfigProject_cmekSettings|TestAccSqlUser_postgresAbandon|TestAccSqlUser_postgresIAM|TestAccSqlUser_postgres|TestAccFirebaserulesRelease_BasicRelease|TestAccContainerCluster_withSandboxConfig|TestAccContainerNodePool_withNodeConfig|TestAccComputeForwardingRule_update|TestAccDataSourceSqlDatabaseInstance_basic

@modular-magician
Copy link
Collaborator

Tests passed during RECORDING mode:
TestAccLoggingBucketConfigProject_cmekSettings[Debug log]
TestAccSqlUser_postgresIAM[Debug log]
TestAccSqlUser_postgres[Debug log]
TestAccFirebaserulesRelease_BasicRelease[Debug log]
TestAccContainerNodePool_withNodeConfig[Debug log]
TestAccComputeForwardingRule_update[Debug log]
TestAccDataSourceSqlDatabaseInstance_basic[Debug log]

Tests failed during RECORDING mode:
TestAccSqlUser_postgresAbandon[Error message] [Debug log]
TestAccContainerCluster_withSandboxConfig[Error message] [Debug log]

Please fix these to complete your PR
View the build log or the debug log for each test

@shuyama1
Copy link
Member

/gcbrun

@modular-magician
Copy link
Collaborator

Hi there, I'm the Modular magician. I've detected the following information about your changes:

Diff report

Your PR generated some diffs in downstreams - here they are.

Terraform GA: Diff ( 3 files changed, 60 insertions(+), 14 deletions(-))
Terraform Beta: Diff ( 3 files changed, 60 insertions(+), 14 deletions(-))
TF Validator: Diff ( 2 files changed, 3 insertions(+), 3 deletions(-))

@modular-magician
Copy link
Collaborator

Tests analytics

Total tests: 2340
Passed tests 2092
Skipped tests: 244
Failed tests: 4

Action taken

Triggering VCR tests in RECORDING mode for the tests that failed during VCR. Click here to see the failed tests
TestAccFirebaserulesRelease_BasicRelease|TestAccContainerCluster_withSandboxConfig|TestAccComputeForwardingRule_update|TestAccLoggingBucketConfigProject_cmekSettings

@modular-magician
Copy link
Collaborator

Tests passed during RECORDING mode:
TestAccFirebaserulesRelease_BasicRelease[Debug log]
TestAccComputeForwardingRule_update[Debug log]
TestAccLoggingBucketConfigProject_cmekSettings[Debug log]

Tests failed during RECORDING mode:
TestAccContainerCluster_withSandboxConfig[Error message] [Debug log]

Please fix these to complete your PR
View the build log or the debug log for each test

@LucaPrete
Copy link
Member Author

Hi @shuyama1 !

I seems one of the old container cluster tests is failing because labels don't get updated correctly (more precisely, the label we add to the cluster doesn't gets added...)

I think this is because it uses as well the node pool code. I tried to look for methods in the go lib to update labels (as it happens for tags or resource labels), but I haven't found anything.

Any suggestion?

Thanks!

@shuyama1
Copy link
Member

shuyama1 commented Dec 14, 2022

Do we know if cluster labels (node_config.labels? I assume) can be updated (in-place update)? If not, we should add the labels field to forceNewClusterNodeConfigFields at https://github.com/GoogleCloudPlatform/magic-modules/blob/main/mmv1/third_party/terraform/resources/resource_container_cluster.go.erb#L93, otherwise, we probably need to handle update in cluster as well at https://github.com/GoogleCloudPlatform/magic-modules/blob/main/mmv1/third_party/terraform/resources/resource_container_cluster.go.erb#L3121, since we remove the they share the schema for node_config and we remove the forcenew for labels

@LucaPrete LucaPrete force-pushed the 12620-labels-update-gke branch 2 times, most recently from 901fe7f to b98a0ef Compare December 15, 2022 10:25
@LucaPrete
Copy link
Member Author

@shuyama1 makes sense. I don't have visibility (but I can try to contact some SWEs) to say labels can be updated at cluster level....At least I don't see anything obvious in the APIs. As such, for now I'll try to add the field to forceNewClusterNodeConfigFields. Let's see how it goes...fingers crossed!

@modular-magician
Copy link
Collaborator

Hi there, I'm the Modular magician. I've detected the following information about your changes:

Diff report

Your PR generated some diffs in downstreams - here they are.

Terraform GA: Diff ( 4 files changed, 61 insertions(+), 14 deletions(-))
Terraform Beta: Diff ( 5 files changed, 62 insertions(+), 15 deletions(-))
TF Validator: Diff ( 2 files changed, 3 insertions(+), 3 deletions(-))

@modular-magician
Copy link
Collaborator

Hi there, I'm the Modular magician. I've detected the following information about your changes:

Diff report

Your PR generated some diffs in downstreams - here they are.

Terraform GA: Diff ( 4 files changed, 61 insertions(+), 14 deletions(-))
Terraform Beta: Diff ( 5 files changed, 62 insertions(+), 15 deletions(-))
TF Validator: Diff ( 2 files changed, 3 insertions(+), 3 deletions(-))

@modular-magician
Copy link
Collaborator

Tests analytics

Total tests: 2348
Passed tests 2093
Skipped tests: 246
Failed tests: 9

Action taken

Triggering VCR tests in RECORDING mode for the tests that failed during VCR. Click here to see the failed tests
TestAccLoggingBucketConfigProject_cmekSettings|TestAccFirebaserulesRelease_BasicRelease|TestAccContainerCluster_withInvalidGatewayApiConfigChannel|TestAccContainerCluster_withSandboxConfig|TestAccComputeRouterNat_withNatRules|TestAccComputeRouterNat_withPortAllocationMethods|TestAccComputeRouterNat_withNatIpsAndDrainNatIps|TestAccComputeRouterNat_removeLogConfig|TestAccComputeRouterNat_update

@modular-magician
Copy link
Collaborator

Tests passed during RECORDING mode:
TestAccLoggingBucketConfigProject_cmekSettings[Debug log]
TestAccFirebaserulesRelease_BasicRelease[Debug log]
TestAccContainerCluster_withInvalidGatewayApiConfigChannel[Debug log]
TestAccComputeRouterNat_withNatRules[Debug log]
TestAccComputeRouterNat_withPortAllocationMethods[Debug log]
TestAccComputeRouterNat_withNatIpsAndDrainNatIps[Debug log]
TestAccComputeRouterNat_removeLogConfig[Debug log]
TestAccComputeRouterNat_update[Debug log]

Tests failed during RECORDING mode:
TestAccContainerCluster_withSandboxConfig[Error message] [Debug log]

Please fix these to complete your PR
View the build log or the debug log for each test

@LucaPrete
Copy link
Member Author

@shuyama1 it seems adding node_config.0.labels (which is what the error is complaining about) to forceNewClusterNodeConfigFields doesn't help..still getting the same error. In the meantime, verifying with SWEs about the chance to update all the cluster labels

@LucaPrete
Copy link
Member Author

@shuyama1 FYI I confirmed with SWEs that an API to update labels at cluster level is not currently available / in plan.

Copy link
Member

@shuyama1 shuyama1 left a comment

Choose a reason for hiding this comment

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

Thanks for confirming that updating labels at cluster level is not currently available. Then I think adding labels to forceNewClusterNodeConfigFields in resource_container_cluster should do the trick.

…r.go.erb

Co-authored-by: Shuya Ma <87669292+shuyama1@users.noreply.github.com>
@LucaPrete
Copy link
Member Author

I think I tried this and it didn't work either, but let's see...

@modular-magician
Copy link
Collaborator

Hi there, I'm the Modular magician. I've detected the following information about your changes:

Diff report

Your PR generated some diffs in downstreams - here they are.

Terraform GA: Diff ( 4 files changed, 61 insertions(+), 14 deletions(-))
Terraform Beta: Diff ( 5 files changed, 62 insertions(+), 15 deletions(-))
TF Validator: Diff ( 2 files changed, 3 insertions(+), 3 deletions(-))

@modular-magician
Copy link
Collaborator

Tests analytics

Total tests: 2354
Passed tests 2102
Skipped tests: 247
Failed tests: 5

Action taken

Triggering VCR tests in RECORDING mode for the tests that failed during VCR. Click here to see the failed tests
TestAccFirebaserulesRelease_BasicRelease|TestAccContainerCluster_withInvalidGatewayApiConfigChannel|TestAccComputeForwardingRule_update|TestAccBillingSubaccount_basic|TestAccLoggingBucketConfigProject_cmekSettings

@modular-magician
Copy link
Collaborator

Tests passed during RECORDING mode:
TestAccFirebaserulesRelease_BasicRelease[Debug log]
TestAccContainerCluster_withInvalidGatewayApiConfigChannel[Debug log]
TestAccComputeForwardingRule_update[Debug log]
TestAccBillingSubaccount_basic[Debug log]
TestAccLoggingBucketConfigProject_cmekSettings[Debug log]

All tests passed
View the build log or the debug log for each test

@olegeech-me
Copy link

awesome! thank you guys, I was waiting a lot for this to be implemented!

rlapin-pl pushed a commit to rlapin-pl/magic-modules that referenced this pull request Jan 1, 2023
…#6941)

Co-authored-by: Shuya Ma <87669292+shuyama1@users.noreply.github.com>
Co-authored-by: Luca Prete <lucaprete@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
5 participants