Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: modify charts and tests for new UI release #2665

Merged
merged 8 commits into from
Jul 27, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ class DatasetPage(datasetName: DatasetName, projectPage: ProjectPage)
override def pageReadyElement(implicit webDriver: WebDriver): Option[WebElement] = Some(datasetTitle)

def datasetTitle(implicit webDriver: WebDriver): WebElement = eventually {
find(cssSelector(".col-md-8 > h3")) getOrElse fail("Dataset -> Dataset title not found")
find(cssSelector("h3[data-cy='dataset-title']")) getOrElse fail("Dataset -> Dataset title not found")
}

def datasetNotInKgWarning(implicit webDriver: WebDriver): List[WebBrowser.Element] = eventually {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,7 @@ class ProjectPage(val projectSlug: String, val namespace: String)
}

def startSessionButton(implicit webDriver: WebDriver): WebElement = eventually {
findAll(cssSelector("button.btn.btn-primary"))
findAll(cssSelector("button.btn"))
.find(_.text == "Start session")
.getOrElse(fail("'Start session' button not found"))
}
Expand Down Expand Up @@ -429,7 +429,7 @@ class ProjectPage(val projectSlug: String, val namespace: String)
}

def forkButton(implicit webDriver: WebDriver): WebElement = eventually {
findAll(cssSelector(s"button")).find(_.text == "fork") getOrElse fail("Fork button not found")
find(cssSelector("#fork-project")) getOrElse fail("Fork button not found")
}

object ForkDialog {
Expand All @@ -449,7 +449,8 @@ class ProjectPage(val projectSlug: String, val namespace: String)
}

def forkButton(implicit webDriver: WebDriver): WebElement = eventually {
find(cssSelector("div.modal-footer > button.btn.btn-primary")) getOrElse fail("Fork button not found")
findAll(cssSelector("div.modal-footer > button.btn"))
.find(_.text.trim == "Fork Project") getOrElse fail("Fork button not found")
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,9 @@ trait Datasets {
click on projectPage.Datasets.tab sleep (1 second)

When("the user clicks on the Add Dataset button")
click on projectPage.Datasets.addADatasetButton sleep (1 second)
`try few times before giving up` { _ =>
click on projectPage.Datasets.addADatasetButton sleep (1 second)
}
verify that newDatasetPage.ModificationForm.formTitle contains "Add Dataset"

And(s"the user add the title '$datasetName' to the new dataset")
Expand Down Expand Up @@ -130,7 +132,9 @@ trait Datasets {
`navigate to the dataset`(datasetPage)

When("the user clicks on the modify button")
click on datasetPage.modifyButton sleep (1 second)
`try few times before giving up` { _ =>
click on datasetPage.modifyButton sleep (1 second)
}
verify userCanSee datasetPage.ModificationForm.formTitle

And(s"the user modifies the dataset by ${by.name}")
Expand Down
6 changes: 1 addition & 5 deletions helm-chart/renku/requirements.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,7 @@ dependencies:
- name: renku-ui
alias: ui
repository: "https://swissdatasciencecenter.github.io/helm-charts/"
version: 2.5.0
- name: renku-ui-server
alias: uiserver
repository: "https://swissdatasciencecenter.github.io/helm-charts/"
version: 2.5.0
version: 2.6.0
- name: renku-notebooks
alias: notebooks
repository: "https://swissdatasciencecenter.github.io/helm-charts/"
Expand Down
2 changes: 1 addition & 1 deletion helm-chart/renku/templates/NOTES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ can be accessed using the following one-liner (you need to have jq installed).
kubectl get secrets -n {{ .Release.Namespace }} {{ template "renku.fullname" . }} -o json | jq -r .data.users | base64 --decode
{{- end -}}

{{ if .Values.ui.privacy.enabled -}}
{{ if .Values.ui.client.privacy.enabled -}}
You may need to customize privacy values for your RenkuLab deployment (E.G. the Privacy page).
Please refer to the following documentation: https://renku.readthedocs.io/en/latest/admin/index.html#additional-configurations
{{ end }}
4 changes: 2 additions & 2 deletions helm-chart/renku/templates/ingress.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
{{- $gitlabFullname := include "gitlab.fullname" . -}}
{{- $gitlabServicePort := 80 -}}
{{- $uiFullname := include "ui.fullname" . -}}
{{- $uiServicePort := .Values.ui.service.port -}}
{{- $uiServicePort := .Values.ui.client.service.port -}}
{{- $uiserverFullname := include "uiserver.fullname" . -}}
{{- $uiserverServicePort := .Values.uiserver.service.port -}}
{{- $uiserverServicePort := .Values.ui.server.service.port -}}
{{- $graphEnabled := .Values.graph.enabled -}}
{{- $webhookServiceFullname := include "webhookService.fullname" . -}}
{{- $knowledgeGraphFullname := include "knowledgeGraph.fullname" . -}}
Expand Down
233 changes: 117 additions & 116 deletions helm-chart/renku/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -538,97 +538,123 @@ gitlab:

## Configuration for the UI service
ui:
## Configuration for Renku templates
templates:
custom: true
repositories:
- url: https://github.com/SwissDataScienceCenter/renku-project-template
ref: 0.3.3
name: Renku
- url: https://github.com/SwissDataScienceCenter/contributed-project-templates
ref: 0.4.1
name: Community

## Configuration for a canary version of the UI
# canary:
# enabled: true
# image:
# repository: renku/renku-ui
# tag: "1.0.0-beta5"
## Configuration for the welcome page text
# welcomePage:
# text: "## Some markdown text here!"
## UI image
# image:
# pullPolicy: Always
# repository: renku/renku-ui
# tag: latest

## Pod affinity for UI deployment
# affinity: {}
## Node selector for UI deployment
# nodeSelector: {}
## Pod tolerations for UI deployment
# tolerations: []

## Replica count
# replicaCount: 1

## Service configuration for UI
## Modify service.type according to your setup
# service:
# port: 80
# type: ClusterIP

## Privacy settings allow to configure the content of a Privacy Page through a configMap
## and to show a banner to comply with privacy related laws
# privacy:
# enabled: true
# page:
# enabled: true
# configMapName: privacy-page
# configMapKey: privacy_statement
# banner:
# content: |
# This website requires cookies in order to ensure basic functionality. Further details
# in our <u><a class="text-white" href="/privacy">Privacy Policy</a></u>.
# layout:
# disableStyles: true
# containerClasses: fixed-bottom p-3 bg-dark
# contentClasses: text-white small
# buttonClasses: btn btn-sm btn-light mr-2
# buttonWrapperClasses: mt-2
## Configuration for Sentry
# sentry:
# enabled: false
# url: ''
# namespace: ''
# sampleRate: 0 # sampling rate for tracing -- values must be between 0 and 1

## Configuration for statuspage.io integration
# statuspage:
## Provide the id for the statuspage, which is the subdomain of statuspage.io
## used in the API queries. This can be found from the /api path.
## E.g., under https://renkulab.statuspage.io/api you see that summary
## is available under https://5bcn9bqff4qt.statuspage.io/api/v2/summary.json, so
# id: 5bcn9bqff4qt

## Home settings allow configuration of the home page shown on RenkuLab when the user
## is not logged in.
# homepage:
# custom:
# enabled: true
# main:
# # Custom homepage content as single string markdown
# contentMd: |
# ## RenkuLab @ Yoyodyne
# Welcome to the **Yoyodyne** RenkuLab instance!
# backgroundImage:
# url: https://eoimages.gsfc.nasa.gov/images/imagerecords/79000/79803/earth_night_rotate_lrg.jpg
# tutorialLink: https://renku.readthedocs.io/en/latest/tutorials/01_firststeps.html
# projects:
# - projectPath: renku-tutorials/e-rum-2020
# - projectPath: covid-19/covid-19-forecast
client:
## Configuration for Renku templates
templates:
custom: true
repositories:
- url: https://github.com/SwissDataScienceCenter/renku-project-template
ref: 0.3.3
name: Renku
- url: https://github.com/SwissDataScienceCenter/contributed-project-templates
ref: 0.4.1
name: Community

## Configuration for a canary version of the UI
# canary:
# enabled: true
# image:
# repository: renku/renku-ui
# tag: "1.0.0-beta5"
## Configuration for the welcome page text
# welcomePage:
# text: "## Some markdown text here!"
## UI image
# image:
# pullPolicy: Always
# repository: renku/renku-ui
# tag: latest

## Pod affinity for UI deployment
# affinity: {}
## Node selector for UI deployment
# nodeSelector: {}
## Pod tolerations for UI deployment
# tolerations: []

## Replica count
# replicaCount: 1

## Service configuration for UI
## Modify service.type according to your setup
# service:
# port: 80
# type: ClusterIP

## Privacy settings allow to configure the content of a Privacy Page through a configMap
## and to show a banner to comply with privacy related laws
# privacy:
# enabled: true
# page:
# enabled: true
# configMapName: privacy-page
# configMapKey: privacy_statement
# banner:
# content: |
# This website requires cookies in order to ensure basic functionality. Further details
# in our <u><a class="text-white" href="/privacy">Privacy Policy</a></u>.
# layout:
# disableStyles: true
# containerClasses: fixed-bottom p-3 bg-dark
# contentClasses: text-white small
# buttonClasses: btn btn-sm btn-light mr-2
# buttonWrapperClasses: mt-2
## Configuration for Sentry
# sentry:
# enabled: false
# url: ''
# namespace: ''
# sampleRate: 0 # sampling rate for tracing -- values must be between 0 and 1

## Configuration for statuspage.io integration
# statuspage:
## Provide the id for the statuspage, which is the subdomain of statuspage.io
## used in the API queries. This can be found from the /api path.
## E.g., under https://renkulab.statuspage.io/api you see that summary
## is available under https://5bcn9bqff4qt.statuspage.io/api/v2/summary.json, so
# id: 5bcn9bqff4qt

## Home settings allow configuration of the home page shown on RenkuLab when the user
## is not logged in.
# homepage:
# custom:
# enabled: true
# main:
# # Custom homepage content as single string markdown
# contentMd: |
# ## RenkuLab @ Yoyodyne
# Welcome to the **Yoyodyne** RenkuLab instance!
# backgroundImage:
# url: https://eoimages.gsfc.nasa.gov/images/imagerecords/79000/79803/earth_night_rotate_lrg.jpg
# tutorialLink: https://renku.readthedocs.io/en/latest/tutorials/01_firststeps.html
# projects:
# - projectPath: renku-tutorials/e-rum-2020
# - projectPath: covid-19/covid-19-forecast

## Configuration for renku-ui-server
server:
serverData: {}
## server data to correctly build the path and the routes
# url: https://url.uiserver.fake
# port: 8080
# prefix: /ui-server
gateway: {}
## details to contact the gateway to redirect after the keycloak authentication is finished
# url: https://url.gateway.fake
# loginSuffix: /auth/login
# logoutSuffix: /auth/logout
authentication: {}
## keycloak configration data for the Renku realm
# url: https://url.keycloak.fake/auth/realms/Renku
# id: renku
# secret: 1234abcd # do not provide any value here to use the global gateway client secret
# expirationTolerance: 10
sentry: {}
## Configuration for Sentry
# enabled: false
# url: '' # Sentry target URL
# namespace: '' # namespace used to log errors
# sampleRate: 0 # sampling rate for tracing -- values must be between 0 and 1

# ## Configuration for the notebooks service
notebooks:
Expand Down Expand Up @@ -788,31 +814,6 @@ core:
## Default clone depth
# projectCloneDepth: 1

## Configuration for renku-ui-server
uiserver:
serverData: {}
## server data to correctly build the path and the routes
# url: https://url.uiserver.fake
# port: 8080
# prefix: /ui-server
gateway: {}
## details to contact the gateway to redirect after the keycloak authentication is finished
# url: https://url.gateway.fake
# loginSuffix: /auth/login
# logoutSuffix: /auth/logout
authentication: {}
## keycloak configration data for the Renku realm
# url: https://url.keycloak.fake/auth/realms/Renku
# id: renku
# secret: 1234abcd # do not provide any value here to use the global gateway client secret
# expirationTolerance: 10
sentry: {}
## Configuration for Sentry
# enabled: false
# url: '' # Sentry target URL
# namespace: '' # namespace used to log errors
# sampleRate: 0 # sampling rate for tracing -- values must be between 0 and 1

## Configuration for the Swagger-UI available at <renku-domain>/swagger
swagger:
enabled: true
Expand Down
17 changes: 17 additions & 0 deletions helm-chart/values.yaml.changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,23 @@ Please follow this convention when adding a new row
* `<type: NEW|EDIT|DELETE> - *<resource name>*: <details>`

----
## Upgrading to Renku 0.15.0
* EDIT - the ui and ui-server charts were unified, requiring that the values be merged.

The new structure looks like
```
ui:
baseUrl: <string>
gatewayUrl: <string>
gitlabUrl: <string>
ingress: <object>
client: <object> # the remaining old ui values
server: <object> # the old uiserver values
```
Specifically, for property not in [baseUrl, gatewayUrl, gitlabUrl, ingress]:
* rename *ui.[property]* to *ui.client.[property]*
* rename *uiserver.[property]* to *ui.server.[property]*

## Upgrading to Renku 0.12.1
* NEW/EDIT - sentry values across the repositories were changed to follow this pattern:
```
Expand Down
10 changes: 10 additions & 0 deletions scripts/generate-values/base-renku-values.yaml.template
Original file line number Diff line number Diff line change
Expand Up @@ -88,3 +88,13 @@ postgresql:
postgresqlPassword: <use `openssl rand -hex 32`>
redis:
password: <use `openssl rand -hex 32`>
ui:
client:
welcomePage:
text: |
## Welcome to Renku!
Renku is software for collaborative data science.
With Renku you can share code and data, discuss problems and solutions, and coordinate data-science projects.
## Template
I am templateable, so deployment specific information can be put here by
changing ui.client.welcomePage.text in the values file.