From bc830a322df2b01c465727eb17f0d3e3adc0d895 Mon Sep 17 00:00:00 2001 From: Pedro Gonzalez Gomez Date: Tue, 16 Jul 2024 09:53:19 +0200 Subject: [PATCH] mgr/dashboard: add service management for mgmt-gateway Fixes: https://tracker.ceph.com/issues/66963 Signed-off-by: Pedro Gonzalez Gomez --- .../e2e/orchestrator/05-services.e2e-spec.ts | 9 ++ .../src/app/ceph/cluster/cluster.module.ts | 7 +- .../service-form/service-form.component.html | 126 ++++++++++++++-- .../service-form/service-form.component.ts | 140 +++++++++++++++++- .../src/app/shared/constants/app.constants.ts | 16 ++ .../app/shared/models/service.interface.ts | 5 + 6 files changed, 284 insertions(+), 19 deletions(-) diff --git a/src/pybind/mgr/dashboard/frontend/cypress/e2e/orchestrator/05-services.e2e-spec.ts b/src/pybind/mgr/dashboard/frontend/cypress/e2e/orchestrator/05-services.e2e-spec.ts index 6eb14315fdbd0..a3160625067cc 100644 --- a/src/pybind/mgr/dashboard/frontend/cypress/e2e/orchestrator/05-services.e2e-spec.ts +++ b/src/pybind/mgr/dashboard/frontend/cypress/e2e/orchestrator/05-services.e2e-spec.ts @@ -49,5 +49,14 @@ describe('Services page', () => { services.deleteService('oauth2-proxy'); }); + + it('should create and delete a mgmt-gateway service', () => { + services.navigateTo('create'); + services.addService('mgmt-gateway'); + + services.checkExist('mgmt-gateway', true); + + services.deleteService('mgmt-gateway'); + }); }); }); diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/cluster.module.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/cluster.module.ts index 394337ec09c42..37ba8e0c1df6a 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/cluster.module.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/cluster.module.ts @@ -3,6 +3,8 @@ import { NgModule } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { RouterModule } from '@angular/router'; +import { ComboBoxModule, DropdownModule, CheckboxModule } from 'carbon-components-angular'; + import { TreeModule } from '@circlon/angular-tree-component'; import { NgbActiveModal, @@ -87,7 +89,10 @@ import { MultiClusterDetailsComponent } from './multi-cluster/multi-cluster-deta NgbDropdownModule, NgxPipeFunctionModule, NgbProgressbarModule, - DashboardV3Module + DashboardV3Module, + ComboBoxModule, + DropdownModule, + CheckboxModule ], declarations: [ HostsComponent, diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.html b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.html index 91271ed78d755..4e31c133f7846 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.html +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-form/service-form.component.html @@ -22,6 +22,12 @@ i18n> Authentication must be enabled in an active `mgtm-gateway` service to enable Single Sign-On(SSO) with `oauth2-proxy` + + With an active mgmt-gateway service, the dashboard will continue to be served on {{currentURL}}:{{port}} and all other services will be accessible from {{currentURL}}:{{port}}/service_name +
@@ -1052,25 +1058,106 @@
- - - + +
-
-
- - -
+ +
+ + The entered value needs to be a number. + The value must be at least 1. + The value cannot exceed 65535.
- + +
+
+ + + Enable + + Allows to enable authentication through an external Identity Provider (IdP) using Single Sign-On (SSO) + + +
+
+ +
+ + + +
+ +
+ +
+
+ +
+ Default cipher list used: https://ssl-config.mozilla.org/#server=nginx + Invalid cipher suite. Each cipher must be separated by '-' and each cipher suite must be separated by ':' +
+
+ + + + + +
+
+
+ + +
+
+
+
-
-
+ + + Modifying the default settings could lead to a weaker security configuration +