From c4c98e8e0d3696574978b09ab62fec770c480ee7 Mon Sep 17 00:00:00 2001
From: Anna Vovchenko <avovchenko@gitlab.com>
Date: Sat, 17 Feb 2024 02:05:39 +0000
Subject: [PATCH] Remove the Kubernetes overview section from the Environments
 page

The section is moved to the Environment details page.
Remove it from the index and folder pages.
Update the docs.

Changelog: changed
---
 .../components/kubernetes_overview.vue        | 138 --------------
 .../components/new_environment_item.vue       |  42 +----
 .../kubernetes}/kubernetes_agent_info.vue     |   0
 .../{ => kubernetes}/kubernetes_overview.vue  |   6 +-
 .../kubernetes}/kubernetes_pods.vue           |   2 +-
 .../kubernetes}/kubernetes_services.vue       |   4 +-
 .../kubernetes}/kubernetes_status_bar.vue     |   6 +-
 .../kubernetes}/kubernetes_tabs.vue           |   0
 .../environment_details/index.vue             |   2 +-
 .../folder/environments_folder_bundle.js      |   3 -
 app/assets/javascripts/environments/index.js  |   3 -
 .../projects/environments_controller.rb       |   4 +-
 app/helpers/environments_helper.rb            |   3 +-
 .../projects/environments/index.html.haml     |   3 +-
 .../img/kubernetes_summary_ui.png             | Bin 13822 -> 0 bytes
 .../img/kubernetes_summary_ui_v16_10.png      | Bin 0 -> 52131 bytes
 doc/ci/environments/kubernetes_dashboard.md   |   7 +-
 locale/gitlab.pot                             |   3 -
 .../kubernetes}/kubernetes_agent_info_spec.js |   4 +-
 .../kubernetes_overview_spec.js               |  21 +--
 .../kubernetes}/kubernetes_pods_spec.js       |   8 +-
 .../kubernetes}/kubernetes_services_spec.js   |   8 +-
 .../kubernetes}/kubernetes_status_bar_spec.js |   6 +-
 .../kubernetes}/kubernetes_tabs_spec.js       |  10 +-
 .../environment_details/index_spec.js         |   2 +-
 .../environments/kubernetes_overview_spec.js  | 172 ------------------
 .../environments/new_environment_item_spec.js |  96 +---------
 27 files changed, 52 insertions(+), 501 deletions(-)
 delete mode 100644 app/assets/javascripts/environments/components/kubernetes_overview.vue
 rename app/assets/javascripts/environments/{components => environment_details/components/kubernetes}/kubernetes_agent_info.vue (100%)
 rename app/assets/javascripts/environments/environment_details/components/{ => kubernetes}/kubernetes_overview.vue (94%)
 rename app/assets/javascripts/environments/{components => environment_details/components/kubernetes}/kubernetes_pods.vue (97%)
 rename app/assets/javascripts/environments/{components => environment_details/components/kubernetes}/kubernetes_services.vue (93%)
 rename app/assets/javascripts/environments/{components => environment_details/components/kubernetes}/kubernetes_status_bar.vue (95%)
 rename app/assets/javascripts/environments/{components => environment_details/components/kubernetes}/kubernetes_tabs.vue (100%)
 delete mode 100644 doc/ci/environments/img/kubernetes_summary_ui.png
 create mode 100644 doc/ci/environments/img/kubernetes_summary_ui_v16_10.png
 rename spec/frontend/environments/{ => environment_details/components/kubernetes}/kubernetes_agent_info_spec.js (92%)
 rename spec/frontend/environments/environment_details/components/{ => kubernetes}/kubernetes_overview_spec.js (89%)
 rename spec/frontend/environments/{ => environment_details/components/kubernetes}/kubernetes_pods_spec.js (93%)
 rename spec/frontend/environments/{ => environment_details/components/kubernetes}/kubernetes_services_spec.js (91%)
 rename spec/frontend/environments/{ => environment_details/components/kubernetes}/kubernetes_status_bar_spec.js (97%)
 rename spec/frontend/environments/{ => environment_details/components/kubernetes}/kubernetes_tabs_spec.js (83%)
 delete mode 100644 spec/frontend/environments/kubernetes_overview_spec.js

diff --git a/app/assets/javascripts/environments/components/kubernetes_overview.vue b/app/assets/javascripts/environments/components/kubernetes_overview.vue
deleted file mode 100644
index d75606a4f0c75..0000000000000
--- a/app/assets/javascripts/environments/components/kubernetes_overview.vue
+++ /dev/null
@@ -1,138 +0,0 @@
-<script>
-import { GlCollapse, GlButton, GlAlert } from '@gitlab/ui';
-import { __, s__ } from '~/locale';
-import csrf from '~/lib/utils/csrf';
-import { getIdFromGraphQLId } from '~/graphql_shared/utils';
-import KubernetesAgentInfo from './kubernetes_agent_info.vue';
-import KubernetesTabs from './kubernetes_tabs.vue';
-import KubernetesStatusBar from './kubernetes_status_bar.vue';
-
-export default {
-  components: {
-    GlCollapse,
-    GlButton,
-    GlAlert,
-    KubernetesAgentInfo,
-    KubernetesTabs,
-    KubernetesStatusBar,
-  },
-  inject: ['kasTunnelUrl'],
-  props: {
-    clusterAgent: {
-      required: true,
-      type: Object,
-    },
-    environmentName: {
-      required: true,
-      type: String,
-    },
-    namespace: {
-      required: false,
-      type: String,
-      default: '',
-    },
-    fluxResourcePath: {
-      required: false,
-      type: String,
-      default: '',
-    },
-  },
-  data() {
-    return {
-      isVisible: false,
-      error: '',
-      failedState: {},
-      podsLoading: false,
-    };
-  },
-  computed: {
-    chevronIcon() {
-      return this.isVisible ? 'chevron-down' : 'chevron-right';
-    },
-    label() {
-      return this.isVisible ? this.$options.i18n.collapse : this.$options.i18n.expand;
-    },
-    gitlabAgentId() {
-      return getIdFromGraphQLId(this.clusterAgent.id).toString();
-    },
-    k8sAccessConfiguration() {
-      return {
-        basePath: this.kasTunnelUrl,
-        headers: {
-          'GitLab-Agent-Id': this.gitlabAgentId,
-          'Content-Type': 'application/json',
-          Accept: 'application/json',
-          ...csrf.headers,
-        },
-        credentials: 'include',
-      };
-    },
-    clusterHealthStatus() {
-      if (this.podsLoading) {
-        return '';
-      }
-
-      return this.hasFailedState ? 'error' : 'success';
-    },
-    hasFailedState() {
-      return Object.values(this.failedState).some((item) => item);
-    },
-  },
-  methods: {
-    toggleCollapse() {
-      this.isVisible = !this.isVisible;
-    },
-    onClusterError(message) {
-      this.error = message;
-    },
-    onUpdateFailedState(event) {
-      this.failedState = {
-        ...this.failedState,
-        ...event,
-      };
-    },
-  },
-  i18n: {
-    collapse: __('Collapse'),
-    expand: __('Expand'),
-    sectionTitle: s__('Environment|Kubernetes overview'),
-  },
-};
-</script>
-<template>
-  <div class="gl-px-4">
-    <p class="gl-font-weight-bold gl-text-gray-500 gl-display-flex gl-mb-0">
-      <gl-button
-        :icon="chevronIcon"
-        :aria-label="label"
-        category="tertiary"
-        size="small"
-        class="gl-mr-3"
-        @click="toggleCollapse"
-      />{{ $options.i18n.sectionTitle }}
-    </p>
-    <gl-collapse :visible="isVisible" class="gl-md-pl-7 gl-md-pr-5 gl-mt-4">
-      <template v-if="isVisible">
-        <kubernetes-status-bar
-          :cluster-health-status="clusterHealthStatus"
-          :configuration="k8sAccessConfiguration"
-          :environment-name="environmentName"
-          :flux-resource-path="fluxResourcePath"
-          class="gl-mb-3" />
-        <kubernetes-agent-info :cluster-agent="clusterAgent" class="gl-mb-5" />
-
-        <gl-alert v-if="error" variant="danger" :dismissible="false" class="gl-mb-5">
-          {{ error }}
-        </gl-alert>
-
-        <kubernetes-tabs
-          :configuration="k8sAccessConfiguration"
-          :namespace="namespace"
-          class="gl-mb-5"
-          @cluster-error="onClusterError"
-          @loading="podsLoading = $event"
-          @update-failed-state="onUpdateFailedState"
-      /></template>
-    </gl-collapse>
-  </div>
-</template>
diff --git a/app/assets/javascripts/environments/components/new_environment_item.vue b/app/assets/javascripts/environments/components/new_environment_item.vue
index 8bd55e697fa39..2c2a9ce4493dd 100644
--- a/app/assets/javascripts/environments/components/new_environment_item.vue
+++ b/app/assets/javascripts/environments/components/new_environment_item.vue
@@ -13,7 +13,6 @@ import { truncate } from '~/lib/utils/text_utility';
 import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';
 import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
 import isLastDeployment from '../graphql/queries/is_last_deployment.query.graphql';
-import getEnvironmentClusterAgent from '../graphql/queries/environment_cluster_agent.query.graphql';
 import ExternalUrl from './environment_external_url.vue';
 import Actions from './environment_actions.vue';
 import StopComponent from './environment_stop.vue';
@@ -23,7 +22,6 @@ import Terminal from './environment_terminal_button.vue';
 import Delete from './environment_delete.vue';
 import Deployment from './deployment.vue';
 import DeployBoardWrapper from './deploy_board_wrapper.vue';
-import KubernetesOverview from './kubernetes_overview.vue';
 
 export default {
   components: {
@@ -43,7 +41,6 @@ export default {
     Terminal,
     TimeAgoTooltip,
     Delete,
-    KubernetesOverview,
     EnvironmentAlert: () => import('ee_component/environments/components/environment_alert.vue'),
     EnvironmentApproval: () =>
       import('ee_component/environments/components/environment_approval.vue'),
@@ -82,7 +79,7 @@ export default {
     tierTooltip: s__('Environment|Deployment tier'),
   },
   data() {
-    return { visible: false, clusterAgent: null, kubernetesNamespace: '', fluxResourcePath: '' };
+    return { visible: false };
   },
   computed: {
     icon() {
@@ -168,27 +165,6 @@ export default {
   methods: {
     toggleEnvironmentCollapse() {
       this.visible = !this.visible;
-
-      if (this.visible) {
-        this.getClusterAgent();
-      }
-    },
-    getClusterAgent() {
-      if (this.clusterAgent) return;
-
-      this.$apollo.addSmartQuery('environmentClusterAgent', {
-        variables() {
-          return { environmentName: this.environment.name, projectFullPath: this.projectPath };
-        },
-        query() {
-          return getEnvironmentClusterAgent;
-        },
-        update(data) {
-          this.clusterAgent = data?.project?.environment?.clusterAgent;
-          this.kubernetesNamespace = data?.project?.environment?.kubernetesNamespace || '';
-          this.fluxResourcePath = data?.project?.environment?.fluxResourcePath || '';
-        },
-      });
     },
   },
   deploymentClasses: [
@@ -207,13 +183,6 @@ export default {
     'gl-md-pl-7',
     'gl-bg-gray-10',
   ],
-  kubernetesOverviewClasses: [
-    'gl-border-gray-100',
-    'gl-border-t-solid',
-    'gl-border-1',
-    'gl-py-4',
-    'gl-bg-gray-10',
-  ],
 };
 </script>
 <template>
@@ -366,15 +335,6 @@ export default {
           </template>
         </gl-sprintf>
       </div>
-      <div v-if="clusterAgent" :class="$options.kubernetesOverviewClasses">
-        <kubernetes-overview
-          :class="{ 'gl-ml-7': inFolder }"
-          :cluster-agent="clusterAgent"
-          :namespace="kubernetesNamespace"
-          :flux-resource-path="fluxResourcePath"
-          :environment-name="environment.name"
-        />
-      </div>
       <div v-if="rolloutStatus" :class="$options.deployBoardClasses">
         <deploy-board-wrapper
           :rollout-status="rolloutStatus"
diff --git a/app/assets/javascripts/environments/components/kubernetes_agent_info.vue b/app/assets/javascripts/environments/environment_details/components/kubernetes/kubernetes_agent_info.vue
similarity index 100%
rename from app/assets/javascripts/environments/components/kubernetes_agent_info.vue
rename to app/assets/javascripts/environments/environment_details/components/kubernetes/kubernetes_agent_info.vue
diff --git a/app/assets/javascripts/environments/environment_details/components/kubernetes_overview.vue b/app/assets/javascripts/environments/environment_details/components/kubernetes/kubernetes_overview.vue
similarity index 94%
rename from app/assets/javascripts/environments/environment_details/components/kubernetes_overview.vue
rename to app/assets/javascripts/environments/environment_details/components/kubernetes/kubernetes_overview.vue
index e7d6d63967967..cd959f7ef0c7e 100644
--- a/app/assets/javascripts/environments/environment_details/components/kubernetes_overview.vue
+++ b/app/assets/javascripts/environments/environment_details/components/kubernetes/kubernetes_overview.vue
@@ -7,9 +7,9 @@ import { getIdFromGraphQLId } from '~/graphql_shared/utils';
 import { createK8sAccessConfiguration } from '~/environments/helpers/k8s_integration_helper';
 import { CLUSTER_HEALTH_SUCCESS, CLUSTER_HEALTH_ERROR } from '~/environments/constants';
 import environmentClusterAgentQuery from '~/environments/graphql/queries/environment_cluster_agent.query.graphql';
-import KubernetesStatusBar from '~/environments/components/kubernetes_status_bar.vue';
-import KubernetesAgentInfo from '~/environments/components/kubernetes_agent_info.vue';
-import KubernetesTabs from '~/environments/components/kubernetes_tabs.vue';
+import KubernetesStatusBar from './kubernetes_status_bar.vue';
+import KubernetesAgentInfo from './kubernetes_agent_info.vue';
+import KubernetesTabs from './kubernetes_tabs.vue';
 
 export default {
   components: {
diff --git a/app/assets/javascripts/environments/components/kubernetes_pods.vue b/app/assets/javascripts/environments/environment_details/components/kubernetes/kubernetes_pods.vue
similarity index 97%
rename from app/assets/javascripts/environments/components/kubernetes_pods.vue
rename to app/assets/javascripts/environments/environment_details/components/kubernetes/kubernetes_pods.vue
index 7a77f0138497c..4a75d73823f84 100644
--- a/app/assets/javascripts/environments/components/kubernetes_pods.vue
+++ b/app/assets/javascripts/environments/environment_details/components/kubernetes/kubernetes_pods.vue
@@ -11,7 +11,7 @@ import {
 import { getAge } from '~/kubernetes_dashboard/helpers/k8s_integration_helper';
 import WorkloadStats from '~/kubernetes_dashboard/components/workload_stats.vue';
 import WorkloadTable from '~/kubernetes_dashboard/components/workload_table.vue';
-import k8sPodsQuery from '../graphql/queries/k8s_pods.query.graphql';
+import k8sPodsQuery from '~/environments/graphql/queries/k8s_pods.query.graphql';
 
 export default {
   components: {
diff --git a/app/assets/javascripts/environments/components/kubernetes_services.vue b/app/assets/javascripts/environments/environment_details/components/kubernetes/kubernetes_services.vue
similarity index 93%
rename from app/assets/javascripts/environments/components/kubernetes_services.vue
rename to app/assets/javascripts/environments/environment_details/components/kubernetes/kubernetes_services.vue
index dc2962a9df597..7cc14ae50ec02 100644
--- a/app/assets/javascripts/environments/components/kubernetes_services.vue
+++ b/app/assets/javascripts/environments/environment_details/components/kubernetes/kubernetes_services.vue
@@ -7,8 +7,8 @@ import {
 } from '~/kubernetes_dashboard/helpers/k8s_integration_helper';
 import WorkloadTable from '~/kubernetes_dashboard/components/workload_table.vue';
 import { SERVICES_TABLE_FIELDS } from '~/kubernetes_dashboard/constants';
-import k8sServicesQuery from '../graphql/queries/k8s_services.query.graphql';
-import { SERVICES_LIMIT_PER_PAGE } from '../constants';
+import k8sServicesQuery from '~/environments/graphql/queries/k8s_services.query.graphql';
+import { SERVICES_LIMIT_PER_PAGE } from '~/environments/constants';
 
 export default {
   components: {
diff --git a/app/assets/javascripts/environments/components/kubernetes_status_bar.vue b/app/assets/javascripts/environments/environment_details/components/kubernetes/kubernetes_status_bar.vue
similarity index 95%
rename from app/assets/javascripts/environments/components/kubernetes_status_bar.vue
rename to app/assets/javascripts/environments/environment_details/components/kubernetes/kubernetes_status_bar.vue
index 2cf37ccca279f..19070a9c4e0da 100644
--- a/app/assets/javascripts/environments/components/kubernetes_status_bar.vue
+++ b/app/assets/javascripts/environments/environment_details/components/kubernetes/kubernetes_status_bar.vue
@@ -12,9 +12,9 @@ import {
   REASON_PROGRESSING,
   HELM_RELEASES_RESOURCE_TYPE,
   KUSTOMIZATIONS_RESOURCE_TYPE,
-} from '../constants';
-import fluxKustomizationStatusQuery from '../graphql/queries/flux_kustomization_status.query.graphql';
-import fluxHelmReleaseStatusQuery from '../graphql/queries/flux_helm_release_status.query.graphql';
+} from '~/environments/constants';
+import fluxKustomizationStatusQuery from '~/environments/graphql/queries/flux_kustomization_status.query.graphql';
+import fluxHelmReleaseStatusQuery from '~/environments/graphql/queries/flux_helm_release_status.query.graphql';
 
 export default {
   components: {
diff --git a/app/assets/javascripts/environments/components/kubernetes_tabs.vue b/app/assets/javascripts/environments/environment_details/components/kubernetes/kubernetes_tabs.vue
similarity index 100%
rename from app/assets/javascripts/environments/components/kubernetes_tabs.vue
rename to app/assets/javascripts/environments/environment_details/components/kubernetes/kubernetes_tabs.vue
diff --git a/app/assets/javascripts/environments/environment_details/index.vue b/app/assets/javascripts/environments/environment_details/index.vue
index 690942349d66a..fadf40e638631 100644
--- a/app/assets/javascripts/environments/environment_details/index.vue
+++ b/app/assets/javascripts/environments/environment_details/index.vue
@@ -3,7 +3,7 @@
 import { GlTabs, GlTab } from '@gitlab/ui';
 import { s__ } from '~/locale';
 import DeploymentHistory from './components/deployment_history.vue';
-import KubernetesOverview from './components/kubernetes_overview.vue';
+import KubernetesOverview from './components/kubernetes/kubernetes_overview.vue';
 
 export default {
   components: {
diff --git a/app/assets/javascripts/environments/folder/environments_folder_bundle.js b/app/assets/javascripts/environments/folder/environments_folder_bundle.js
index 05a2eba6af30a..d6dc1a3e2c4ea 100644
--- a/app/assets/javascripts/environments/folder/environments_folder_bundle.js
+++ b/app/assets/javascripts/environments/folder/environments_folder_bundle.js
@@ -3,7 +3,6 @@ import VueApollo from 'vue-apollo';
 import VueRouter from 'vue-router';
 import createDefaultClient from '~/lib/graphql';
 import Translate from '~/vue_shared/translate';
-import { removeLastSlashInUrlPath } from '~/lib/utils/url_utility';
 import { apolloProvider } from '../graphql/client';
 import EnvironmentsFolderView from './environments_folder_view.vue';
 import EnvironmentsFolderApp from './environments_folder_app.vue';
@@ -22,7 +21,6 @@ export default () => {
     Vue.use(VueRouter);
 
     const folderPath = environmentsData.endpoint.replace('.json', '');
-    const kasTunnelUrl = removeLastSlashInUrlPath(environmentsData.kasTunnelUrl);
     const { projectPath, folderName, helpPagePath } = environmentsData;
 
     const router = new VueRouter({
@@ -54,7 +52,6 @@ export default () => {
       provide: {
         projectPath,
         helpPagePath,
-        kasTunnelUrl,
       },
       apolloProvider,
       router,
diff --git a/app/assets/javascripts/environments/index.js b/app/assets/javascripts/environments/index.js
index 0e0ea018618ae..04a3c46f03496 100644
--- a/app/assets/javascripts/environments/index.js
+++ b/app/assets/javascripts/environments/index.js
@@ -1,7 +1,6 @@
 import Vue from 'vue';
 import VueApollo from 'vue-apollo';
 import { GlToast } from '@gitlab/ui';
-import { removeLastSlashInUrlPath } from '~/lib/utils/url_utility';
 import { parseBoolean } from '../lib/utils/common_utils';
 import { apolloProvider } from './graphql/client';
 import EnvironmentsApp from './components/environments_app.vue';
@@ -19,7 +18,6 @@ export default (el) => {
       projectPath,
       defaultBranchName,
       projectId,
-      kasTunnelUrl,
     } = el.dataset;
 
     return new Vue({
@@ -32,7 +30,6 @@ export default (el) => {
         newEnvironmentPath,
         helpPagePath,
         projectId,
-        kasTunnelUrl: removeLastSlashInUrlPath(kasTunnelUrl),
         canCreateEnvironment: parseBoolean(canCreateEnvironment),
       },
       render(h) {
diff --git a/app/controllers/projects/environments_controller.rb b/app/controllers/projects/environments_controller.rb
index 862aac2dd29c5..ee6091b38d1fb 100644
--- a/app/controllers/projects/environments_controller.rb
+++ b/app/controllers/projects/environments_controller.rb
@@ -10,7 +10,7 @@ class Projects::EnvironmentsController < Projects::ApplicationController
 
   layout 'project'
 
-  before_action only: [:index, :show] do
+  before_action only: [:show] do
     push_frontend_feature_flag(:k8s_watch_api, project)
   end
 
@@ -26,7 +26,7 @@ class Projects::EnvironmentsController < Projects::ApplicationController
   before_action :environment, only: [:show, :edit, :update, :stop, :terminal, :terminal_websocket_authorize, :cancel_auto_stop]
   before_action :verify_api_request!, only: :terminal_websocket_authorize
   before_action :expire_etag_cache, only: [:index], unless: -> { request.format.json? }
-  before_action :set_kas_cookie, only: [:index, :folder, :edit, :new, :show], if: -> { current_user && request.format.html? }
+  before_action :set_kas_cookie, only: [:edit, :new, :show], if: -> { current_user && request.format.html? }
   after_action :expire_etag_cache, only: [:cancel_auto_stop]
 
   track_event :index, :folder, :show, :new, :edit, :create, :update, :stop, :cancel_auto_stop, :terminal,
diff --git a/app/helpers/environments_helper.rb b/app/helpers/environments_helper.rb
index ac34f429508d2..66f29e84f665f 100644
--- a/app/helpers/environments_helper.rb
+++ b/app/helpers/environments_helper.rb
@@ -15,8 +15,7 @@ def environments_folder_list_view_data(project, folder)
       "folder_name" => folder,
       "project_path" => project.full_path,
       "help_page_path" => help_page_path("ci/environments/index"),
-      "can_read_environment" => can?(current_user, :read_environment, @project).to_s,
-      "kas_tunnel_url" => ::Gitlab::Kas.tunnel_url
+      "can_read_environment" => can?(current_user, :read_environment, @project).to_s
     }
   end
 
diff --git a/app/views/projects/environments/index.html.haml b/app/views/projects/environments/index.html.haml
index c2bea4bf43c60..a55d1078b7b26 100644
--- a/app/views/projects/environments/index.html.haml
+++ b/app/views/projects/environments/index.html.haml
@@ -8,5 +8,4 @@
   "help-page-path" => help_page_path("ci/environments/index"),
   "project-path" => @project.full_path,
   "project-id" => @project.id,
-  "default-branch-name" => @project.default_branch_or_main,
-  "kas-tunnel-url" => ::Gitlab::Kas.tunnel_url } }
+  "default-branch-name" => @project.default_branch_or_main } }
diff --git a/doc/ci/environments/img/kubernetes_summary_ui.png b/doc/ci/environments/img/kubernetes_summary_ui.png
deleted file mode 100644
index f8eae88745e59cb1b99b1e58177b594ea0c07452..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 13822
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

diff --git a/doc/ci/environments/img/kubernetes_summary_ui_v16_10.png b/doc/ci/environments/img/kubernetes_summary_ui_v16_10.png
new file mode 100644
index 0000000000000000000000000000000000000000..58a6ca1397a0d51772022265ccec7ab8912fab22
GIT binary patch
literal 52131
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
R!I};yEiNxsA!-=(zX6mJ@=O2#

literal 0
HcmV?d00001

diff --git a/doc/ci/environments/kubernetes_dashboard.md b/doc/ci/environments/kubernetes_dashboard.md
index 61f2cea5aefdd..8903508782442 100644
--- a/doc/ci/environments/kubernetes_dashboard.md
+++ b/doc/ci/environments/kubernetes_dashboard.md
@@ -14,12 +14,13 @@ DETAILS:
 > - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/390769) in GitLab 16.1, with [flags](../../administration/feature_flags.md) named `environment_settings_to_graphql`, `kas_user_access`, `kas_user_access_project`, and `expose_authorized_cluster_agents`. This feature is in [Beta](../../policy/experiment-beta-support.md#beta).
 > - Feature flag `environment_settings_to_graphql` [removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124177) in GitLab 16.2.
 > - Feature flags `kas_user_access`, `kas_user_access_project`, and `expose_authorized_cluster_agents` [removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/125835) in GitLab 16.2.
+> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/431746) to the environment details page in 16.10.
 
 Use the Dashboard for Kubernetes to understand the status of your clusters with an intuitive visual interface.
 The dashboard works with every connected Kubernetes cluster, whether you deployed them
 with CI/CD or GitOps.
 
-![Kubernetes summary UI](img/kubernetes_summary_ui.png)
+![Kubernetes summary UI](img/kubernetes_summary_ui_v16_10.png)
 
 ## Configure a dashboard
 
@@ -76,8 +77,8 @@ To view a configured dashboard:
 
 1. On the left sidebar, select **Search or go to** and find your project.
 1. Select **Operate > Environments**.
-1. Expand the environment associated with the agent for Kubernetes.
-1. Expand **Kubernetes overview**.
+1. Select the environment associated with the agent for Kubernetes.
+1. Select the **Kubernetes overview** tab.
 
 ### Flux sync status
 
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 155ef5e02b0bf..1e7fa4154e3fc 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -19508,9 +19508,6 @@ msgstr ""
 msgid "Environment|Healthy"
 msgstr ""
 
-msgid "Environment|Kubernetes overview"
-msgstr ""
-
 msgid "Environment|No Kubernetes clusters configured"
 msgstr ""
 
diff --git a/spec/frontend/environments/kubernetes_agent_info_spec.js b/spec/frontend/environments/environment_details/components/kubernetes/kubernetes_agent_info_spec.js
similarity index 92%
rename from spec/frontend/environments/kubernetes_agent_info_spec.js
rename to spec/frontend/environments/environment_details/components/kubernetes/kubernetes_agent_info_spec.js
index 9169b9284f428..d04b02f1bad06 100644
--- a/spec/frontend/environments/kubernetes_agent_info_spec.js
+++ b/spec/frontend/environments/environment_details/components/kubernetes/kubernetes_agent_info_spec.js
@@ -2,7 +2,7 @@ import { shallowMount } from '@vue/test-utils';
 import { GlIcon, GlLink, GlSprintf } from '@gitlab/ui';
 import { extendedWrapper } from 'helpers/vue_test_utils_helper';
 import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';
-import KubernetesAgentInfo from '~/environments/components/kubernetes_agent_info.vue';
+import KubernetesAgentInfo from '~/environments/environment_details/components/kubernetes/kubernetes_agent_info.vue';
 import { AGENT_STATUSES, ACTIVE_CONNECTION_TIME } from '~/clusters_list/constants';
 import waitForPromises from 'helpers/wait_for_promises';
 
@@ -15,7 +15,7 @@ const defaultClusterAgent = {
 const connectedTimeNow = new Date();
 const connectedTimeInactive = new Date(connectedTimeNow.getTime() - ACTIVE_CONNECTION_TIME);
 
-describe('~/environments/components/kubernetes_agent_info.vue', () => {
+describe('~/environments/environment_details/components/kubernetes/kubernetes_agent_info.vue', () => {
   let wrapper;
 
   const findAgentLink = () => wrapper.findComponent(GlLink);
diff --git a/spec/frontend/environments/environment_details/components/kubernetes_overview_spec.js b/spec/frontend/environments/environment_details/components/kubernetes/kubernetes_overview_spec.js
similarity index 89%
rename from spec/frontend/environments/environment_details/components/kubernetes_overview_spec.js
rename to spec/frontend/environments/environment_details/components/kubernetes/kubernetes_overview_spec.js
index 82a21e3239e88..b440a1794c226 100644
--- a/spec/frontend/environments/environment_details/components/kubernetes_overview_spec.js
+++ b/spec/frontend/environments/environment_details/components/kubernetes/kubernetes_overview_spec.js
@@ -2,17 +2,17 @@ import Vue, { nextTick } from 'vue';
 import VueApollo from 'vue-apollo';
 import { GlLoadingIcon, GlEmptyState, GlAlert } from '@gitlab/ui';
 import { shallowMount } from '@vue/test-utils';
-import KubernetesOverview from '~/environments/environment_details/components/kubernetes_overview.vue';
-import KubernetesStatusBar from '~/environments/components/kubernetes_status_bar.vue';
-import KubernetesAgentInfo from '~/environments/components/kubernetes_agent_info.vue';
-import KubernetesTabs from '~/environments/components/kubernetes_tabs.vue';
+import KubernetesOverview from '~/environments/environment_details/components/kubernetes/kubernetes_overview.vue';
+import KubernetesStatusBar from '~/environments/environment_details/components/kubernetes/kubernetes_status_bar.vue';
+import KubernetesAgentInfo from '~/environments/environment_details/components/kubernetes/kubernetes_agent_info.vue';
+import KubernetesTabs from '~/environments/environment_details/components/kubernetes/kubernetes_tabs.vue';
 import environmentClusterAgentQuery from '~/environments/graphql/queries/environment_cluster_agent.query.graphql';
 import createMockApollo from 'helpers/mock_apollo_helper';
 import waitForPromises from 'helpers/wait_for_promises';
-import { agent, kubernetesNamespace, fluxResourcePathMock } from '../../graphql/mock_data';
-import { mockKasTunnelUrl } from '../../mock_data';
+import { agent, kubernetesNamespace, fluxResourcePathMock } from '../../../graphql/mock_data';
+import { mockKasTunnelUrl } from '../../../mock_data';
 
-describe('~/environments/kubernetes_overview/index.vue', () => {
+describe('~/environments/environment_details/components/kubernetes/kubernetes_overview.vue', () => {
   Vue.use(VueApollo);
 
   let wrapper;
@@ -50,10 +50,9 @@ describe('~/environments/kubernetes_overview/index.vue', () => {
         },
       },
     };
-    const mockApollo = createMockApollo(
-      [[environmentClusterAgentQuery, jest.fn().mockResolvedValue(defaultEnvironmentData)]],
-      [],
-    );
+    const mockApollo = createMockApollo([
+      [environmentClusterAgentQuery, jest.fn().mockResolvedValue(defaultEnvironmentData)],
+    ]);
 
     return shallowMount(KubernetesOverview, {
       apolloProvider: mockApollo,
diff --git a/spec/frontend/environments/kubernetes_pods_spec.js b/spec/frontend/environments/environment_details/components/kubernetes/kubernetes_pods_spec.js
similarity index 93%
rename from spec/frontend/environments/kubernetes_pods_spec.js
rename to spec/frontend/environments/environment_details/components/kubernetes/kubernetes_pods_spec.js
index df18cd7cbc460..dbbf8e7f5d4c9 100644
--- a/spec/frontend/environments/kubernetes_pods_spec.js
+++ b/spec/frontend/environments/environment_details/components/kubernetes/kubernetes_pods_spec.js
@@ -4,16 +4,16 @@ import { shallowMount } from '@vue/test-utils';
 import { GlLoadingIcon, GlTab } from '@gitlab/ui';
 import waitForPromises from 'helpers/wait_for_promises';
 import createMockApollo from 'helpers/mock_apollo_helper';
-import KubernetesPods from '~/environments/components/kubernetes_pods.vue';
+import KubernetesPods from '~/environments/environment_details/components/kubernetes/kubernetes_pods.vue';
 import WorkloadStats from '~/kubernetes_dashboard/components/workload_stats.vue';
 import WorkloadTable from '~/kubernetes_dashboard/components/workload_table.vue';
 import { useFakeDate } from 'helpers/fake_date';
-import { mockKasTunnelUrl } from './mock_data';
-import { k8sPodsMock, k8sPodsStatsData, k8sPodsTableData } from './graphql/mock_data';
+import { mockKasTunnelUrl } from '../../../mock_data';
+import { k8sPodsMock, k8sPodsStatsData, k8sPodsTableData } from '../../../graphql/mock_data';
 
 Vue.use(VueApollo);
 
-describe('~/environments/components/kubernetes_pods.vue', () => {
+describe('~/environments/environment_details/components/kubernetes/kubernetes_pods.vue', () => {
   let wrapper;
 
   const namespace = 'my-kubernetes-namespace';
diff --git a/spec/frontend/environments/kubernetes_services_spec.js b/spec/frontend/environments/environment_details/components/kubernetes/kubernetes_services_spec.js
similarity index 91%
rename from spec/frontend/environments/kubernetes_services_spec.js
rename to spec/frontend/environments/environment_details/components/kubernetes/kubernetes_services_spec.js
index 57207da40639a..9ab97dc4bbec3 100644
--- a/spec/frontend/environments/kubernetes_services_spec.js
+++ b/spec/frontend/environments/environment_details/components/kubernetes/kubernetes_services_spec.js
@@ -5,16 +5,16 @@ import { GlLoadingIcon, GlTab } from '@gitlab/ui';
 import { useFakeDate } from 'helpers/fake_date';
 import waitForPromises from 'helpers/wait_for_promises';
 import createMockApollo from 'helpers/mock_apollo_helper';
-import KubernetesServices from '~/environments/components/kubernetes_services.vue';
+import KubernetesServices from '~/environments/environment_details/components/kubernetes/kubernetes_services.vue';
 import WorkloadTable from '~/kubernetes_dashboard/components/workload_table.vue';
 import { SERVICES_LIMIT_PER_PAGE } from '~/environments/constants';
 import { SERVICES_TABLE_FIELDS } from '~/kubernetes_dashboard/constants';
-import { mockKasTunnelUrl } from './mock_data';
-import { k8sServicesMock } from './graphql/mock_data';
+import { mockKasTunnelUrl } from '../../../mock_data';
+import { k8sServicesMock } from '../../../graphql/mock_data';
 
 Vue.use(VueApollo);
 
-describe('~/environments/components/kubernetes_services.vue', () => {
+describe('~/environments/environment_details/components/kubernetes/kubernetes_services.vue', () => {
   let wrapper;
 
   const namespace = 'my-kubernetes-namespace';
diff --git a/spec/frontend/environments/kubernetes_status_bar_spec.js b/spec/frontend/environments/environment_details/components/kubernetes/kubernetes_status_bar_spec.js
similarity index 97%
rename from spec/frontend/environments/kubernetes_status_bar_spec.js
rename to spec/frontend/environments/environment_details/components/kubernetes/kubernetes_status_bar_spec.js
index 21f8f75f0683b..92195ba31f235 100644
--- a/spec/frontend/environments/kubernetes_status_bar_spec.js
+++ b/spec/frontend/environments/environment_details/components/kubernetes/kubernetes_status_bar_spec.js
@@ -2,7 +2,7 @@ import Vue from 'vue';
 import VueApollo from 'vue-apollo';
 import { GlLoadingIcon, GlPopover, GlSprintf } from '@gitlab/ui';
 import { shallowMountExtended } from 'helpers/vue_test_utils_helper';
-import KubernetesStatusBar from '~/environments/components/kubernetes_status_bar.vue';
+import KubernetesStatusBar from '~/environments/environment_details/components/kubernetes/kubernetes_status_bar.vue';
 import {
   CLUSTER_HEALTH_SUCCESS,
   CLUSTER_HEALTH_ERROR,
@@ -12,7 +12,7 @@ import {
 } from '~/environments/constants';
 import waitForPromises from 'helpers/wait_for_promises';
 import createMockApollo from 'helpers/mock_apollo_helper';
-import { mockKasTunnelUrl } from './mock_data';
+import { mockKasTunnelUrl } from '../../../mock_data';
 
 Vue.use(VueApollo);
 
@@ -27,7 +27,7 @@ const environmentName = 'environment_name';
 const kustomizationResourcePath =
   'kustomize.toolkit.fluxcd.io/v1beta1/namespaces/my-namespace/kustomizations/app';
 
-describe('~/environments/components/kubernetes_status_bar.vue', () => {
+describe('~/environments/environment_details/components/kubernetes/kubernetes_status_bar.vue', () => {
   let wrapper;
 
   const findLoadingIcon = () => wrapper.findComponent(GlLoadingIcon);
diff --git a/spec/frontend/environments/kubernetes_tabs_spec.js b/spec/frontend/environments/environment_details/components/kubernetes/kubernetes_tabs_spec.js
similarity index 83%
rename from spec/frontend/environments/kubernetes_tabs_spec.js
rename to spec/frontend/environments/environment_details/components/kubernetes/kubernetes_tabs_spec.js
index 8bc8fcf9b1ab2..aede932d16495 100644
--- a/spec/frontend/environments/kubernetes_tabs_spec.js
+++ b/spec/frontend/environments/environment_details/components/kubernetes/kubernetes_tabs_spec.js
@@ -1,11 +1,11 @@
 import { shallowMount } from '@vue/test-utils';
 import { GlTabs } from '@gitlab/ui';
-import KubernetesTabs from '~/environments/components/kubernetes_tabs.vue';
-import KubernetesPods from '~/environments/components/kubernetes_pods.vue';
-import KubernetesServices from '~/environments/components/kubernetes_services.vue';
-import { mockKasTunnelUrl } from './mock_data';
+import KubernetesTabs from '~/environments/environment_details/components/kubernetes/kubernetes_tabs.vue';
+import KubernetesPods from '~/environments/environment_details/components/kubernetes/kubernetes_pods.vue';
+import KubernetesServices from '~/environments/environment_details/components/kubernetes/kubernetes_services.vue';
+import { mockKasTunnelUrl } from '../../../mock_data';
 
-describe('~/environments/components/kubernetes_tabs.vue', () => {
+describe('~/environments/environment_details/components/kubernetes/kubernetes_tabs.vue', () => {
   let wrapper;
 
   const namespace = 'my-kubernetes-namespace';
diff --git a/spec/frontend/environments/environment_details/index_spec.js b/spec/frontend/environments/environment_details/index_spec.js
index b352079ac2e51..0871d45fcec37 100644
--- a/spec/frontend/environments/environment_details/index_spec.js
+++ b/spec/frontend/environments/environment_details/index_spec.js
@@ -3,7 +3,7 @@ import { shallowMount } from '@vue/test-utils';
 import { nextTick } from 'vue';
 import EnvironmentsDetailPage from '~/environments/environment_details/index.vue';
 import DeploymentsHistory from '~/environments/environment_details/components/deployment_history.vue';
-import KubernetesOverview from '~/environments/environment_details/components/kubernetes_overview.vue';
+import KubernetesOverview from '~/environments/environment_details/components/kubernetes/kubernetes_overview.vue';
 
 const projectFullPath = 'gitlab-group/test-project';
 const environmentName = 'test-environment-name';
diff --git a/spec/frontend/environments/kubernetes_overview_spec.js b/spec/frontend/environments/kubernetes_overview_spec.js
deleted file mode 100644
index 9e97552681544..0000000000000
--- a/spec/frontend/environments/kubernetes_overview_spec.js
+++ /dev/null
@@ -1,172 +0,0 @@
-import { nextTick } from 'vue';
-import { shallowMount } from '@vue/test-utils';
-import { GlCollapse, GlButton, GlAlert } from '@gitlab/ui';
-import KubernetesOverview from '~/environments/components/kubernetes_overview.vue';
-import KubernetesAgentInfo from '~/environments/components/kubernetes_agent_info.vue';
-import KubernetesTabs from '~/environments/components/kubernetes_tabs.vue';
-import KubernetesStatusBar from '~/environments/components/kubernetes_status_bar.vue';
-import {
-  agent,
-  kubernetesNamespace,
-  resolvedEnvironment,
-  fluxResourcePathMock,
-} from './graphql/mock_data';
-import { mockKasTunnelUrl } from './mock_data';
-
-const propsData = {
-  clusterAgent: agent,
-  namespace: kubernetesNamespace,
-  environmentName: resolvedEnvironment.name,
-  fluxResourcePath: fluxResourcePathMock,
-};
-
-const provide = {
-  kasTunnelUrl: mockKasTunnelUrl,
-};
-
-const configuration = {
-  basePath: provide.kasTunnelUrl.replace(/\/$/, ''),
-  headers: {
-    'GitLab-Agent-Id': '1',
-    'Content-Type': 'application/json',
-    Accept: 'application/json',
-  },
-  credentials: 'include',
-};
-
-describe('~/environments/components/kubernetes_overview.vue', () => {
-  let wrapper;
-
-  const findCollapse = () => wrapper.findComponent(GlCollapse);
-  const findCollapseButton = () => wrapper.findComponent(GlButton);
-  const findAgentInfo = () => wrapper.findComponent(KubernetesAgentInfo);
-  const findKubernetesTabs = () => wrapper.findComponent(KubernetesTabs);
-  const findKubernetesStatusBar = () => wrapper.findComponent(KubernetesStatusBar);
-  const findAlert = () => wrapper.findComponent(GlAlert);
-
-  const createWrapper = () => {
-    wrapper = shallowMount(KubernetesOverview, {
-      propsData,
-      provide,
-    });
-  };
-
-  const toggleCollapse = async () => {
-    findCollapseButton().vm.$emit('click');
-    await nextTick();
-  };
-
-  describe('default', () => {
-    beforeEach(() => {
-      createWrapper();
-    });
-
-    it('renders the kubernetes overview title', () => {
-      expect(wrapper.text()).toBe(KubernetesOverview.i18n.sectionTitle);
-    });
-  });
-
-  describe('collapse', () => {
-    beforeEach(() => {
-      createWrapper();
-    });
-
-    it('is collapsed by default', () => {
-      expect(findCollapse().props('visible')).toBe(false);
-      expect(findCollapseButton().attributes('aria-label')).toBe(KubernetesOverview.i18n.expand);
-      expect(findCollapseButton().props('icon')).toBe('chevron-right');
-    });
-
-    it("doesn't render components when the collapse is not visible", () => {
-      expect(findAgentInfo().exists()).toBe(false);
-      expect(findKubernetesTabs().exists()).toBe(false);
-    });
-
-    it('opens on click', async () => {
-      findCollapseButton().vm.$emit('click');
-      await nextTick();
-
-      expect(findCollapse().props('visible')).toBe(true);
-      expect(findCollapseButton().attributes('aria-label')).toBe(KubernetesOverview.i18n.collapse);
-      expect(findCollapseButton().props('icon')).toBe('chevron-down');
-    });
-  });
-
-  describe('when section is expanded', () => {
-    beforeEach(() => {
-      createWrapper();
-      toggleCollapse();
-    });
-
-    it('renders kubernetes agent info', () => {
-      expect(findAgentInfo().props('clusterAgent')).toEqual(agent);
-    });
-
-    it('renders kubernetes tabs', () => {
-      expect(findKubernetesTabs().props()).toEqual({
-        namespace: kubernetesNamespace,
-        configuration,
-      });
-    });
-
-    it('renders kubernetes status bar', () => {
-      expect(findKubernetesStatusBar().props()).toEqual({
-        clusterHealthStatus: 'success',
-        configuration,
-        environmentName: resolvedEnvironment.name,
-        fluxResourcePath: fluxResourcePathMock,
-      });
-    });
-  });
-
-  describe('Kubernetes health status', () => {
-    beforeEach(() => {
-      createWrapper();
-      toggleCollapse();
-    });
-
-    it("doesn't set `clusterHealthStatus` when pods are still loading", async () => {
-      findKubernetesTabs().vm.$emit('loading', true);
-      await nextTick();
-
-      expect(findKubernetesStatusBar().props('clusterHealthStatus')).toBe('');
-    });
-
-    it('sets `clusterHealthStatus` as error when pods emitted a failure', async () => {
-      findKubernetesTabs().vm.$emit('update-failed-state', { pods: true });
-      await nextTick();
-
-      expect(findKubernetesStatusBar().props('clusterHealthStatus')).toBe('error');
-    });
-
-    it('sets `clusterHealthStatus` as success when data is loaded and no failures where emitted', () => {
-      expect(findKubernetesStatusBar().props('clusterHealthStatus')).toBe('success');
-    });
-
-    it('sets `clusterHealthStatus` as success after state update if there are no failures', async () => {
-      findKubernetesTabs().vm.$emit('update-failed-state', { pods: true });
-      await nextTick();
-      expect(findKubernetesStatusBar().props('clusterHealthStatus')).toBe('error');
-
-      findKubernetesTabs().vm.$emit('update-failed-state', { pods: false });
-      await nextTick();
-      expect(findKubernetesStatusBar().props('clusterHealthStatus')).toBe('success');
-    });
-  });
-
-  describe('on cluster error', () => {
-    beforeEach(() => {
-      createWrapper();
-      toggleCollapse();
-    });
-
-    it('shows alert with the error message', async () => {
-      const error = 'Error message from pods';
-
-      findKubernetesTabs().vm.$emit('cluster-error', error);
-      await nextTick();
-
-      expect(findAlert().text()).toBe(error);
-    });
-  });
-});
diff --git a/spec/frontend/environments/new_environment_item_spec.js b/spec/frontend/environments/new_environment_item_spec.js
index 552c44fe1974d..9c88380d61636 100644
--- a/spec/frontend/environments/new_environment_item_spec.js
+++ b/spec/frontend/environments/new_environment_item_spec.js
@@ -3,7 +3,6 @@ import Vue from 'vue';
 import { GlCollapse, GlIcon } from '@gitlab/ui';
 import createMockApollo from 'helpers/mock_apollo_helper';
 import { mountExtended, extendedWrapper } from 'helpers/vue_test_utils_helper';
-import waitForPromises from 'helpers/wait_for_promises';
 import { stubTransition } from 'helpers/stub_transition';
 import { getTimeago, localeDateFormat } from '~/lib/utils/datetime_utility';
 import { __, s__, sprintf } from '~/locale';
@@ -11,40 +10,15 @@ import EnvironmentItem from '~/environments/components/new_environment_item.vue'
 import EnvironmentActions from '~/environments/components/environment_actions.vue';
 import Deployment from '~/environments/components/deployment.vue';
 import DeployBoardWrapper from '~/environments/components/deploy_board_wrapper.vue';
-import KubernetesOverview from '~/environments/components/kubernetes_overview.vue';
-import getEnvironmentClusterAgent from '~/environments/graphql/queries/environment_cluster_agent.query.graphql';
-import {
-  resolvedEnvironment,
-  rolloutStatus,
-  agent,
-  fluxResourcePathMock,
-} from './graphql/mock_data';
-import { mockKasTunnelUrl } from './mock_data';
+import { resolvedEnvironment, rolloutStatus } from './graphql/mock_data';
 
 Vue.use(VueApollo);
 
 describe('~/environments/components/new_environment_item.vue', () => {
   let wrapper;
-  let queryResponseHandler;
 
-  const projectPath = '/1';
-
-  const createApolloProvider = (clusterAgent = null) => {
-    const response = {
-      data: {
-        project: {
-          id: '1',
-          environment: {
-            id: '1',
-            kubernetesNamespace: 'default',
-            fluxResourcePath: fluxResourcePathMock,
-            clusterAgent,
-          },
-        },
-      },
-    };
-    queryResponseHandler = jest.fn().mockResolvedValue(response);
-    return createMockApollo([[getEnvironmentClusterAgent, queryResponseHandler]]);
+  const createApolloProvider = () => {
+    return createMockApollo();
   };
 
   const createWrapper = ({ propsData = {}, provideData = {}, apolloProvider } = {}) =>
@@ -54,8 +28,7 @@ describe('~/environments/components/new_environment_item.vue', () => {
       provide: {
         helpPagePath: '/help',
         projectId: '1',
-        projectPath,
-        kasTunnelUrl: mockKasTunnelUrl,
+        projectPath: '/1',
         ...provideData,
       },
       stubs: { transition: stubTransition() },
@@ -63,7 +36,6 @@ describe('~/environments/components/new_environment_item.vue', () => {
 
   const findDeployment = () => wrapper.findComponent(Deployment);
   const findActions = () => wrapper.findComponent(EnvironmentActions);
-  const findKubernetesOverview = () => wrapper.findComponent(KubernetesOverview);
 
   const expandCollapsedSection = async () => {
     const button = wrapper.findByRole('button', { name: __('Expand') });
@@ -525,64 +497,4 @@ describe('~/environments/components/new_environment_item.vue', () => {
       expect(deployBoard.exists()).toBe(false);
     });
   });
-
-  describe('kubernetes overview', () => {
-    it('should request agent data when the environment is visible', async () => {
-      wrapper = createWrapper({
-        propsData: { environment: resolvedEnvironment },
-        apolloProvider: createApolloProvider(agent),
-      });
-
-      await expandCollapsedSection();
-
-      expect(queryResponseHandler).toHaveBeenCalledWith({
-        environmentName: resolvedEnvironment.name,
-        projectFullPath: projectPath,
-      });
-    });
-
-    it('should render if the environment has an agent associated', async () => {
-      wrapper = createWrapper({
-        propsData: { environment: resolvedEnvironment },
-        apolloProvider: createApolloProvider(agent),
-      });
-
-      await expandCollapsedSection();
-      await waitForPromises();
-
-      expect(findKubernetesOverview().props()).toMatchObject({
-        clusterAgent: agent,
-        environmentName: resolvedEnvironment.name,
-      });
-    });
-
-    it('should render with the namespace if the environment has an agent associated', async () => {
-      wrapper = createWrapper({
-        propsData: { environment: resolvedEnvironment },
-        apolloProvider: createApolloProvider(agent),
-      });
-
-      await expandCollapsedSection();
-      await waitForPromises();
-
-      expect(findKubernetesOverview().props()).toEqual({
-        clusterAgent: agent,
-        environmentName: resolvedEnvironment.name,
-        namespace: 'default',
-        fluxResourcePath: fluxResourcePathMock,
-      });
-    });
-
-    it('should not render if the environment has no agent object', async () => {
-      wrapper = createWrapper({
-        propsData: { environment: resolvedEnvironment },
-        apolloProvider: createApolloProvider(),
-      });
-
-      await expandCollapsedSection();
-      await waitForPromises();
-
-      expect(findKubernetesOverview().exists()).toBe(false);
-    });
-  });
 });
-- 
GitLab