Skip to content

Commit 4ed6797

Browse files
feat: Add design proposal: Rosetta x86-64 emulation for vz Linux guests
1 parent c543e44 commit 4ed6797

5 files changed

Lines changed: 31 additions & 2 deletions

File tree

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 52
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/hypeman-f9fed11ca56bb499302232ce70b65d8fa6c0f88c5274dbf16670283303449c63.yml
3-
openapi_spec_hash: 24530949a7f53ab57694443c45088190
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/hypeman-6c73c988bf5930a45cafe6d304d97479842354d4181bc77f2aa39838b531d431.yml
3+
openapi_spec_hash: 1bcecb92c1a31dcb09a659272be61633
44
config_hash: 99e93e381d8384de5a44c6eeed4bd4b1

src/resources/images.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,11 @@ export interface Image {
105105
*/
106106
error?: string | null;
107107

108+
/**
109+
* Resolved image platform as os/arch[/variant] (e.g. "linux/amd64")
110+
*/
111+
platform?: string;
112+
108113
/**
109114
* Position in build queue (null if not queued)
110115
*/
@@ -134,6 +139,14 @@ export interface ImageCreateParams {
134139
*/
135140
name: string;
136141

142+
/**
143+
* Target platform as os/arch[/variant] (e.g. "linux/amd64"), matching Docker
144+
* --platform. Omit for the host platform. Not a fixed enum: the os/arch[/variant]
145+
* grammar is validated server-side and invalid values return 400 invalid_platform.
146+
* Only os "linux" with arch amd64 or arm64 is accepted today.
147+
*/
148+
platform?: string;
149+
137150
/**
138151
* User-defined key-value tags.
139152
*/

src/resources/instances/instances.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -548,6 +548,12 @@ export interface Instance {
548548
*/
549549
phase_durations_ms?: { [key: string]: number };
550550

551+
/**
552+
* Resolved image platform as os/arch[/variant] (e.g. "linux/amd64"). amd64 images
553+
* on an arm64 host run under Rosetta emulation.
554+
*/
555+
platform?: string;
556+
551557
/**
552558
* Whole-instance restart supervision policy.
553559
*/
@@ -1113,6 +1119,14 @@ export interface InstanceCreateParams {
11131119
*/
11141120
overlay_size?: string;
11151121

1122+
/**
1123+
* Target platform as os/arch[/variant] (e.g. "linux/amd64"), matching Docker
1124+
* --platform. Omit for the host platform. Not a fixed enum: the os/arch[/variant]
1125+
* grammar is validated server-side and invalid values return 400 invalid_platform.
1126+
* Only os "linux" with arch amd64 or arm64 is accepted today.
1127+
*/
1128+
platform?: string;
1129+
11161130
/**
11171131
* Whole-instance restart supervision policy.
11181132
*/

tests/api-resources/images.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ describe('resource images', () => {
2424
test.skip('create: required and optional params', async () => {
2525
const response = await client.images.create({
2626
name: 'docker.io/library/nginx:latest',
27+
platform: 'linux/amd64',
2728
tags: { team: 'backend', env: 'staging' },
2829
});
2930
});

tests/api-resources/instances/instances.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ describe('resource instances', () => {
7979
enabled: true,
8080
},
8181
overlay_size: '20GB',
82+
platform: 'linux/amd64',
8283
restart_policy: {
8384
backoff: '5s',
8485
max_attempts: 10,

0 commit comments

Comments
 (0)