diff --git a/lib/ci/gitlab_ci_yaml_processor.rb b/lib/ci/gitlab_ci_yaml_processor.rb
index 01ef13df57ab4fc33c814e98bc854f5c96beadf8..8d0bbe1ae56baa5222ee5d341f1514cb752e190d 100644
--- a/lib/ci/gitlab_ci_yaml_processor.rb
+++ b/lib/ci/gitlab_ci_yaml_processor.rb
@@ -68,8 +68,9 @@ module Ci
 
       @jobs = {}
 
-      @config.except!(*ALLOWED_YAML_KEYS)
-      @config.each { |name, param| add_job(name, param) }
+      @ci_config.jobs.each do |name, param|
+        add_job(name, param)
+      end
 
       raise ValidationError, "Please define at least one job" if @jobs.none?
     end
diff --git a/lib/gitlab/ci/config.rb b/lib/gitlab/ci/config.rb
index e6cc1529760d9664f5031f07ba4625894527000e..ae82c0db3f1ce40f0bc4de001d4ce0e42e5e8d5c 100644
--- a/lib/gitlab/ci/config.rb
+++ b/lib/gitlab/ci/config.rb
@@ -8,7 +8,7 @@ module Gitlab
       # Temporary delegations that should be removed after refactoring
       #
       delegate :before_script, :image, :services, :after_script, :variables,
-               :stages, :cache, to: :@global
+               :stages, :cache, :jobs, to: :@global
 
       def initialize(config)
         @config = Loader.new(config).load!