diff --git a/app/controllers/projects/environments_controller.rb b/app/controllers/projects/environments_controller.rb
index 919d021b59c3d437a4eb3589434d93a66ac56863..29e223a5273ffdec22d58b6a50488e56d879cde9 100644
--- a/app/controllers/projects/environments_controller.rb
+++ b/app/controllers/projects/environments_controller.rb
@@ -15,6 +15,8 @@ class Projects::EnvironmentsController < Projects::ApplicationController
     respond_to do |format|
       format.html
       format.json do
+        Gitlab::PollingInterval.set_header(response, interval: 3_000)
+
         render json: {
           environments: EnvironmentSerializer
             .new(project: @project, current_user: @current_user)
diff --git a/changelogs/unreleased/enable-polling-env.yml b/changelogs/unreleased/enable-polling-env.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b3f65f02574422473204899cd9cd05bba2ea4cdc
--- /dev/null
+++ b/changelogs/unreleased/enable-polling-env.yml
@@ -0,0 +1,4 @@
+---
+title: Re-enable realtime for environments table
+merge_request:
+author:
diff --git a/spec/controllers/projects/environments_controller_spec.rb b/spec/controllers/projects/environments_controller_spec.rb
index 9db8ff5bbaada52b481aae3b9fb1a9d6e6d77abd..f88f50c3cc6793055f52636da9380cb24f134129 100644
--- a/spec/controllers/projects/environments_controller_spec.rb
+++ b/spec/controllers/projects/environments_controller_spec.rb
@@ -58,11 +58,9 @@ describe Projects::EnvironmentsController do
           expect(json_response['stopped_count']).to eq 1
         end
 
-        it 'does not set the polling interval header' do
-          # TODO, this is a temporary fix, see follow up issue:
-          # https://gitlab.com/gitlab-org/gitlab-ee/issues/2677
+        it 'sets the polling interval header' do
           expect(response).to have_http_status(:ok)
-          expect(response.headers['Poll-Interval']).to be_nil
+          expect(response.headers['Poll-Interval']).to eq("3000")
         end
       end