Skip to content

Commit 38f966f

Browse files
committed
osbuild: support building nutanix disks
1 parent cdd7fc4 commit 38f966f

File tree

3 files changed

+79
-2
lines changed

3 files changed

+79
-2
lines changed

src/cmd-osbuild

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ declare -A SUPPORTED_PLATFORMS=(
2121
['ibmcloud']='qcow2'
2222
['metal4k']='raw'
2323
['metal']='raw'
24+
['nutanix']='qcow2'
2425
['openstack']='qcow2'
2526
['qemu']='qcow2'
2627
['qemu-secex']='qcow2'
@@ -394,9 +395,10 @@ main() {
394395

395396
# Perform postprocessing
396397
case "$platform" in
397-
gcp)
398+
gcp|nutanix)
398399
# Update the meta.json and builddir with the generated artifact.
399-
# Skip Compression on these platforms as they are already compressed.
400+
# Skip Compression on these platforms as they are either already
401+
# compressed or the artifact itself has internal compression enabled.
400402
postprocess_artifact "${platform}" "${imgpath}" "${imgname}" 'True'
401403
;;
402404
live)

src/osbuild-manifests/coreos.osbuild.x86_64.mpp.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -800,6 +800,8 @@ pipelines:
800800
path: platform.openstack.ipp.yaml
801801
- mpp-import-pipelines:
802802
path: platform.metal.ipp.yaml
803+
- mpp-import-pipelines:
804+
path: platform.nutanix.ipp.yaml
803805
- mpp-import-pipelines:
804806
path: platform.qemu.ipp.yaml
805807
- mpp-import-pipelines:
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# This file defines the artifact to be used for the nutanix platform.
2+
version: '2'
3+
pipelines:
4+
- name: raw-nutanix-image
5+
build:
6+
mpp-format-string: '{buildroot}'
7+
stages:
8+
- type: org.osbuild.copy
9+
inputs:
10+
tree:
11+
type: org.osbuild.tree
12+
origin: org.osbuild.pipeline
13+
references:
14+
- name:raw-image
15+
options:
16+
paths:
17+
- from: input://tree/disk.img
18+
to: tree:///disk.img
19+
# Increase the size to the cloud image size
20+
- type: org.osbuild.truncate
21+
options:
22+
filename: disk.img
23+
size:
24+
mpp-format-string: "{cloud_image_size_mb * 1024 * 1024}"
25+
- type: org.osbuild.coreos.platform
26+
options:
27+
platform: nutanix
28+
devices:
29+
disk:
30+
type: org.osbuild.loopback
31+
options:
32+
filename: disk.img
33+
partscan: true
34+
mounts:
35+
- name: root
36+
type: org.osbuild.xfs
37+
source: disk
38+
partition:
39+
mpp-format-int: '{image.layout[''root''].partnum}'
40+
target: /
41+
- name: ostree.deployment
42+
type: org.osbuild.ostree.deployment
43+
options:
44+
source: mount
45+
deployment:
46+
default: true
47+
- name: boot
48+
type: org.osbuild.ext4
49+
source: disk
50+
partition:
51+
mpp-format-int: '{image.layout[''boot''].partnum}'
52+
target: /boot
53+
- name: nutanix
54+
build:
55+
mpp-format-string: '{host_as_buildroot}'
56+
stages:
57+
- type: org.osbuild.qemu
58+
inputs:
59+
image:
60+
type: org.osbuild.files
61+
origin: org.osbuild.pipeline
62+
references:
63+
name:raw-nutanix-image:
64+
file: disk.img
65+
options:
66+
filename:
67+
mpp-format-string: '{artifact_name_prefix}-nutanix.{arch}.qcow2'
68+
format:
69+
type: qcow2
70+
# Utilize internal compression for the nutanix qcow2
71+
# https://github.com/coreos/coreos-assembler/commit/a90c7711359e9fc09e18593179bbcca75a9511c8
72+
compression: true
73+
compat: '1.1'

0 commit comments

Comments
 (0)