Skip to content

Commit a38b190

Browse files
authored
feat(baremetal): expose user_data field for cloud-init (#2531)
1 parent a071adf commit a38b190

File tree

3 files changed

+28
-4
lines changed

3 files changed

+28
-4
lines changed

packages_generated/baremetal/src/v1/api.gen.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -233,11 +233,11 @@ export class API extends ParentAPI {
233233
* @param request - The request {@link InstallServerRequest}
234234
* @returns A Promise of Server
235235
*/
236-
installServer = (request: Readonly<InstallServerRequest>) =>
236+
installServer = async (request: Readonly<InstallServerRequest>) =>
237237
this.client.fetch<Server>(
238238
{
239239
body: JSON.stringify(
240-
marshalInstallServerRequest(request, this.client.settings),
240+
await marshalInstallServerRequest(request, this.client.settings),
241241
),
242242
headers: jsonContentHeaders,
243243
method: 'POST',

packages_generated/baremetal/src/v1/marshalling.gen.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// If you have any remark or suggestion do not hesitate to open an issue.
33
import {
44
isJSONObject,
5+
marshalBlobToScwFile,
56
resolveOneOf,
67
unmarshalArrayOfObject,
78
unmarshalDate,
@@ -338,6 +339,7 @@ export const unmarshalServer = (data: unknown): Server => {
338339
status: data.status,
339340
tags: data.tags,
340341
updatedAt: unmarshalDate(data.updated_at),
342+
userData: data.user_data,
341343
zone: data.zone,
342344
} as Server
343345
}
@@ -879,6 +881,7 @@ export const marshalCreateServerRequest = (
879881
option_ids: request.optionIds,
880882
protected: request.protected,
881883
tags: request.tags,
884+
user_data: request.userData,
882885
...resolveOneOf([
883886
{
884887
default: defaults.defaultProjectId,
@@ -900,10 +903,10 @@ export const marshalAddOptionServerRequest = (
900903
expires_at: request.expiresAt,
901904
})
902905

903-
export const marshalInstallServerRequest = (
906+
export const marshalInstallServerRequest = async (
904907
request: InstallServerRequest,
905908
defaults: DefaultValues,
906-
): Record<string, unknown> => ({
909+
): Promise<Record<string, unknown>> => ({
907910
hostname: request.hostname,
908911
os_id: request.osId,
909912
partitioning_schema:
@@ -915,6 +918,10 @@ export const marshalInstallServerRequest = (
915918
service_user: request.serviceUser,
916919
ssh_key_ids: request.sshKeyIds,
917920
user: request.user,
921+
user_data:
922+
request.userData !== undefined
923+
? await marshalBlobToScwFile(request.userData)
924+
: undefined,
918925
})
919926

920927
export const marshalPrivateNetworkApiAddServerPrivateNetworkRequest = (
@@ -969,6 +976,7 @@ export const marshalUpdateServerRequest = (
969976
name: request.name,
970977
protected: request.protected,
971978
tags: request.tags,
979+
user_data: request.userData,
972980
})
973981

974982
export const marshalUpdateSettingRequest = (

packages_generated/baremetal/src/v1/types.gen.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -525,6 +525,10 @@ export type CreateServerRequest = {
525525
* If enabled, the server can not be deleted.
526526
*/
527527
protected: boolean
528+
/**
529+
* Configuration data to pass to cloud-init such as a YAML cloud config data or a user-data script.
530+
*/
531+
userData?: string
528532
}
529533

530534
export interface Server {
@@ -608,6 +612,10 @@ export interface Server {
608612
* If enabled, the server can not be deleted.
609613
*/
610614
protected: boolean
615+
/**
616+
* Optional configuration data passed to cloud-init.
617+
*/
618+
userData?: string
611619
}
612620

613621
export interface OS {
@@ -1087,6 +1095,10 @@ export type InstallServerRequest = {
10871095
* Partitioning schema.
10881096
*/
10891097
partitioningSchema?: Schema
1098+
/**
1099+
* @deprecated Configuration data to pass to cloud-init such as a YAML cloud config data or a user-data script.
1100+
*/
1101+
userData?: Blob
10901102
}
10911103

10921104
export type ListOSRequest = {
@@ -1528,6 +1540,10 @@ export type UpdateServerRequest = {
15281540
* If enabled, the server can not be deleted.
15291541
*/
15301542
protected?: boolean
1543+
/**
1544+
* Configuration data to pass to cloud-init such as a YAML cloud config data or a user-data script.
1545+
*/
1546+
userData?: string
15311547
}
15321548

15331549
export type UpdateSettingRequest = {

0 commit comments

Comments
 (0)