diff --git a/htools/Ganeti/OpCodes.hs b/htools/Ganeti/OpCodes.hs
index f0ffd00f362b12b004d63c5da32381ecf502f1b0..157ba83815134f3a3df0351238765a2256613a26 100644
--- a/htools/Ganeti/OpCodes.hs
+++ b/htools/Ganeti/OpCodes.hs
@@ -383,7 +383,7 @@ $(genOpCode "OpCode"
      , pInstBeParams
      , pRuntimeMem
      , pInstHvParams
-     , pDiskTemplate
+     , pOptDiskTemplate
      , pRemoteNode
      , pOsNameChange
      , pInstOsParams
diff --git a/htools/Ganeti/OpParams.hs b/htools/Ganeti/OpParams.hs
index acb47ba60e3c29d8909800d4b4a8539bbcf4c991..f5f8c1354a67b529c306eeab9f8a47207b19372a 100644
--- a/htools/Ganeti/OpParams.hs
+++ b/htools/Ganeti/OpParams.hs
@@ -97,6 +97,7 @@ module Ganeti.OpParams
   , pAllowRuntimeChgs
   , pInstDisks
   , pDiskTemplate
+  , pOptDiskTemplate
   , pFileDriver
   , pFileStorageDir
   , pVgName
@@ -732,6 +733,13 @@ pInstDisks = renameField "instDisks" $ simpleField "disks" [t| [IDiskParams] |]
 pDiskTemplate :: Field
 pDiskTemplate = simpleField "disk_template" [t| DiskTemplate |]
 
+-- | Instance disk template.
+pOptDiskTemplate :: Field
+pOptDiskTemplate =
+  optionalField .
+  renameField "OptDiskTemplate" $
+  simpleField "disk_template" [t| DiskTemplate |]
+
 -- | File driver.
 pFileDriver :: Field
 pFileDriver = optionalField $ simpleField "file_driver" [t| FileDriver |]