diff --git a/lib/gitlab/ci/config/node/environment.rb b/lib/gitlab/ci/config/node/environment.rb
index bc153854a8d55eff47ab8cfe4375302e8e0a09c2..d388ab6b87908e52fcf5a6441c8629534cf6c08d 100644
--- a/lib/gitlab/ci/config/node/environment.rb
+++ b/lib/gitlab/ci/config/node/environment.rb
@@ -18,6 +18,15 @@ module Gitlab
             end
 
             validates :name, presence: true
+            validates :name,
+              type: {
+                with: String,
+                message: Gitlab::Regex.environment_name_regex_message }
+
+            validates :name,
+              format: {
+                with: Gitlab::Regex.environment_name_regex,
+                message: Gitlab::Regex.environment_name_regex_message }
 
             with_options if: :hash? do
               validates :config, allowed_keys: ALLOWED_KEYS