Important Notes
Most breaking API changes in this release are related to the introduction of IPv6 and local disks, which require networking and disk endpoints to distinguish between IP versions and disk types. See below for details. The Oxide CLI, Go SDK, and Terraform Provider have been updated accordingly.
Disks
The disk create API now requires a disk_backend
attribute specifying whether the disk is of type distributed or local.
Network interfaces
The previous flat ip and transit_ips fields on network interfaces have been
replaced with a single ip_config field (in create requests) or ip_stack
field (in responses) that specifies the IP version: v4, v6, or
dual_stack. If ip_config is omitted, it defaults to dual_stack with
automatically assigned addresses. See the API specifications for network
interface create,
update, and
view operations.
In the instance create request, the default
network interface option has been replaced by default_ipv4, default_ipv6,
and default_dual_stack. Each of these creates a single primary interface
with IP addresses of the corresponding versions. If network_interfaces is
omitted, it defaults to default_dual_stack.
Ephemeral and floating IPs
External IP attachment now supports IPv6 addresses. The previous pool field
has been replaced with pool_selector, which can be explicit (specifying a
pool by name or ID) or auto (using the silo’s default pool, with an optional
ip_version to disambiguate when both v4 and v6 defaults exist). See
Instance ephemeral IP attach.
Floating IP create has replaced the ip and
pool fields with an address_allocator field that supports two modes:
explicit (to reserve a specific IP address) or auto (to allocate from a
pool using pool_selector).
Floating IP attach request body has changed from
{ instance } to { kind, parent }, where kind is the type of resource
(e.g., instance) and parent is its name or ID.
Instance ephemeral IP detach has a new
ip_version query parameter to specify whether to detach the v4 or v6 address.
This parameter is required when the instance has both.
IP pool versions
IP pools now have an ip_version field that must be set at creation time.
The default is v4; to create a pool for IPv6 addresses, specify ip_version:
v6. Default pool assignment for a silo is now per IP version. A silo can have
separate default pools for v4 and v6.
IP pool commands moved
IP pool CLI commands have moved. Operator commands moved from oxide ip-pool
to oxide system networking ip-pool. Silo-scoped commands for listing available
pools moved from oxide project ip-pool to oxide ip-pool. API operation IDs
and derived SDK method names have changed correspondingly (e.g., ip_pool_list
→ system_ip_pool_list, project_ip_pool_list → ip_pool_list). The API
endpoint URLs are unchanged.
System Requirements
Please refer to v1.0.0 release notes.
Installation
Oxide Computer Model 0 must be installed and configured under the guidance of Oxide technicians. The requirement may change in future releases.
Upgrade Compatibility
Upgrade from version 17 is supported. We recommend shutting down all
running instances on the rack before software update commences. Any instances
that aren’t stopped for software update are transitioned to the failed state
when the control plane comes up. They can be configured to start automatically
with auto-restart policy or
they can be started manually by the user.
All existing setup and data (e.g., projects, users, instances) remain intact after the software update.
New Features
Instance local storage
Local disks are a new storage option for specialized workloads requiring high performance with lower resilience and availability requirements. Distributed virtual disks remain the default and recommended storage option for most workloads. Unlike distributed disks, which have replicas across three distinct sleds, local disks reside on the same sled as the instance they’re attached to, providing lower latency and higher throughput at the cost of reduced redundancy.
Local disks do not provide encryption, replication, or snapshots. These features must be implemented at the application layer if needed. Use local disks only for workloads such as caching layers, temporary computation results, or distributed databases with application-level replication. For all other workloads, use distributed virtual disks.
See the Disks and Snapshots guide for more information on local storage configuration and use cases.
Dual IP-stack guest networking
The use of IPv6 for instance network connectivity is now available. Instances are v4/v6 dual-stack addressable on VPC subnets by default, and can be assigned external IP addresses from v4 or v6 IP pools at the user’s discretion.
These new capabilities change how IP address assignment is specified, especially for silos configured to use external IPv6 addresses. With dual-stack defaults, when provisioning new instances or modifying instance network interfaces, users will need to explicitly indicate the IP version to use. See the breaking API changes above for a list of affected endpoints.
External subnets
External subnets can be attached to instances to delegate external IP address
management to the instance. Unlike addresses managed by the Oxide control plane,
external subnet addresses are not NAT’d and are advertised as the source or
destination IP end-to-end. A common use of this delegated IPAM feature is
infrastructure software such as container management platforms and load balancers.
For example, a Kubernetes controller running on an Oxide instance can be assigned
a /16 external subnet so it can assign addresses on the external network to the
pods it creates without the need for an encapsulating overlay network.
Other enhancements
Maximum number of vcpus for instances increased from 64 to 128
Maximum number of disks that can be attached to an instance increased from 8 to 12
Improved instance-to-instance VPC network performance
Technician port address assignment using DHCPv6 (dendrite#165, see the Networking Preparations guide about limitations with using DHCPv6)
Expand audit log coverage to all mutating (non-GET) API requests and include caller credential ID (omicron#9467)
IPv6 static routing
IPv6 route exchange via Multi-Protocol BGP
Support for unnumbered BGP peering
Web console
Instance and disk UIs have been updated to support local disks. Networking UIs have been updated for IPv6 pools and dual-stack network interfaces. Operators can now set and clear default IP pools directly from the linked silos list on the IP pool detail page. We’ve also added links to relevant docs on every form to make sure users have the right information when they need it.
Support for managing subnet pools and external subnets in the console will follow in the next release.
Full console changelog
IPv6 networking (console#3005, console#3054, console#3053)
Local disks (console#2984, console#3002, console#3055)
Set and clear default IP pool from linked silos list (console#3060)
Add relevant docs links to all forms (console#3048, console#3052)
Add disk detail view in side modal (console#2992)
Client-side max CPUs per instance up to 254, max disks to 12 (console#2974, console#2995)
Ephemeral IP attach disabled instead of hidden when unavailable (console#3044)
Many small UI fixes (console#2962, console#2991, console#2994, console#2996, console#3018, console#3043, console#3045)
Send
api-versionrequest header (console#2981)
Bug fixes
Support bundles were stuck in destroying state if bundle was canceled early in the process (omicron#9331)
Support bundles in failed state were not deletable or automatically cleaned up (omicron#9558)
Patches
When creating an instance in a VPC subnet, address allocation for one IP version could silently fail if no addresses of that version previously existed in the subnet (omicron#9880). Fixed in release 18.1.
Firmware update
AMD microcode 20251202
Storage firmware updates for Western Digital SN655 and SN861 series NVMe drives (not applicable to all hardware configurations)
Known Behavior and Limitations
End-user features
| Feature Area | Known Issue/Limitation | Issue Number |
|---|---|---|
Disk/image management | Disks in | |
Disk/image management | Disk rejected by guest OS due to duplicate nvme device names. The issue is caused by a 20-character limit in applying the disk name to the device serial number. See the Troubleshooting guide for more information. | - |
Disk/image management | The ability to modify image metadata is not available at this time. | |
Instance orchestration | Sporadic network connectivity issues on Windows instances | |
Instance orchestration | Unable to start an instance that has a disk replica on a sled being updated. | |
Instance orchestration | New instances cannot be created when the total number of NAT entries (private-to-external IP mappings) in the system exceeds 1024. | |
Instance performance | The | |
Instance performance | Linux guests unable to capture hardware events using | |
VPC internet gateway | Changing a silo’s default IP pool causes some instances to lose their outbound internet access. This is due to a mismatch between the pool containing the instances' external IP (which are allocated from the new default pool) and the pool attached to the system-created internet gateways (which are linked to the old pool during creation time). Please see the Troubleshooting guide for some possible options for restoring instance outbound connectivity. | |
VPC routing | Subnet update clears custom router ID when the field is left out of the request body. | |
VPC routing | Network interface update clears transit ips when the field is left out of the request body. | - |
Telemetry | VM instance memory utilization and VPC network/firewall metrics are unavailable at this time. | - |
External subnets | Firewall rules meant to allow traffic to the IP subnet of an external subnet are not correctly propagated to the instance. For example, suppose the subnet | - |
Operator features
| Feature Area | Known Issue/Limitation | Issue Number |
|---|---|---|
Silo management | The ability to modify silo and IDP metadata is not available at this time. | |
System management | Sled and physical storage availability real-time status are not available in the inventory UI and API yet. | |
System management | Operator-driven instance migration across sleds is currently unavailable. | - |
System management | Some running instances transitioned to the "stopped" state after update. |