Skip to content

Commit beadbac

Browse files
BobyMCbobssmira
authored andcommitted
docs: update Oracle Cloud Talos custom image docs
Add docs to correctly prepare an image for usage in Oracle Cloud. Signed-off-by: Caleb Woodbine <calebwoodbine.public@gmail.com> Signed-off-by: Andrey Smirnov <andrey.smirnov@siderolabs.com>
1 parent 6f969e3 commit beadbac

File tree

2 files changed

+134
-2
lines changed
  • website/content
    • v1.7/talos-guides/install/cloud-platforms
    • v1.8/talos-guides/install/cloud-platforms

2 files changed

+134
-2
lines changed

website/content/v1.7/talos-guides/install/cloud-platforms/oracle.md

Lines changed: 67 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,73 @@ aliases:
1010
Oracle Cloud at the moment does not have a Talos official image.
1111
So you can use [Bring Your Own Image (BYOI)](https://docs.oracle.com/en-us/iaas/Content/Compute/References/bringyourownimage.htm) approach.
1212

13-
Once the image is uploaded, set the ```Boot volume type``` to ``Paravirtualized`` mode.
13+
Prepare an image for upload:
14+
15+
1. Generate an image using [Image Factory](https://factory.talos.dev).
16+
17+
2. Download the disk image artifact (e.g: https://factory.talos.dev/image/376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba/{{< release >}}/oracle-arm64.raw.xz)
18+
19+
3. Define the image metadata file called `image_metadata.json`.
20+
Example for an `arm64` deployment:
21+
22+
```json
23+
{
24+
"version": 2,
25+
"externalLaunchOptions": {
26+
"firmware": "UEFI_64",
27+
"networkType": "PARAVIRTUALIZED",
28+
"bootVolumeType": "PARAVIRTUALIZED",
29+
"remoteDataVolumeType": "PARAVIRTUALIZED",
30+
"localDataVolumeType": "PARAVIRTUALIZED",
31+
"launchOptionsSource": "PARAVIRTUALIZED",
32+
"pvAttachmentVersion": 2,
33+
"pvEncryptionInTransitEnabled": true,
34+
"consistentVolumeNamingEnabled": true
35+
},
36+
"imageCapabilityData": null,
37+
"imageCapsFormatVersion": null,
38+
"operatingSystem": "Talos",
39+
"operatingSystemVersion": "1.7.6",
40+
"additionalMetadata": {
41+
"shapeCompatibilities": [
42+
{
43+
"internalShapeName": "VM.Standard.A1.Flex",
44+
"ocpuConstraints": null,
45+
"memoryConstraints": null
46+
}
47+
]
48+
}
49+
}
50+
```
51+
52+
4. Extract the xz or zst archive:
53+
54+
```shell
55+
xz --decompress ./oracle-arm64.raw.xz
56+
57+
# or
58+
59+
zstd --decompress ./oracle-arm64.raw.zst
60+
```
61+
62+
5. Convert the image to a `qcow2` format (using [qemu](https://formulae.brew.sh/formula/qemu#default)):
63+
64+
```shell
65+
qemu-img convert -f raw -O qcow2 oracle-arm64.raw oracle-arm64.qcow2
66+
```
67+
68+
6. Create an archive containing the image and metadata called `talos-oracle-arm64.oci`:
69+
70+
```shell
71+
tar zcf oracle-arm64.oci oracle-arm64.qcow2 image_metadata.json
72+
```
73+
74+
7. Upload the image to a storage bucket.
75+
8. Create an image, using the *new* URL format for the storage bucket object.
76+
77+
> Note: file names depends on configuration of deployment such as architecture, adjust accordingly.
78+
79+
## Talos config
1480

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

website/content/v1.8/talos-guides/install/cloud-platforms/oracle.md

Lines changed: 67 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,73 @@ aliases:
1010
Oracle Cloud at the moment does not have a Talos official image.
1111
So you can use [Bring Your Own Image (BYOI)](https://docs.oracle.com/en-us/iaas/Content/Compute/References/bringyourownimage.htm) approach.
1212

13-
Once the image is uploaded, set the ```Boot volume type``` to ``Paravirtualized`` mode.
13+
Prepare an image for upload:
14+
15+
1. Generate an image using [Image Factory](https://factory.talos.dev).
16+
17+
2. Download the disk image artifact (e.g: https://factory.talos.dev/image/376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba/{{< release >}}/oracle-arm64.raw.xz)
18+
19+
3. Define the image metadata file called `image_metadata.json`.
20+
Example for an `arm64` deployment:
21+
22+
```json
23+
{
24+
"version": 2,
25+
"externalLaunchOptions": {
26+
"firmware": "UEFI_64",
27+
"networkType": "PARAVIRTUALIZED",
28+
"bootVolumeType": "PARAVIRTUALIZED",
29+
"remoteDataVolumeType": "PARAVIRTUALIZED",
30+
"localDataVolumeType": "PARAVIRTUALIZED",
31+
"launchOptionsSource": "PARAVIRTUALIZED",
32+
"pvAttachmentVersion": 2,
33+
"pvEncryptionInTransitEnabled": true,
34+
"consistentVolumeNamingEnabled": true
35+
},
36+
"imageCapabilityData": null,
37+
"imageCapsFormatVersion": null,
38+
"operatingSystem": "Talos",
39+
"operatingSystemVersion": "1.7.6",
40+
"additionalMetadata": {
41+
"shapeCompatibilities": [
42+
{
43+
"internalShapeName": "VM.Standard.A1.Flex",
44+
"ocpuConstraints": null,
45+
"memoryConstraints": null
46+
}
47+
]
48+
}
49+
}
50+
```
51+
52+
4. Extract the xz or zst archive:
53+
54+
```shell
55+
xz --decompress ./oracle-arm64.raw.xz
56+
57+
# or
58+
59+
zstd --decompress ./oracle-arm64.raw.zst
60+
```
61+
62+
5. Convert the image to a `qcow2` format (using [qemu](https://formulae.brew.sh/formula/qemu#default)):
63+
64+
```shell
65+
qemu-img convert -f raw -O qcow2 oracle-arm64.raw oracle-arm64.qcow2
66+
```
67+
68+
6. Create an archive containing the image and metadata called `talos-oracle-arm64.oci`:
69+
70+
```shell
71+
tar zcf oracle-arm64.oci oracle-arm64.qcow2 image_metadata.json
72+
```
73+
74+
7. Upload the image to a storage bucket.
75+
8. Create an image, using the *new* URL format for the storage bucket object.
76+
77+
> Note: file names depends on configuration of deployment such as architecture, adjust accordingly.
78+
79+
## Talos config
1480

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

0 commit comments

Comments
 (0)