Skip to content

Fix ContainerNodePool windowsnodeconfig fixture and align MockGCP - #13609

Open
ada-coder-bot wants to merge 1 commit into
GoogleCloudPlatform:masterfrom
ada-coder-bot:issue-13420-1790888084
Open

ada-coder-bot wants to merge 1 commit into
GoogleCloudPlatform:masterfrom
ada-coder-bot:issue-13420-1790888084

Conversation

@ada-coder-bot

Copy link
Copy Markdown
Collaborator

Overview

This PR resolves issue #13420 by fixing the invalid osVersion enum value in the containernodepool-windowsnodeconfig test fixture, updating the cluster dependency to enable IP aliasing (required for Windows node pools), aligning mockgcp/mockcontainer, and re-recording golden HTTP logs against real GCP.

Root Cause & Changes

  1. Invalid Enum in create.yaml:
    • Changed osVersion: OS_2022 to the valid protobuf enum osVersion: OS_VERSION_LTSC2022.
  2. Cluster Dependency Configuration:
    • Added ipAllocationPolicy: {} in dependencies.yaml to ensure VPC-native cluster configuration (IP aliasing), which is required for Windows node pools.
    • Fixed typo in the license header in dependencies.yaml.
  3. MockGCP Cleanup & Behavioral Alignment:
    • Removed workaround enum rewriting (OS_2022 <-> OS_VERSION_LTSC2022 and OS_2019 <-> OS_VERSION_LTSC2019) from mockgcp/mockcontainer/service.go.
    • Prevented setting EffectiveCgroupMode on Windows nodes in mockgcp/mockcontainer/nodepool.go (Windows nodes do not use Linux cgroups).
    • Updated normalizeGKEInstanceGroupNames regex in mockgcp/mockcontainer/normalize.go to match any gke-*-grp IGM name format consistently across real GCP and mock logs.
  4. Re-recording & Verification:
    • Re-recorded real GCP HTTP traffic and golden object manifests using ./hack/record-gcp.
    • Enabled golden log alignment check by removing "container/v1beta1/containernodepool/containernodepool-windowsnodeconfig": true from mockGCPSkipFixtures in pkg/test/resourcefixture/golden_alignment_test.go.
    • Verified that both TestGoldenLogAlignment and TestAllInSeries/fixtures/containernodepool-windowsnodeconfig pass cleanly against MockGCP.

Fixes #13420

This PR was generated by the overseer agent (powered by the gemini-3.7-flash model).

NONE
@google-oss-prow

Copy link
Copy Markdown
Contributor

[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 assign justinsb for approval. For more information see the Kubernetes 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

@argus-watcher-bot

Copy link
Copy Markdown
Collaborator

🤖 AI Factory started investigating CI check failures for this pull request.

Note: We recommend waiting for the 'ready-for-human' label before leaving review comments. Comments added while the system is actively working may be associated with outdated commits once a new commit is pushed, causing them to be ignored.

Fixes the invalid osVersion enum value in the windowsnodeconfig test
fixture (changed from OS_2022 to OS_VERSION_LTSC2022) and enables IP
aliasing on the parent ContainerCluster dependency.

Removes the hacky OS_2022/OS_2019 string replacements in mockcontainer,
ensures EffectiveCgroupMode is not populated for Windows node pools,
normalizes GKE instance group manager names consistently, re-records
golden GCP logs against real GCP, and re-enables golden log alignment
testing for the fixture.

Fix: GoogleCloudPlatform#13420
@ada-coder-bot
ada-coder-bot force-pushed the issue-13420-1790888084 branch from 816bc15 to 781a1ce Compare October 2, 2026 06:49
@ada-coder-bot

Copy link
Copy Markdown
Collaborator Author

Investigating tests-e2e-fixtures-container-1-of-2 failure

Run: 36938264000 (https://github.com/GoogleCloudPlatform/k8s-config-connector/actions/runs/36938264000/job/110624661580)
Name: tests-e2e-fixtures-container-1-of-2
Cause: Code Error
Details: Overly broad regex gke-[a-z0-9-]+-grp in mockgcp/mockcontainer/normalize.go matched all standard node pool instance group manager names (such as default-pool-grp and nodepool-sample-*-grp) and replaced them with gke-containercluster-abcdef-normalized-grp, causing HTTP mock log diff failures across container test fixtures in shard 1.
Action Taken: Updated normalizeGKEInstanceGroupNames in mockgcp/mockcontainer/normalize.go to properly handle default-pool and named node pools when normalizing 8-hex-char hash suffixes from real GCP responses, aligned containernodepool-windowsnodeconfig/_http.log, and verified all 26 shard 1 tests pass.

Investigating tests-e2e-fixtures-container-2-of-2 failure

Run: 36938264000 (https://github.com/GoogleCloudPlatform/k8s-config-connector/actions/runs/36938264000/job/110624661579)
Name: tests-e2e-fixtures-container-2-of-2
Cause: Code Error
Details: Same root cause as shard 1: global normalization rule replaced standard node pool instance group manager names with normalized-grp, causing mock log mismatches across shard 2 fixtures.
Action Taken: Applied the normalization fix in mockgcp/mockcontainer/normalize.go and verified all 25 shard 2 tests pass.

Investigating tests-e2e-fixtures-gkebackup failure

Run: 36938264000 (https://github.com/GoogleCloudPlatform/k8s-config-connector/actions/runs/36938264000/job/110624671980)
Name: tests-e2e-fixtures-gkebackup
Cause: Code Error
Details: In gkebackuprestore-minimal, the cluster dependency's default-pool-grp instance group manager name was incorrectly normalized to normalized-grp by the overly broad normalization regex.
Action Taken: Applied the normalization fix in mockgcp/mockcontainer/normalize.go and verified all 6 gkebackup tests pass.

(This report was generated by overseer)

@argus-watcher-bot

Copy link
Copy Markdown
Collaborator

🤖 AI Factory started investigating CI check failures for this pull request.

Note: We recommend waiting for the 'ready-for-human' label before leaving review comments. Comments added while the system is actively working may be associated with outdated commits once a new commit is pushed, causing them to be ignored.

@ada-coder-bot

Copy link
Copy Markdown
Collaborator Author

Investigating tests-e2e-fixtures-compute-1-of-4 failure

Run: 36975462629 (https://github.com/GoogleCloudPlatform/k8s-config-connector/actions/runs/36975462629/job/110739348842)
Name: tests-e2e-fixtures-compute-1-of-4
Cause: Infrastructure
Details: The job failed during test environment startup due to a transient file lock conflict when launching etcd (fork/exec .../.build/envtest-bin/etcd: text file busy). This was an infrastructure flake unrelated to the changes in this PR.
Action Taken: Rerun triggered

Investigating tests-e2e-fixtures-compute-3-of-4 failure

Run: 36975462629 (https://github.com/GoogleCloudPlatform/k8s-config-connector/actions/runs/36975462629/job/110739348761)
Name: tests-e2e-fixtures-compute-3-of-4
Cause: Infrastructure
Details: The job encountered the same transient file lock conflict when launching etcd (fork/exec .../.build/envtest-bin/etcd: text file busy).
Action Taken: Rerun triggered

Investigating tests-e2e-fixtures-certificatemanager failure

Run: 36975462629 (https://github.com/GoogleCloudPlatform/k8s-config-connector/actions/runs/36975462629/job/110739349168)
Name: tests-e2e-fixtures-certificatemanager
Cause: Infrastructure
Details: The job failed during envtest asset setup with /dev/tasks/setup-envtest: line 39: .../.build/envtest-bin/etcd: Text file busy.
Action Taken: Rerun triggered

(This report was generated by overseer)

This branch has not been deployed

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