[BUG] PIS builds fail on private-registry Windows images: 600s pis-image-cache timeout is too short
- Dominant language
- TypeScript
- Stars
- 2.1k
- Forks
- 395
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 13
Description
**Describe the bug**
Creating a Windows node pool with --prepared-image-specification-id pointing at a private ACR image fails every time with FailedToCreateNodeCustomizationVHD (pis-image-cache exit code 4). Turns out the internal pis-image-cache run-command has timeoutInSeconds: 600, but unpacking our ~2.3 GiB image's containerd layers on the build VM takes closer to 15 minutes. Ran the same pull by hand with no timeout attached and it completed fine, just slowly. Related to #4704.
**To Reproduce**
1. Create a PIS with --container-images pointing at a private ACR image and --assign-identity set to an identity with AcrPull on that registry
2. Grant the cluster's own identity Reader on the PIS and Managed Identity Operator on the assigned identity
3. az aks nodepool add --prepared-image-specification-id --os-type Windows ...
4. See error:
ERROR: (FailedToCreateNodeCustomizationVHD) Failed to cache container images during VHD preparation. Run command pis-image-cache failed. ... exited with code 4
**Expected behavior**
Node pool creation succeeds, or at least gets enough time to finish. Manually re-running the pull/unpack logic via az vmss run-command invoke (no timeout) completes fine in ~15 minutes.
**Environment (please complete the following information):**
- CLI Version: 2.89.1
- Kubernetes version: 1.34.4
- CLI Extension version: aks-preview 21.0.0b17
**Additional context**
The timeout is visible directly via az vmss run-command show --ids --name pis-image-cache --expand instanceView.
Couldn't find any way to raise it, no CLI flag, and a raw PUT with properties.timeoutInSeconds gets rejected as an unknown field.
Windows images are rarely small, so this will probably affect most people trying PIS with a private registry. Would be great if this timeout were configurable, or just raised for Windows by default.
Contributor guide
Assessment
This issue has not been assessed yet.