diff --git a/lib/cmdlib.py b/lib/cmdlib.py index 874b43b9e3a27a471902b7c9f836fed1dd3c0147..95f753843d2466cee33abc010eecabc96dba7146 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -4049,6 +4049,7 @@ class LUQueryClusterInfo(NoHooksLU): "default_iallocator": cluster.default_iallocator, "reserved_lvs": cluster.reserved_lvs, "primary_ip_version": primary_ip_version, + "prealloc_wipe_disks": cluster.prealloc_wipe_disks, } return result diff --git a/man/gnt-cluster.sgml b/man/gnt-cluster.sgml index acf7de857c4d4149cafad3a70217bcd96a556753..0567b682719eadf76388f5ede672703ab9f99514 100644 --- a/man/gnt-cluster.sgml +++ b/man/gnt-cluster.sgml @@ -258,6 +258,8 @@ <sbr> <arg>--primary-ip-version <replaceable>version</replaceable></arg> <sbr> + <arg>--prealloc-wipe-disks</arg> + <sbr> <arg choice="req"><replaceable>clustername</replaceable></arg> </cmdsynopsis> @@ -353,6 +355,13 @@ available: </para> + <para> + The <option>--prealloc-wipe-disks</option> sets a cluster wide + configuration value for wiping disks prior to allocation. This + increases security on instance level as the instance can't + access untouched data from it's underlying storage. + </para> + <para> <variablelist> <varlistentry> diff --git a/scripts/gnt-cluster b/scripts/gnt-cluster index 14cc0f7a63803cce4cd04e3ee1fddfbcedb4a927..4887bc187dbe13e50b0cc69d9c5fe487db12295a 100755 --- a/scripts/gnt-cluster +++ b/scripts/gnt-cluster @@ -42,6 +42,11 @@ from ganeti import objects from ganeti import uidpool from ganeti import compat +PREALLOC_WIPE_DISKS_OPT = cli_option("--prealloc-wipe-disks", default=False, + action="store_true", + dest="prealloc_wipe_disks", + help=("Wipe disks prior to instance" + " creation")) @UsesRPC def InitCluster(opts, args): @@ -129,6 +134,7 @@ def InitCluster(opts, args): uid_pool=uid_pool, default_iallocator=opts.default_iallocator, primary_ip_version=primary_ip_version, + prealloc_wipe_disks=opts.prealloc_wipe_disks, ) op = opcodes.OpPostInitCluster() SubmitOpCode(op, opts=opts) @@ -326,6 +332,7 @@ def ShowClusterConfig(opts, args): roman=opts.roman_integers)) ToStdout(" - default instance allocator: %s", result["default_iallocator"]) ToStdout(" - primary ip version: %d", result["primary_ip_version"]) + ToStdout(" - preallocation wipe disks: %s", result["prealloc_wipe_disks"]) ToStdout("Default instance parameters:") _PrintGroupedParams(result["beparams"], roman=opts.roman_integers) @@ -862,7 +869,7 @@ commands = { NOLVM_STORAGE_OPT, NOMODIFY_ETCHOSTS_OPT, NOMODIFY_SSH_SETUP_OPT, SECONDARY_IP_OPT, VG_NAME_OPT, MAINTAIN_NODE_HEALTH_OPT, UIDPOOL_OPT, DRBD_HELPER_OPT, NODRBD_STORAGE_OPT, - DEFAULT_IALLOCATOR_OPT, PRIMARY_IP_VERSION_OPT], + DEFAULT_IALLOCATOR_OPT, PRIMARY_IP_VERSION_OPT, PREALLOC_WIPE_DISKS_OPT], "[opts...] <cluster_name>", "Initialises a new cluster configuration"), 'destroy': ( DestroyCluster, ARGS_NONE, [YES_DOIT_OPT],