Skip to main content

Upload image

Oracle Cloud at the moment does not have a Talos official image. So you can use Bring Your Own Image (BYOI) approach.
On current Talos releases the qcow2 disk image does not boot on Oracle Cloud Infrastructure (OCI): imported with UEFI_64 firmware the instance drops to the UEFI shell, and imported with BIOS firmware the serial console stays empty.Converting the same disk to a stream-optimized VMDK and importing it as a VMDK boots normally, so the steps below use that path. This is reported upstream in siderolabs/talos#12557; that issue was closed by a partial fix, but the boot failure still reproduces on current releases. OCI is a tier-3 platform for Talos with no automated testing, so the regression is not caught by CI.
Prepare an image for upload:
  1. Generate an image using Image Factory.
  2. Download the disk image artifact in qcow2 format (e.g: Oracle arm64 )
  3. Convert the qcow2 image to a stream-optimized VMDK (requires qemu-img):
  4. Upload the oracle-arm64.vmdk file to an object storage bucket.
  5. Import the image from the bucket object, using the VMDK source type:
    The VMDK image is imported with BIOS firmware by default, which is the working configuration on OCI — do not switch it to UEFI_64, which drops the instance to the UEFI shell.
Note: file names depends on configuration of deployment such as architecture, adjust accordingly.

Talos config

OracleCloud has highly available NTP service, it can be enabled in Talos machine config with:

Creating a cluster via the CLI

Login to the console. And open the Cloud Shell.

Create a network

Create a load balancer

Create a load balancer by issuing the commands shown below. Save the IP/DNS name, as this info will be used in the next step.

Create the machine configuration files

Generating base configurations

Using the IP/DNS name of the loadbalancer created earlier, generate the base configuration files for the Talos machines by issuing:
At this point, you can modify the generated configs to your liking. Optionally, you can specify machine configuration patches which will be applied during the config generation.

Validate the configuration files

Validate any edited machine configs with:

Create the servers

Create the control plane nodes

Create the control plane nodes with:

Create the worker nodes

Create the worker nodes with the following command, repeating (and incrementing the name counter) as many times as desired.

Bootstrap etcd

To configure talosctl we will need the first control plane node’s IP. This can be found by issuing:
Set the endpoints and nodes for your talosconfig with:
Bootstrap etcd on the first control plane node with:

Retrieve the kubeconfig

At this point we can retrieve the admin kubeconfig by running: