diff --git a/lib/gitlab/ci/config/node/entry.rb b/lib/gitlab/ci/config/node/entry.rb
index 985d1705191dd0c05c3a477b3add4bff257e9b34..8fece12232b37d9c81265a60a8fc33b9d2e16548 100644
--- a/lib/gitlab/ci/config/node/entry.rb
+++ b/lib/gitlab/ci/config/node/entry.rb
@@ -47,7 +47,12 @@ module Gitlab
           end
 
           def value
-            @config
+            if leaf?
+              @config
+            else
+              defined = @nodes.select { |_key, value| value.defined? }
+              Hash[(defined).map { |key, node| [key, node.value] }]
+            end
           end
 
           def defined?