Stages: support vmdk subformat in the qemu stage
Support specifying the subformat for the `vmdk` image type in the `org.osbuild.qemu` stage.
This commit is contained in:
parent
b4593f0f2b
commit
bbe6127ddb
4 changed files with 77 additions and 1 deletions
|
|
@ -61,6 +61,11 @@ SCHEMA_2 = r"""
|
||||||
"description": "The type of the format, here 'vmdk'",
|
"description": "The type of the format, here 'vmdk'",
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": ["vmdk"]
|
"enum": ["vmdk"]
|
||||||
|
},
|
||||||
|
"subformat": {
|
||||||
|
"description": "VMDK flat extent format",
|
||||||
|
"type": "string",
|
||||||
|
"enum": ["monolithicSparse", "monolithicFlat", "twoGbMaxExtentSparse", "twoGbMaxExtentFlat", "streamOptimized"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -133,6 +138,14 @@ def qcow2_arguments(options):
|
||||||
return argv
|
return argv
|
||||||
|
|
||||||
|
|
||||||
|
def vmdk_arguments(options):
|
||||||
|
argv = ["-c"]
|
||||||
|
subformat = options.get("subformat")
|
||||||
|
if subformat:
|
||||||
|
argv += ["-o", f"subformat={subformat}"]
|
||||||
|
return argv
|
||||||
|
|
||||||
|
|
||||||
def parse_input(inputs):
|
def parse_input(inputs):
|
||||||
image = inputs["image"]
|
image = inputs["image"]
|
||||||
files = image["data"]["files"]
|
files = image["data"]["files"]
|
||||||
|
|
@ -153,7 +166,7 @@ def main(inputs, output, options):
|
||||||
formats = {
|
formats = {
|
||||||
"qcow2": qcow2_arguments,
|
"qcow2": qcow2_arguments,
|
||||||
"vdi": [],
|
"vdi": [],
|
||||||
"vmdk": ["-c"],
|
"vmdk": vmdk_arguments,
|
||||||
"vpc": ["-o", "subformat=fixed,force_size"],
|
"vpc": ["-o", "subformat=fixed,force_size"],
|
||||||
"vhdx": []
|
"vhdx": []
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,15 @@
|
||||||
"image.vmdk": {
|
"image.vmdk": {
|
||||||
"format": "vmdk"
|
"format": "vmdk"
|
||||||
},
|
},
|
||||||
|
"image-stream.vmdk": {
|
||||||
|
"format": "vmdk",
|
||||||
|
"format-specific": {
|
||||||
|
"type": "vmdk",
|
||||||
|
"data": {
|
||||||
|
"create-type": "streamOptimized"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"image.vpc": {
|
"image.vpc": {
|
||||||
"format": "raw"
|
"format": "raw"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -468,6 +468,33 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "image-stream.vmdk",
|
||||||
|
"build": "name:build",
|
||||||
|
"stages": [
|
||||||
|
{
|
||||||
|
"type": "org.osbuild.qemu",
|
||||||
|
"inputs": {
|
||||||
|
"image": {
|
||||||
|
"type": "org.osbuild.files",
|
||||||
|
"origin": "org.osbuild.pipeline",
|
||||||
|
"references": {
|
||||||
|
"name:image": {
|
||||||
|
"file": "image.raw"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"filename": "image-stream.vmdk",
|
||||||
|
"format": {
|
||||||
|
"type": "vmdk",
|
||||||
|
"subformat": "streamOptimized"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "image.vpc",
|
"name": "image.vpc",
|
||||||
"build": "name:build",
|
"build": "name:build",
|
||||||
|
|
|
||||||
|
|
@ -126,6 +126,33 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"name": "image-stream.vmdk",
|
||||||
|
"build": "name:build",
|
||||||
|
"stages": [
|
||||||
|
{
|
||||||
|
"type": "org.osbuild.qemu",
|
||||||
|
"inputs": {
|
||||||
|
"image": {
|
||||||
|
"type": "org.osbuild.files",
|
||||||
|
"origin": "org.osbuild.pipeline",
|
||||||
|
"references": {
|
||||||
|
"name:image": {
|
||||||
|
"file": "image.raw"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"filename": "image-stream.vmdk",
|
||||||
|
"format": {
|
||||||
|
"type": "vmdk",
|
||||||
|
"subformat": "streamOptimized"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"name": "image.vpc",
|
"name": "image.vpc",
|
||||||
"build": "name:build",
|
"build": "name:build",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue