From 6eba7ba96045452704086cae3c1a9a21fb0ed269 Mon Sep 17 00:00:00 2001 From: Kostis Trantzas <ktrantzas@ece.upatras.gr> Date: Fri, 28 Jun 2024 17:36:06 +0300 Subject: [PATCH] fix for #26 --- kubernetes/helm/README.md | 37 ++--- .../assets/config/config.theming.default.scss | 149 ------------------ .../src/assets/config/theming.default.scss | 22 +++ .../helm/openslice/templates/cridge.yaml | 2 +- .../openslice/templates/tmfweb-config.yaml | 4 +- kubernetes/helm/openslice/values.yaml | 4 +- 6 files changed, 43 insertions(+), 175 deletions(-) delete mode 100644 kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config/config.theming.default.scss create mode 100644 kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config/theming.default.scss diff --git a/kubernetes/helm/README.md b/kubernetes/helm/README.md index 7507a2e..5cab13c 100644 --- a/kubernetes/helm/README.md +++ b/kubernetes/helm/README.md @@ -173,8 +173,11 @@ mysql: ## Configure Web UI -In folder `kubernetes/helm/openslice/files/org.etsi.osl.portal.web/src/js` edit the `config.js.default` configuration file with your configuration. +In folder `kubernetes/helm/openslice/files/org.etsi.osl.portal.web/src/js` you must make a copy of `config.js.default` file and rename it to `config.js`. +This is **mandatory** for the configuration file to be discoverable. + +Edit the `config.js` configuration file with your static configuration, if needed. ``` { @@ -189,30 +192,22 @@ In folder `kubernetes/helm/openslice/files/org.etsi.osl.portal.web/src/js` edit } ``` -Example file: -``` -{ - BUGZILLA: "ROOTURL/bugzilla/", - STATUS: "ROOTURL/status/", - APIURL: "http://localhost", - WEBURL: "ROOTURL/nfvportal", - APIOAUTHURL: "ROOTURL/auth/realms/openslice", - APITMFURL: "ROOTURL/tmf-api/serviceCatalogManagement/v4" -} -``` -Rename `config.js.default` to `config.js`. This is **mandatory** for the configuration file to be discoverable. ## Configure TMF Web UI In the folder `kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config` there are 3 files available for configuration: -* config.prod.json (Basic information + API configuration) -* theming.scss (CSS color palette theming) -* config.theming.json (HTML configuration - Logo, Favicon, Footer) +* config.prod.default.json (Basic information + API configuration) +* theming.default.scss (CSS color palette theming) +* config.theming.default.json (HTML configuration - Logo, Favicon, Footer) +You must make a copy of files: -The first 2 files above (i.e. config.prod.json, theming.scss) are essential for the successful deployment of OpenSlice, thus created automatically during the initial deployment at `org.etsi.osl.tmf.web/src/assets/config` directory as a copy of the default ones from the remote repository. +* `config.prod.default.json` and rename it to `config.prod.json` +* `theming.default.scss` and rename it to `theming.scss` + +The 2 files above (i.e. config.prod.json, theming.scss) are essential for the successful deployment of OpenSlice, and executing the above steps is **mandatory** for the configuration files to be discoverable. Ensure that you check the `config.prod.json` and `theming.scss` files and readjust to your deployment if needed. @@ -257,9 +252,9 @@ E.g. You may edit "TITLE", "WIKI", etc properties with your domain title. Also c } ``` -> The {BASEURL} placeholder in the file automatically detects the Origin (Protocol://Domain:Port) of the deployment and applies it to every respective property. E.g. If you are attempting a local deployment of Openslice, then {BASEURL} is automatically translated to "http://localhost". Similarly, you may use {BASEURL} to translate to a public deployment configuration, e.g. "https://portal.openslice.io". +> The {BASEURL} placeholder in the file automatically detects the Origin (Protocol://Domain:Port) of the deployment and applies it to every respective property. E.g. If you are attempting a local deployment of OpenSlice, then {BASEURL} is automatically translated to "http://localhost". Similarly, you may use {BASEURL} to translate to a public deployment configuration, e.g. "https://portal.openslice.io". -If further customization, apart from the default provided, is needed for branding (Logo, Footer) then `config.theming.json` needs to be created in io.openslice.tmf.web/src/assets/config directory, as follows: +If further customization, apart from the default provided, is needed for branding (Logo, Footer) then `config.theming.json` needs to be created in kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config directory, as follows: ```bash # Starting from the root project directory @@ -269,8 +264,7 @@ cd kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config ```bash sudo cp config.theming.default.json config.theming.json ``` -> ***IMPORTANT NOTE:*** -If you want to apply changes to the JSON configuration files without the need to rebuild the application, you have to apply the changes at the `org.etsi.osl.tmf.web/dist/io-openslice-portal-web/assets/config` directory. Although, it is <u>mandatory</u> to also apply these changes to the `org.etsi.osl.tmf.web/src/assets/config` for <u>persistancy</u>, as after any future rebuild of OpenSlice the `/dist` directory is being overwritten along with its contents. The OpenSlice team strongly recommends to always apply your changes to the TMF web UI configuration files at `org.etsi.osl.tmf.web/src/assets/config` and rebuild the application. + ### 3. Deploy the Helm Chart @@ -403,6 +397,7 @@ This step is mandatory so as to access the OpenSlice Web UI. To add an OpenSlice > That user is different from the Keycloak admin user. It is required to login and browse the OpenSlice Web UI. The Role ADMIN guarantee full access through the OpenSlice UI, thus such a user is always required. ***IMPORTANT: The following is not currently supported in Kubernetes installation.** + ### Keycloak at localhost > **This is an important step if you run Keycloak on localhost!** diff --git a/kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config/config.theming.default.scss b/kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config/config.theming.default.scss deleted file mode 100644 index 54839f3..0000000 --- a/kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config/config.theming.default.scss +++ /dev/null @@ -1,149 +0,0 @@ -/* You can add global styles to this file, and also import other style files */ - -// @import "@angular/material/prebuilt-themes/indigo-pink.css"; - -@import "~@danielmoncada/angular-datetime-picker/assets/style/picker.min.css"; - -/* override bootstrap's 4 blue color */ -$primary: #428bca; -$secondary: #6c6c6c; - -@import "src/assets/config/theming.scss"; - -@import "~bootstrap/scss/bootstrap"; - -// .mat-chip-list-wrapper { -// flex-wrap: nowrap !important; -// } - -.mat-chip { - overflow: unset !important; - white-space: nowrap !important; -} - -* { - font-family: 'Open Sans', sans-serif; - font-weight: 300; -} - -h1, h2, h3, h4, h5, .h1, .h2, .h3, .h4, .h5 { - font-weight: 300 !important; -} - -.btn { - font-weight: 300 !important; -} - -.shadowed { - text-shadow: 4px 4px 6px #aaa; -} - -.shadowed-dark{ - text-shadow: 4px 4px 6px #513838; -} - -.universal-tooltip { - font-size: .9rem; - // width: 450px; -} - -mat-form-field.white-background .mat-form-field-wrapper .mat-form-field-flex .mat-form-field-outline { - background-color: #fff; - border-radius: 5px -} - -mat-form-field { - width: 100%; -} - -.jumbotron.jumbotron-small.jumbotron-list-container { - min-height: 345px; -} - - -.card.card-paper { - border-radius: 12px; - box-shadow: 0 6px 10px -4px rgba(0,0,0,.15); - background-color: #fff; - color: #252422; - margin-bottom: 20px; - position: relative; - border: 0; - transition: box-shadow .2s ease,-webkit-transform .3s cubic-bezier(.34,2,.6,1); - transition: transform .3s cubic-bezier(.34,2,.6,1),box-shadow .2s ease; - transition: transform .3s cubic-bezier(.34,2,.6,1),box-shadow .2s ease,-webkit-transform .3s cubic-bezier(.34,2,.6,1); -} - -.card.card-paper .card-header { - // padding: 15px 15px 0; - padding: 15px; - // border: 0; -} - -.card.card-paper .card-body { - padding: 15px 15px 0px; -} - -.card.card-paper .card-footer { - padding: 0px 15px 15px; - border: 0; - background: transparent; -} - -.card-stats { - font-size: .9rem; -} - -.card-stats i { - font-size: .8em; -} - -.filter-container mat-form-field.mat-form-field-appearance-outline .mat-form-field-wrapper { - padding: 0; -} - -.table.table-generic { - margin-bottom: 0; - // border: 1px solid #ddd; - // font-family:inherit; -} - -.table.table-generic th { - padding: .5rem; - font-weight: 600; - font-size: 0.9rem; -} - -.table.table-generic td { - vertical-align: middle; - padding: .5rem -} - -.mat-paginator { - font-weight: 600; -} - -mat-panel-title { - font-weight: bold; -} - -.nav-link.active mat-checkbox .mat-checkbox-layout .mat-checkbox-inner-container .mat-checkbox-frame { - border-color:#fff -} - -.nav-link mat-checkbox label { - margin-bottom: 0 ; -} - -.minh-30vh { - min-height: 30vh; -} - -html, body { height: 100%; } -body { margin: 0; font-family: Roboto, "Helvetica Neue", sans-serif; } - -@media screen and (min-width: 576px) { - .jumbotron.jumbotron-small { - padding: 2rem; - } - } \ No newline at end of file diff --git a/kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config/theming.default.scss b/kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config/theming.default.scss new file mode 100644 index 0000000..8e515db --- /dev/null +++ b/kubernetes/helm/openslice/files/org.etsi.osl.tmf.web/src/assets/config/theming.default.scss @@ -0,0 +1,22 @@ +/* Default theme */ + +$primary: #428bca; +$secondary: #6c6c6c; + +/* ------------------------------ */ +/* Predefined palette 1 theme */ + +/* $primary: rgba(0,45,126); */ +/* $secondary: #6c6c6c; */ + +/* ------------------------------ */ +/* Predefined palette 2 theme */ + +/* $primary: rgba(255, 124, 0); */ +/* $secondary: #6c6c6c; */ + +/* ------------------------------ */ +/* Predefined palette 3 theme */ + +/* $primary: rgba(247,1, 2); */ +/* $secondary: #6c6c6c; */ diff --git a/kubernetes/helm/openslice/templates/cridge.yaml b/kubernetes/helm/openslice/templates/cridge.yaml index 5ddf1aa..f65c1ad 100644 --- a/kubernetes/helm/openslice/templates/cridge.yaml +++ b/kubernetes/helm/openslice/templates/cridge.yaml @@ -40,7 +40,7 @@ spec: "spring.activemq.user": "{{ .Values.oscreds.activemq.user }}", "spring.activemq.password": "{{ .Values.oscreds.activemq.password }}", "logging.level.org.springframework" : "{{ .Values.spring.logLevel | default "INFO" }}", - "logging.level.org.etsi.osl.cridge" : "{{ .Values.cridge.logLevel | default "DEBUG" }}" + "logging.level.org.etsi.osl.cridge" : "{{ .Values.cridge.logLevel | default "INFO" }}" } resources: {{- toYaml .Values.resources | nindent 12 }} diff --git a/kubernetes/helm/openslice/templates/tmfweb-config.yaml b/kubernetes/helm/openslice/templates/tmfweb-config.yaml index 89a7727..f0354e7 100644 --- a/kubernetes/helm/openslice/templates/tmfweb-config.yaml +++ b/kubernetes/helm/openslice/templates/tmfweb-config.yaml @@ -13,5 +13,5 @@ data: {{- .Files.Get "files/org.etsi.osl.tmf.web/src/assets/config/config.prod.json" | nindent 4 }} config.theming.json: | {{- .Files.Get "files/org.etsi.osl.tmf.web/src/assets/config/config.theming.json" | nindent 4 }} - config.theming.scss: | - {{- .Files.Get "files/org.etsi.osl.tmf.web/src/assets/config/config.theming.scss" | nindent 4 }} + theming.scss: | + {{- .Files.Get "files/org.etsi.osl.tmf.web/src/assets/config/theming.scss" | nindent 4 }} diff --git a/kubernetes/helm/openslice/values.yaml b/kubernetes/helm/openslice/values.yaml index 0298ecb..9e602b1 100644 --- a/kubernetes/helm/openslice/values.yaml +++ b/kubernetes/helm/openslice/values.yaml @@ -81,7 +81,7 @@ image: pullPolicy: Always # Overrides the image tag whose default is the chart appVersion. tag: "develop" - logLevel: DEBUG + logLevel: INFO bugzillaurl: example.com:443/bugzilla bugzillakey: VH2Vw0iI5aYgALFFzVDWqhACwt6Hu3bXla9kSC1Z @@ -117,7 +117,7 @@ mysql: storage: 10Gi cridge: - mode: "DEBUG" + mode: "INFO" # Storage class to be used for provisioning. Default is manual # storageClass: ~ -- GitLab