diff --git a/htools/Ganeti/Objects.hs b/htools/Ganeti/Objects.hs
index 02728018306d97042345833445e3bd4c1257b3fb..e9d0acd4aa46e02e0804832cd7e8c386755c4202 100644
--- a/htools/Ganeti/Objects.hs
+++ b/htools/Ganeti/Objects.hs
@@ -372,7 +372,10 @@ $(buildObject "Cluster" "cluster" $
   , simpleField "primary_ip_family"         [t| Int                |]
   , simpleField "prealloc_wipe_disks"       [t| Bool               |]
  ]
- ++ serialFields)
+ ++ serialFields
+ ++ timeStampFields
+ ++ uuidFields
+ ++ tagsFields)
 
 -- * ConfigData definitions
 
diff --git a/htools/Ganeti/THH.hs b/htools/Ganeti/THH.hs
index 929da6f48b5a6ce1f2ce70087c5955629de48b72..47276d380f33e7f3e36dca2177129a5a4a8cb4c7 100644
--- a/htools/Ganeti/THH.hs
+++ b/htools/Ganeti/THH.hs
@@ -47,6 +47,7 @@ module Ganeti.THH ( declareSADT
                   , timeStampFields
                   , uuidFields
                   , serialFields
+                  , tagsFields
                   , buildObject
                   , buildObjectSerialisation
                   , buildParam
@@ -58,6 +59,7 @@ import Control.Monad (liftM, liftM2)
 import Data.Char
 import Data.List
 import qualified Data.Map as M
+import qualified Data.Set as Set
 import Language.Haskell.TH
 
 import qualified Text.JSON as JSON
@@ -172,6 +174,11 @@ serialFields =
 uuidFields :: [Field]
 uuidFields = [ simpleField "uuid" [t| String |] ]
 
+-- | Tag field description.
+tagsFields :: [Field]
+tagsFields = [ defaultField [| Set.empty |] $
+               simpleField "tags" [t| Set.Set String |] ]
+
 -- * Helper functions
 
 -- | Ensure first letter is lowercase.