From 985f0fc25667535a8f3b4bd094c60d0d8052d2ba Mon Sep 17 00:00:00 2001 From: Bryce Date: Wed, 25 Feb 2026 11:01:29 -0800 Subject: [PATCH 1/2] raid preference update --- .../virtual-providers/VirtualProviderIso.yml | 68 +------------------ .../VirtualProviderIsoBond.yml | 1 - .../VirtualProviderIsoIpxeConfig.yml | 34 ++++++++++ .../VirtualProviderIsoServerConfig.yml | 40 +++++++++++ .../virtual-providers/isos/iso.yml | 67 +----------------- .../virtual-providers/isos/isos.yml | 65 +----------------- 6 files changed, 80 insertions(+), 195 deletions(-) create mode 100644 components/schemas/infrastructure/virtual-providers/VirtualProviderIsoIpxeConfig.yml create mode 100644 components/schemas/infrastructure/virtual-providers/VirtualProviderIsoServerConfig.yml diff --git a/components/schemas/infrastructure/virtual-providers/VirtualProviderIso.yml b/components/schemas/infrastructure/virtual-providers/VirtualProviderIso.yml index 35fb805e..674fdb89 100644 --- a/components/schemas/infrastructure/virtual-providers/VirtualProviderIso.yml +++ b/components/schemas/infrastructure/virtual-providers/VirtualProviderIso.yml @@ -33,76 +33,12 @@ properties: description: Authentication token for the ISO. ipxe: oneOf: - - type: object - properties: - vlan_id: - type: - - integer - - "null" - description: VLAN ID for the IPXE boot. - network_interface: - type: - - integer - - "null" - description: Network interface for the IPXE boot. - static_ip: - type: - - string - - "null" - description: Static IP assigned to the IPXE boot. - netmask: - type: - - string - - "null" - description: Netmask assigned to the IPXE boot. - gateway_ip: - type: - - string - - "null" - description: Gateway IP assigned to the IPXE boot. - dns_ip: - type: - - string - - "null" - description: DNS IP assigned to the IPXE boot. + - $ref: VirtualProviderIsoIpxeConfig.yml - type: "null" server: oneOf: - - type: object - required: - - nics - properties: - storage: - oneOf: - - type: object - properties: - conditional_format: - type: boolean - - type: "null" - sdn_neighbor_preference: - oneOf: - - type: string - enum: - - ipv4 - - ipv6 - - type: "null" - nics: - description: An array of server network interfaces. - type: array - items: - $ref: VirtualProviderIsoNic.yml - bonds: - description: An array of bonds - type: array - items: - $ref: VirtualProviderIsoBond.yml - additional_kernel_args: - description: Appends additional kernel arguments when booting CycleOS. - oneOf: - - type: string - - type: "null" + - $ref: VirtualProviderIsoServerConfig.yml - type: "null" - backend: oneOf: - type: object diff --git a/components/schemas/infrastructure/virtual-providers/VirtualProviderIsoBond.yml b/components/schemas/infrastructure/virtual-providers/VirtualProviderIsoBond.yml index 813f41cb..619eef8f 100644 --- a/components/schemas/infrastructure/virtual-providers/VirtualProviderIsoBond.yml +++ b/components/schemas/infrastructure/virtual-providers/VirtualProviderIsoBond.yml @@ -7,7 +7,6 @@ required: properties: interface_name: type: string - interfaces: type: array items: diff --git a/components/schemas/infrastructure/virtual-providers/VirtualProviderIsoIpxeConfig.yml b/components/schemas/infrastructure/virtual-providers/VirtualProviderIsoIpxeConfig.yml new file mode 100644 index 00000000..543f4677 --- /dev/null +++ b/components/schemas/infrastructure/virtual-providers/VirtualProviderIsoIpxeConfig.yml @@ -0,0 +1,34 @@ +title: VirtualProviderIsoIpxeConfig +description: The IPXE configuration for an ISO. +type: object +properties: + vlan_id: + type: + - integer + - "null" + description: VLAN ID for the IPXE boot. + network_interface: + type: + - integer + - "null" + description: Network interface for the IPXE boot. + static_ip: + type: + - string + - "null" + description: Static IP assigned to the IPXE boot. + netmask: + type: + - string + - "null" + description: Netmask assigned to the IPXE boot. + gateway_ip: + type: + - string + - "null" + description: Gateway IP assigned to the IPXE boot. + dns_ip: + type: + - string + - "null" + description: DNS IP assigned to the IPXE boot. diff --git a/components/schemas/infrastructure/virtual-providers/VirtualProviderIsoServerConfig.yml b/components/schemas/infrastructure/virtual-providers/VirtualProviderIsoServerConfig.yml new file mode 100644 index 00000000..0d7b2157 --- /dev/null +++ b/components/schemas/infrastructure/virtual-providers/VirtualProviderIsoServerConfig.yml @@ -0,0 +1,40 @@ +title: VirtualProviderIsoServerConfig +type: object +required: + - nics +properties: + storage: + oneOf: + - type: object + properties: + conditional_format: + type: boolean + raid: + oneOf: + - type: string + description: Raid preference settings. + enum: [disable, max-storage, max-redundancy, balanced] + - type: "null" + - type: "null" + sdn_neighbor_preference: + oneOf: + - type: string + enum: + - ipv4 + - ipv6 + - type: "null" + nics: + description: An array of server network interfaces. + type: array + items: + $ref: VirtualProviderIsoNic.yml + bonds: + description: An array of bonds + type: array + items: + $ref: VirtualProviderIsoBond.yml + additional_kernel_args: + description: Appends additional kernel arguments when booting CycleOS. + oneOf: + - type: string + - type: "null" diff --git a/platform/paths/infrastructure/virtual-providers/isos/iso.yml b/platform/paths/infrastructure/virtual-providers/isos/iso.yml index ab5b1b38..d8c5a788 100644 --- a/platform/paths/infrastructure/virtual-providers/isos/iso.yml +++ b/platform/paths/infrastructure/virtual-providers/isos/iso.yml @@ -121,74 +121,11 @@ patch: ipxe: description: ISO IPXE configuration. Only available when ISO is in new state. oneOf: - - type: object - properties: - vlan_id: - type: - - integer - - "null" - description: VLAN ID for the IPXE boot. - network_interface: - type: - - integer - - "null" - description: Network interface for the IPXE boot. - static_ip: - type: - - string - - "null" - description: Static IP assigned to the IPXE boot. - netmask: - type: - - string - - "null" - description: Netmask assigned to the IPXE boot. - gateway_ip: - type: - - string - - "null" - description: Gateway IP assigned to the IPXE boot. - dns_ip: - type: - - string - - "null" - description: DNS IP assigned to the IPXE boot. + - $ref: ../../../../../components/schemas/infrastructure/virtual-providers/VirtualProviderIsoIpxeConfig.yml - type: "null" server: oneOf: - - type: object - required: - - nics - properties: - storage: - oneOf: - - type: object - properties: - conditional_format: - type: boolean - - type: "null" - sdn_neighbor_preference: - oneOf: - - type: string - enum: - - ipv4 - - ipv6 - - type: "null" - nics: - description: An array of server network interfaces. - type: array - items: - $ref: ../../../../../components/schemas/infrastructure/virtual-providers/VirtualProviderIsoNic.yml - bonds: - description: An array of bonds - type: array - items: - $ref: ../../../../../components/schemas/infrastructure/virtual-providers/VirtualProviderIsoBond.yml - additional_kernel_args: - description: Appends additional kernel arguments when booting CycleOS. - oneOf: - - type: string - - type: "null" + - $ref: ../../../../../components/schemas/infrastructure/virtual-providers/VirtualProviderIsoServerConfig.yml - type: "null" responses: 202: diff --git a/platform/paths/infrastructure/virtual-providers/isos/isos.yml b/platform/paths/infrastructure/virtual-providers/isos/isos.yml index cf62e90c..88f9c088 100644 --- a/platform/paths/infrastructure/virtual-providers/isos/isos.yml +++ b/platform/paths/infrastructure/virtual-providers/isos/isos.yml @@ -37,72 +37,11 @@ post: description: Authentication token for the ISO. ipxe: oneOf: - - type: object - properties: - vlan_id: - type: - - integer - - "null" - description: VLAN ID for the IPXE boot. - network_interface: - type: - - integer - - "null" - description: Network interface for the IPXE boot. - static_ip: - type: - - string - - "null" - description: Static IP assigned to the IPXE boot. - netmask: - type: - - string - - "null" - description: Netmask assigned to the IPXE boot. - gateway_ip: - type: - - string - - "null" - description: Gateway IP assigned to the IPXE boot. - dns_ip: - type: - - string - - "null" - description: DNS IP assigned to the IPXE boot. + - $ref: ../../../../../components/schemas/infrastructure/virtual-providers/VirtualProviderIsoIpxeConfig.yml - type: "null" server: oneOf: - - type: object - properties: - storage: - oneOf: - - type: object - properties: - conditional_format: - type: boolean - - type: "null" - sdn_neighbor_preference: - oneOf: - - type: string - enum: - - ipv4 - - ipv6 - - type: "null" - nics: - description: An array of server network interfaces. - type: array - items: - $ref: ../../../../../components/schemas/infrastructure/virtual-providers/VirtualProviderIsoNic.yml - bonds: - description: An array of bonds - type: array - items: - $ref: ../../../../../components/schemas/infrastructure/virtual-providers/VirtualProviderIsoBond.yml - additional_kernel_args: - description: Appends additional kernel arguments when booting CycleOS. - oneOf: - - type: string - - type: "null" + - $ref: ../../../../../components/schemas/infrastructure/virtual-providers/VirtualProviderIsoServerConfig.yml - type: "null" responses: From 398092c414cb27a4a2be60fd4ce32ddf4ed06d21 Mon Sep 17 00:00:00 2001 From: Bryce Date: Wed, 25 Feb 2026 11:09:56 -0800 Subject: [PATCH 2/2] update description --- .../virtual-providers/VirtualProviderIsoServerConfig.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/schemas/infrastructure/virtual-providers/VirtualProviderIsoServerConfig.yml b/components/schemas/infrastructure/virtual-providers/VirtualProviderIsoServerConfig.yml index 0d7b2157..52f401af 100644 --- a/components/schemas/infrastructure/virtual-providers/VirtualProviderIsoServerConfig.yml +++ b/components/schemas/infrastructure/virtual-providers/VirtualProviderIsoServerConfig.yml @@ -12,7 +12,7 @@ properties: raid: oneOf: - type: string - description: Raid preference settings. + description: Determines how Cycle will configure RAID on storage drives. enum: [disable, max-storage, max-redundancy, balanced] - type: "null" - type: "null"