Skip to content

Commit b107bde

Browse files
committed
fix(azure): size snapshot forks as managed disks
1 parent 9b21f1d commit b107bde

3 files changed

Lines changed: 24 additions & 2 deletions

File tree

internal/cli/azure.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,9 @@ func azureVMSizeCandidatesForClass(class string) []string {
199199
func azureVMSizeCandidatesForConfig(cfg Config) []string {
200200
candidates := azureVMSizeCandidatesForTargetModeArchitectureClass(cfg.TargetOS, cfg.WindowsMode, effectiveArchitectureForConfig(cfg), cfg.Class)
201201
mode, err := NormalizeAzureOSDiskMode(cfg.AzureOSDisk)
202+
if cfg.AzureSnapshot != "" {
203+
mode = AzureOSDiskManaged
204+
}
202205
if err != nil || !azureOSDiskUsesFullCaching(mode) {
203206
return candidates
204207
}

worker/src/config.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,9 +157,18 @@ export function leaseConfig(input: LeaseRequest, defaults: LeaseConfigDefaults =
157157
}
158158
const machineClass = input.class ?? "beast";
159159
const azureOSDisk = normalizeAzureOSDiskMode(input.azureOSDisk ?? defaults.azureOSDisk);
160+
const azureSnapshot = input.azureSnapshot ?? "";
161+
const serverTypeAzureOSDisk = azureSnapshot ? "managed" : azureOSDisk;
160162
const serverType =
161163
input.serverType ??
162-
serverTypeForConfig(provider, target, windowsMode, machineClass, architecture, azureOSDisk);
164+
serverTypeForConfig(
165+
provider,
166+
target,
167+
windowsMode,
168+
machineClass,
169+
architecture,
170+
serverTypeAzureOSDisk,
171+
);
163172
if (input.serverType) {
164173
validateArchitectureServerType(
165174
provider,
@@ -222,7 +231,7 @@ export function leaseConfig(input: LeaseRequest, defaults: LeaseConfigDefaults =
222231
? (linuxOSImage?.azureArm64Image ?? "")
223232
: (linuxOSImage?.azureImage ?? "")
224233
: ""),
225-
azureSnapshot: input.azureSnapshot ?? "",
234+
azureSnapshot,
226235
azureOSDisk,
227236
gcpProject: input.gcpProject ?? "",
228237
gcpZone: input.gcpZone ?? "",

worker/test/config.test.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,16 @@ describe("lease config", () => {
381381
sshPublicKey: "ssh-ed25519 test",
382382
});
383383
expect(windows.serverType).toBe("Standard_D8ads_v6");
384+
const snapshot = leaseConfig({
385+
provider: "azure",
386+
target: "windows",
387+
class: "standard",
388+
azureSnapshot:
389+
"/subscriptions/sub/resourceGroups/crabbox-leases/providers/Microsoft.Compute/snapshots/checkpoint-azure",
390+
azureOSDisk: "ephemeral-preview",
391+
sshPublicKey: "ssh-ed25519 test",
392+
});
393+
expect(snapshot.serverType).toBe("Standard_D2ads_v6");
384394
});
385395

386396
it("uses AWS ARM defaults when requested", () => {

0 commit comments

Comments
 (0)