From 7a22ed402ec686aa38d5167eb6bf1a21d85991bb Mon Sep 17 00:00:00 2001 From: Renku Bot <renku@datascience.ch> Date: Tue, 23 Jan 2024 08:06:46 +0000 Subject: [PATCH 01/17] chore: create release 0.48.x --- CHANGELOG.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index cfe601c94c..64e5bfda86 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,5 +1,10 @@ .. _changelog: +0.48.x +------ + + + 0.46.0 ------ From f24f1765e43f305f0a1822c231034744f3848d14 Mon Sep 17 00:00:00 2001 From: Chandrasekhar Ramakrishnan <ciyer@users.noreply.github.com> Date: Mon, 5 Feb 2024 09:25:52 +0100 Subject: [PATCH 02/17] Merge changes from master back in to 0.48.x (#3458) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: skip individual cypress steps (#3442) * chore: Update selenium-java from 4.16.1 to 4.17.0 (#3443) Co-authored-by: RenkuBot <RenkuBot@users.noreply.github.com> * feat: switch to rclone csi (#3380) * switch to rclone csi * use csi-rclone chart * add tolerations config * fix: fix the changelog (#3444) * chore: make the deploy action report the URL (#3450) * chore: Update refined from 0.11.0 to 0.11.1 (#3448) --------- Co-authored-by: Rok RoΕ‘kar <roskarr@ethz.ch> Co-authored-by: RenkuBot <53332360+RenkuBot@users.noreply.github.com> Co-authored-by: RenkuBot <RenkuBot@users.noreply.github.com> Co-authored-by: Ralf Grubenmann <ralf.grubenmann@sdsc.ethz.ch> Co-authored-by: Flora Thiebaut <flora.thiebaut@sdsc.ethz.ch> --- .github/workflows/pull-request-test.yml | 26 ++--- CHANGELOG.rst | 100 ++++++++++++++++-- acceptance-tests/build.sbt | 4 +- cypress-tests/cypress/e2e/useSession.cy.ts | 61 ++++++----- docs/renku-python | 2 +- docs/spelling_wordlist.txt | 3 + event.json | 6 -- helm-chart/renku/requirements.yaml | 7 +- .../templates/notebooks/statefulset.yaml | 12 +-- .../renku/templates/notebooks/test.yaml | 12 +-- helm-chart/renku/values.yaml | 52 ++++----- 11 files changed, 188 insertions(+), 97 deletions(-) delete mode 100644 event.json diff --git a/.github/workflows/pull-request-test.yml b/.github/workflows/pull-request-test.yml index b3a2326687..b1b923a4ec 100644 --- a/.github/workflows/pull-request-test.yml +++ b/.github/workflows/pull-request-test.yml @@ -21,8 +21,8 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: - distribution: 'temurin' - java-version: '17' + distribution: "temurin" + java-version: "17" - uses: actions/setup-python@v5 with: python-version: 3.9 @@ -73,6 +73,7 @@ jobs: runs-on: ubuntu-22.04 environment: name: ci-renku-${{ github.event.number }} + url: https://ci-renku-${{ github.event.number }}.dev.renku.ch steps: - uses: actions/checkout@v4 - name: renku build and deploy @@ -129,7 +130,6 @@ jobs: test-timeout-mins: "120" test-pr-cypress: - if: github.event.action != 'closed' && needs.check-deploy.outputs.pr-contains-string == 'true' && needs.check-deploy.outputs.test-enabled == 'true' needs: [check-deploy, deploy-pr] runs-on: ubuntu-22.04 @@ -137,18 +137,20 @@ jobs: fail-fast: false max-parallel: 1 matrix: - tests: [ - publicProject, - privateProject, - updateProjects, - testDatasets, - useSession, - checkWorkflows, - rstudioSession - ] + tests: + [ + publicProject, + privateProject, + updateProjects, + testDatasets, + useSession, + checkWorkflows, + rstudioSession, + ] steps: - uses: SwissDataScienceCenter/renku-actions/test-renku-cypress@v1.9.1 + if: github.event.action != 'closed' && needs.check-deploy.outputs.pr-contains-string == 'true' && needs.check-deploy.outputs.test-enabled == 'true' with: e2e-target: ${{ matrix.tests }} renku-reference: ${{ github.ref }} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 64e5bfda86..be377f495b 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,6 +5,84 @@ +0.47.0 +------ + +This release expands Renku's cloud storage functionality in two key ways: First, mounted storages +are now read **and write**, so you can use mounted storage as an active workspace for your data in a RenkuLab +session. Second, we have expanded the cloud storage services you can integrate with RenkuLab. You can now +mount not only S3 buckets, but also WebDAV-based storages and Azure Blobs. + +If you use SSH sessions via the CLI, you can use cloud storage there too! Configure cloud storage for your +project on RenkuLab.io, and those storages will be mounted in your remote session. Support for cloud +storage in local Renku sessions is still on our roadmap. + +This release also adds the ability to change which resource class your session uses when you unpause the +session, in case the original resource class is now full. + +User-Facing Changes +~~~~~~~~~~~~~~~~~~~ + +**π New Features** + +- π **Notebooks,Data Services,CSI**: Support for read and write storage mounting in sessions using a new rclone based storage driver + (`#1707 <https://github.com/SwissDataScienceCenter/renku-notebooks/pull/1707>`_, + `#92 <https://github.com/SwissDataScienceCenter/renku-data-services/pull/92>`_, + `#1 <https://github.com/SwissDataScienceCenter/csi-rclone/pull/1>`_). +- π **UI**: add support for more storage services + (`#2908 <https://github.com/SwissDataScienceCenter/renku-ui/pull/2908>`_, + `#2915 <https://github.com/SwissDataScienceCenter/renku-ui/pull/2915>`_). + +**β¨ Improvements** + +- ποΈ **UI**: Improve the look and feel of the home page + (`#2968 <https://github.com/SwissDataScienceCenter/renku-ui/pull/2968>`_, + `#2937 <https://github.com/SwissDataScienceCenter/renku-ui/pull/2937>`_, + `#2927 <https://github.com/SwissDataScienceCenter/renku-ui/pull/2927>`_). +- π **UI**: Use password fields for credentials + (`#2920 <https://github.com/SwissDataScienceCenter/renku-ui/pull/2920>`_). +- π§ **UI**: Allow users to modify non running sessions + (`#2942 <https://github.com/SwissDataScienceCenter/renku-ui/pull/2942>`_). +- π **UI**: Improve feedback when starting sessions on outdated projects + (`#2985 <https://github.com/SwissDataScienceCenter/renku-ui/pull/2985>`_). +- ποΈ **UI**: Update the Renku logo and Renku browser icons + (`#2848 <https://github.com/SwissDataScienceCenter/renku-ui/pull/2848>`_). + +**π Bug Fixes** + +- **UI**: Resize the feedback badge on the session settings page + (`#2953 <https://github.com/SwissDataScienceCenter/renku-ui/pull/2953>`_). +- **UI**: Fix the environment dropdown on the Start session page + (`#2949 <https://github.com/SwissDataScienceCenter/renku-ui/pull/2949>`_). +- **UI**: Improve string validation when trying to upload a dataset file by URL + (`#2834 <https://github.com/SwissDataScienceCenter/renku-ui/pull/2834>`_). + +Internal Changes +~~~~~~~~~~~~~~~~ + +**Improvements** + +- **UI**: RenkuLab admins can now add tolerations and node affinities to resource classes + (`#2916 <https://github.com/SwissDataScienceCenter/renku-ui/pull/2916>`_). +- **UI**: RenkuLab admins can add multiple users to a resource pool at once via a list of emails + (`#2910 <https://github.com/SwissDataScienceCenter/renku-ui/pull/2910>`_). +- **UI**: Use the renku-core API for session options + (`#2947 <https://github.com/SwissDataScienceCenter/renku-ui/pull/2947>`_). +- **UI**: Specify a branch every time a renku-core API is invoked + (`#2977 <https://github.com/SwissDataScienceCenter/renku-ui/pull/2977>`_). + +Individual Components +~~~~~~~~~~~~~~~~~~~~~ + +- `amalthea 0.11.0 <https://github.com/SwissDataScienceCenter/amalthea/releases/tag/0.11.0>`_ +- `csi-rclone 0.1.5 <https://github.com/SwissDataScienceCenter/csi-rclone/releases/tag/v0.1.5>`_ +- `renku-data-services 0.4.0 <https://github.com/SwissDataScienceCenter/renku-data-services/releases/tag/v0.4.0>`_ +- `renku-notebooks 1.21.0 <https://github.com/SwissDataScienceCenter/renku-notebooks/releases/tag/1.21.0>`_ +- `renku-ui 3.18.0 <https://github.com/SwissDataScienceCenter/renku-ui/releases/tag/3.18.0>`_ +- `renku-ui 3.18.1 <https://github.com/SwissDataScienceCenter/renku-ui/releases/tag/3.18.1>`_ +- `renku-ui 3.19.0 <https://github.com/SwissDataScienceCenter/renku-ui/releases/tag/3.19.0>`_ + + 0.46.0 ------ @@ -18,7 +96,7 @@ User-Facing Changes - **UI**: Improve feedback when starting sessions on outdated projects (`#2985 <https://github.com/SwissDataScienceCenter/renku-ui/pull/2985>`_). - **CLI**: Allow specifying storage to mount when launching Renkulab sessions from the CLI - (`#3629 <https://github.com/SwissDataScienceCenter/renku-python/pull/3629>_`). + (`#3629 <https://github.com/SwissDataScienceCenter/renku-python/pull/3629>`_). - **KG**: Remove the Free-Text Dataset Search API as improved functionality is offered by the Entities Search. (`#1833 <https://github.com/SwissDataScienceCenter/renku-graph/pull/1833>`_). - **KG**: Add support for specifying ``templateRef`` and ``templateParameters`` on the Project Create API. @@ -30,7 +108,7 @@ User-Facing Changes (`#3687 <https://github.com/SwissDataScienceCenter/renku-python/pull/3687>`_). Internal Changes ----------------- +~~~~~~~~~~~~~~~~ **β¨ Improvements** @@ -50,13 +128,13 @@ Individual Components ------ User-Facing Changes -------------------- +~~~~~~~~~~~~~~~~~~~ - **Core Service**: Removed support for metadata v9 projects in the UI. Migration to v10 is now required. - **Core Service**: Fixed a bug where projects weren't cloned shallowly, leading to large projects not working properly on the platform. Internal Changes ----------------- +~~~~~~~~~~~~~~~~ **π Bug Fixes** @@ -68,27 +146,27 @@ Internal Changes Individual components ~~~~~~~~~~~~~~~~~~~~~ -- `renku-python 2.8.2 <https://github.com/SwissDataScienceCenter/renku-python/releases/tag/2.8.2>`_ +- `renku-python 2.8.2 <https://github.com/SwissDataScienceCenter/renku-python/releases/tag/2.8.2>`_ - `renku-ui 3.17.2 <https://github.com/SwissDataScienceCenter/renku-ui/releases/tag/3.17.2>`_ -- `renku-graph 2.48.2 <https://github.com/SwissDataScienceCenter/renku-graph/releases/tag/2.48.2>`_ +- `renku-graph 2.48.2 <https://github.com/SwissDataScienceCenter/renku-graph/releases/tag/2.48.2>`_ 0.45.1 ------ -This is a bugfix release that updates the helm chart to work with new -prometheus metrics in the renku core service, which was preventing it from +This is a bugfix release that updates the helm chart to work with new +prometheus metrics in the renku core service, which was preventing it from starting properly if metrics were enabled. In addition this release also addresses problems with expiring Gitlab access tokens when sessions are paused and resumed which caused resumed session to not be able to push to Gitlab or also it caused some sessions to not be able to resume after they have been paused. Internal Changes ----------------- +~~~~~~~~~~~~~~~~ **π Bug Fixes** -- **Helm Chart**: update core-service deployment to allow service and rq - metrics to run side-by-side (`#3303 +- **Helm Chart**: update core-service deployment to allow service and rq + metrics to run side-by-side (`#3303 <https://github.com/SwissDataScienceCenter/renku/pull/3303>`_). - **Notebooks**: use a larger /dev/shm folder in sessions (`#1723 <https://github.com/SwissDataScienceCenter/renku-notebooks/issues/1723>`_) diff --git a/acceptance-tests/build.sbt b/acceptance-tests/build.sbt index c2d9473617..27fe293ace 100644 --- a/acceptance-tests/build.sbt +++ b/acceptance-tests/build.sbt @@ -32,7 +32,7 @@ val circeVersion = "0.14.6" libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.4.14" libraryDependencies += "com.github.pureconfig" %% "pureconfig" % "0.17.5" % Test -libraryDependencies += "eu.timepit" %% "refined" % "0.11.0" % Test +libraryDependencies += "eu.timepit" %% "refined" % "0.11.1" % Test libraryDependencies += "io.circe" %% "circe-core" % circeVersion % Test libraryDependencies += "io.circe" %% "circe-literal" % circeVersion % Test libraryDependencies += "io.circe" %% "circe-parser" % circeVersion % Test @@ -43,7 +43,7 @@ libraryDependencies += "org.scalacheck" %% "scalacheck" libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.17" % Test libraryDependencies += "org.scalatestplus" %% "selenium-4-1" % "3.2.12.1" % Test libraryDependencies += "org.seleniumhq.selenium" % "selenium-http-jdk-client" % "4.13.0" % Test -libraryDependencies += "org.seleniumhq.selenium" % "selenium-java" % "4.16.1" % Test +libraryDependencies += "org.seleniumhq.selenium" % "selenium-java" % "4.17.0" % Test libraryDependencies += "org.slf4j" % "slf4j-log4j12" % "2.0.11" % Test libraryDependencies += "org.typelevel" %% "cats-effect" % "3.5.3" % Test libraryDependencies += "org.typelevel" %% "cats-effect-testing-scalatest" % "1.5.0" % Test diff --git a/cypress-tests/cypress/e2e/useSession.cy.ts b/cypress-tests/cypress/e2e/useSession.cy.ts index 1a3f0cff76..815522a43c 100644 --- a/cypress-tests/cypress/e2e/useSession.cy.ts +++ b/cypress-tests/cypress/e2e/useSession.cy.ts @@ -241,37 +241,48 @@ describe("Basic public project functionality", () => { return; } - cy.getDataCy("settings-container") + cy.getDataCy("cloud-storage-section") .find("button") .contains("Add Cloud Storage") .should("be.visible") .click(); - - cy.get(".modal").contains("Add Cloud Storage").should("be.visible"); - - cy.get("label").contains("Name").click(); - cy.get(":focused").type("data_s3"); - - cy.get(".modal") - .contains("For AWS S3 buckets, supported URLs are of the form") + cy.getDataCy("cloud-storage-edit-header") + .contains("Add Cloud Storage") .should("be.visible"); - cy.get("label").contains("Endpoint URL").click(); - cy.get(":focused").type("s3://giab"); - cy.get("label") - .contains("Requires credentials") - .siblings("input") - .click() - .should("not.be.checked"); - - // NOTE: Temporarily removed this from the tests until we enable read-write - // cy.get("label") - // .contains("Read-only") - // .siblings("input") - // .should("be.checked"); + cy.getDataCy("cloud-storage-edit-schema") + .contains("s3") + .should("be.visible") + .click(); + cy.getDataCy("cloud-storage-edit-providers") + .contains("AWS") + .should("be.visible") + .click(); + cy.getDataCy("cloud-storage-edit-next-button").should("be.visible").click(); + + cy.getDataCy("cloud-storage-edit-options").should("be.visible"); + cy.get("#sourcePath").should("have.value", "").type("giab"); + cy.get("#endpoint") + .should("have.value", "") + .type("http://s3.amazonaws.com"); + cy.getDataCy("cloud-storage-edit-next-button").should("be.visible").click(); + + cy.getDataCy("cloud-storage-edit-mount").should("be.visible"); + cy.get("#name").should("have.value", "").type("data_s3"); + cy.get("#mountPoint") + .should("have.value", "external_storage/data_s3") + .type("{selectAll}data_s3"); + cy.get("#readOnly").should("not.be.checked").check(); + + cy.getDataCy("cloud-storage-edit-update-button") + .should("be.visible") + .contains("Add") + .click(); - cy.get("button[type='submit']") - .contains("Add Storage") + cy.getDataCy("cloud-storage-edit-body").contains( + "storage data_s3 has been succesfully added" + ); + cy.getDataCy("cloud-storage-edit-close-button") .should("be.visible") .click(); }); @@ -289,6 +300,8 @@ describe("Basic public project functionality", () => { cy.get(".renku-container .badge.bg-success", { timeout: TIMEOUTS.vlong }) .contains("available") .should("exist"); + cy.getDataCy("cloud-storage-item").contains("data_s3").should("exist"); + cy.get("#cloud-storage-data_s3-active").should("be.checked"); cy.get(".renku-container button.btn-secondary", { timeout: TIMEOUTS.long }) .contains("Start Session") .should("exist") diff --git a/docs/renku-python b/docs/renku-python index c1be009688..af89ce6ac1 160000 --- a/docs/renku-python +++ b/docs/renku-python @@ -1 +1 @@ -Subproject commit c1be009688b6a73bafa90f93896d96f31d438d1e +Subproject commit af89ce6ac12e00544158bacba87df82fdb03585f diff --git a/docs/spelling_wordlist.txt b/docs/spelling_wordlist.txt index ee038afaf3..7ca1b17ace 100644 --- a/docs/spelling_wordlist.txt +++ b/docs/spelling_wordlist.txt @@ -4,6 +4,7 @@ adhoc admin Amalthea analytics +api app aqs args @@ -249,6 +250,7 @@ statuspage stderr stdin stdout +storages subclass Subclass subclasses @@ -301,6 +303,7 @@ unmapped unmerged Unmount unmount +unpause unpushed unschedulable untracked diff --git a/event.json b/event.json deleted file mode 100644 index 446545887f..0000000000 --- a/event.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "action":"workflow_dispatch", - "inputs":{ - "version":"9.99.9" - } -} diff --git a/helm-chart/renku/requirements.yaml b/helm-chart/renku/requirements.yaml index 16d42a37f7..f28bdc16d7 100644 --- a/helm-chart/renku/requirements.yaml +++ b/helm-chart/renku/requirements.yaml @@ -23,8 +23,13 @@ dependencies: alias: jena - name: amalthea repository: "https://swissdatasciencecenter.github.io/helm-charts/" - version: "0.10.0" + version: "0.11.0" - name: dlf-chart repository: "https://swissdatasciencecenter.github.io/datashim/" version: "0.3.9-renku-2" condition: notebooks.cloudstorage.s3.installDatashim +- name: csi-rclone + repository: "https://swissdatasciencecenter.github.io/helm-charts/" + version: "0.1.5" + condition: global.csi-rclone.install + diff --git a/helm-chart/renku/templates/notebooks/statefulset.yaml b/helm-chart/renku/templates/notebooks/statefulset.yaml index b537f101aa..7985c4c0e1 100644 --- a/helm-chart/renku/templates/notebooks/statefulset.yaml +++ b/helm-chart/renku/templates/notebooks/statefulset.yaml @@ -158,14 +158,10 @@ spec: {{- include "certificates.env.python" . | nindent 12 }} - name: NB_SESSIONS__ENFORCE_CPU_LIMITS value: {{ .Values.notebooks.enforceCPULimits | quote }} - - name: NB_CLOUD_STORAGE__S3__ENABLED - value: {{ .Values.notebooks.cloudstorage.s3.enabled | quote }} - - name: NB_CLOUD_STORAGE__S3__READ_ONLY - value: {{ .Values.notebooks.cloudstorage.s3.readOnly | quote }} - - name: NB_CLOUD_STORAGE__AZURE_BLOB__ENABLED - value: {{ .Values.notebooks.cloudstorage.azureBlob.enabled | quote }} - - name: NB_CLOUD_STORAGE__AZURE_BLOB__READ_ONLY - value: {{ .Values.notebooks.cloudstorage.azureBlob.readOnly | quote }} + - name: NB_CLOUD_STORAGE__ENABLED + value: {{ .Values.notebooks.cloudstorage.enabled | quote }} + - name: NB_CLOUD_STORAGE__STORAGE_CLASS + value: {{ .Values.notebooks.cloudstorage.storageClass | default "csi-rclone" | quote }} - name: NB_SESSIONS__TERMINATION_WARNING_DURATION_SECONDS value: {{ .Values.notebooks.sessionAutosave.terminationWarningDurationSeconds | quote }} - name: NB_VERSION diff --git a/helm-chart/renku/templates/notebooks/test.yaml b/helm-chart/renku/templates/notebooks/test.yaml index 0cd7881162..8fa4de31cf 100644 --- a/helm-chart/renku/templates/notebooks/test.yaml +++ b/helm-chart/renku/templates/notebooks/test.yaml @@ -85,14 +85,10 @@ spec: {{- end }} - name: NB_SESSIONS__ENFORCE_CPU_LIMITS value: {{ $.Values.notebooks.enforceCPULimits | quote }} - - name: NB_CLOUD_STORAGE__S3__ENABLED - value: {{ $.Values.notebooks.cloudstorage.s3.enabled | quote }} - - name: NB_CLOUD_STORAGE__S3__READ_ONLY - value: {{ $.Values.notebooks.cloudstorage.s3.readOnly | quote }} - - name: NB_CLOUD_STORAGE__AZURE_BLOB__ENABLED - value: {{ $.Values.notebooks.cloudstorage.azureBlob.enabled | quote }} - - name: NB_CLOUD_STORAGE__AZURE_BLOB__READ_ONLY - value: {{ $.Values.notebooks.cloudstorage.azureBlob.readOnly | quote }} + - name: NB_CLOUD_STORAGE__ENABLED + value: {{ $.Values.notebooks.cloudstorage.enabled | quote }} + - name: NB_CLOUD_STORAGE__STORAGE_CLASS + value: {{ $.Values.notebooks.cloudstorage.storageClass | default "csi-rclone" | quote }} - name: NB_SESSIONS__TERMINATION_WARNING_DURATION_SECONDS value: {{ $.Values.notebooks.sessionAutosave.terminationWarningDurationSeconds | quote }} - name: NB_VERSION diff --git a/helm-chart/renku/values.yaml b/helm-chart/renku/values.yaml index 10e43b6358..61f4d8b985 100644 --- a/helm-chart/renku/values.yaml +++ b/helm-chart/renku/values.yaml @@ -186,6 +186,10 @@ global: ## The contents of the 'password' key is used. ## The secret is not re-generated or modified in any way if it already exists. passwordSecretName: renku-db-common-password + csi-rclone: + # Set to true to install csi-rclone alongside renku + # Make sure to configure the csi-rclone section below correctly in that case. + install: false ## Ingress configuration ## See: https://kubernetes.io/docs/concepts/services-networking/ingress/ ingress: @@ -609,7 +613,7 @@ ui: replicaCount: 1 image: repository: renku/renku-ui - tag: "3.17.3" + tag: "3.19.0" pullPolicy: IfNotPresent ## Optionally specify an array of imagePullSecrets. ## Secrets must be manually created in the namespace. @@ -768,7 +772,7 @@ ui: keepCookies: [] image: repository: renku/renku-ui-server - tag: "3.17.3" + tag: "3.19.0" pullPolicy: IfNotPresent imagePullSecrets: [] nameOverride: "" @@ -837,10 +841,6 @@ amalthea: scope: clusterWide: false deployCrd: true - ## If enabling S3 mounts uncomment the section below - # extraChildResources: - # - name: datasets - # group: com.ie.ibm.hpsys ## Used only if S3 Mounts are enabled dlf-chart: csi-sidecars-rbac: @@ -854,20 +854,24 @@ dlf-chart: enabled: false dataset-operator-chart: enabled: true +csi-rclone: {} + # This section is only relevant if you are installing csi-rclone as part of Renku + ## Name of the csi storage class to use for RClone/Cloudstorage. Should be unique per cluster. + # storageClassName: csi-rclone + # csiNodepluginRclone: + # nodeSelector: {} + # Set tolerations if you have taints on your user session nodes. The csi has to run on every node + # where it is used. + # tolerations: [] + # affinity: {} notebooks: cloudstorage: - ## If enabled this will allow mounting of buckets into user sessions - ## from any S3-compatible storage provider. + ## If enabled this will allow mounting of rclone cloudstorage + enabled: false + ## should match csi-rclone.storageClassName if you use a custom name + # storageClass: csi-rclone s3: - enabled: false installDatashim: false - readOnly: true - ## Azure blob storage mounting support is experimental. The CSI - ## storage driver for mounting azure blob storage has to be already installed - ## in the cluster if enabled. - azureBlob: - enabled: false - readOnly: true # configuration for user session persistent volumes userSessionPersistentVolumes: enabled: true @@ -912,7 +916,7 @@ notebooks: targetCPUUtilizationPercentage: 50 image: repository: renku/renku-notebooks - tag: "1.20.3" + tag: "1.21.0" pullPolicy: IfNotPresent ## Optionally specify an array of imagePullSecrets. ## Secrets must be manually created in the namespace. @@ -1030,15 +1034,15 @@ notebooks: gitRpcServer: image: name: renku/git-rpc-server - tag: "1.20.2" + tag: "1.21.0" gitHttpsProxy: image: name: renku/git-https-proxy - tag: "1.20.2" + tag: "1.21.0" gitClone: image: name: renku/git-clone - tag: "1.20.2" + tag: "1.21.0" service: type: ClusterIP port: 80 @@ -1091,12 +1095,12 @@ notebooks: sessionTypes: ["registered"] image: repository: renku/renku-notebooks-tests - tag: "1.20.2" + tag: "1.21.0" pullPolicy: IfNotPresent k8sWatcher: image: repository: renku/k8s-watcher - tag: "1.20.2" + tag: "1.21.0" pullPolicy: IfNotPresent resources: {} replicaCount: 1 @@ -1109,7 +1113,7 @@ notebooks: enabled: false image: repository: renku/ssh-jump-host - tag: "1.20.2" + tag: "1.21.0" pullPolicy: IfNotPresent resources: {} replicaCount: 1 @@ -1476,7 +1480,7 @@ initDb: dataService: image: repository: renku/renku-data-service - tag: "0.3.0" + tag: "0.4.0" pullPolicy: IfNotPresent service: type: ClusterIP From 7737e6f67d3a00565fadf7e3ccad054063e1e5a8 Mon Sep 17 00:00:00 2001 From: Renku Bot <renku@datascience.ch> Date: Wed, 7 Feb 2024 10:52:13 +0000 Subject: [PATCH 03/17] chore: updating renku-core version to 2.9.2 --- helm-chart/renku/values.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/helm-chart/renku/values.yaml b/helm-chart/renku/values.yaml index 61f4d8b985..47f7c2f666 100644 --- a/helm-chart/renku/values.yaml +++ b/helm-chart/renku/values.yaml @@ -62,7 +62,7 @@ global: fullnameOverride: "" image: repository: renku/renku-core - tag: "v2.9.1" + tag: "v2.9.2" pullPolicy: IfNotPresent uiserver: ## The client secret for the renku-ui client application registered in keycloak. @@ -855,15 +855,15 @@ dlf-chart: dataset-operator-chart: enabled: true csi-rclone: {} - # This section is only relevant if you are installing csi-rclone as part of Renku - ## Name of the csi storage class to use for RClone/Cloudstorage. Should be unique per cluster. - # storageClassName: csi-rclone - # csiNodepluginRclone: - # nodeSelector: {} - # Set tolerations if you have taints on your user session nodes. The csi has to run on every node - # where it is used. - # tolerations: [] - # affinity: {} +# This section is only relevant if you are installing csi-rclone as part of Renku +## Name of the csi storage class to use for RClone/Cloudstorage. Should be unique per cluster. +# storageClassName: csi-rclone +# csiNodepluginRclone: +# nodeSelector: {} +# Set tolerations if you have taints on your user session nodes. The csi has to run on every node +# where it is used. +# tolerations: [] +# affinity: {} notebooks: cloudstorage: ## If enabled this will allow mounting of rclone cloudstorage @@ -1512,4 +1512,4 @@ affinity: {} versions: latest: image: - tag: v2.9.1 + tag: v2.9.2 From bdf6886c3b7f0bd4dcae3cadaa2f475f16337f33 Mon Sep 17 00:00:00 2001 From: Renku Bot <renku@datascience.ch> Date: Wed, 7 Feb 2024 13:00:34 +0000 Subject: [PATCH 04/17] chore: create release release-0.48.x --- CHANGELOG.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 12d757c3f4..d2e5dc9958 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,5 +1,10 @@ .. _changelog: +release-0.48.x +-------------- + + + 0.47.1 ------ From 56cfa018394b56696ed6f41aa48de201d88fdd39 Mon Sep 17 00:00:00 2001 From: Renku Bot <renku@datascience.ch> Date: Wed, 7 Feb 2024 14:25:17 +0000 Subject: [PATCH 05/17] chore: create release 0.49.0 --- CHANGELOG.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 12d757c3f4..995063dcde 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,5 +1,10 @@ .. _changelog: +0.49.0 +------ + + + 0.47.1 ------ From 4f6dc7299c3100cfd595350619a1fccd6d8c45ad Mon Sep 17 00:00:00 2001 From: Lorenzo <lorenzo.cavazzi.tech@gmail.com> Date: Wed, 7 Feb 2024 12:01:00 +0100 Subject: [PATCH 06/17] chore: bump ui version to 3.20.0 --- CHANGELOG.rst | 39 ++++++++++++++++++++++++++++++++++-- helm-chart/renku/values.yaml | 4 ++-- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index d2e5dc9958..eaa81982f6 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,8 +1,42 @@ .. _changelog: -release-0.48.x --------------- +0.48.0 +------ + +User-Facing Changes +~~~~~~~~~~~~~~~~~~~ + +**π New Features** +- π **UI**: Show terms of use and privacy policy in the help section + (`#2954 <https://github.com/SwissDataScienceCenter/renku-ui/pull/2954>`_). + +**β¨ Improvements** + +- π **UI**: Improve appearance of templates on new project page + (`#2999 <https://github.com/SwissDataScienceCenter/renku-ui/pull/2999>`_). +- π **UI**: Unify appearance of project settings alerts + (`#3001 <https://github.com/SwissDataScienceCenter/renku-ui/pull/3001>`_). + +**π Bug Fixes** + +- **UI**: Restore logged in/out notifications + (`#3014 <https://github.com/SwissDataScienceCenter/renku-ui/pull/3014>`_). +- **UI**: Hide button to add storage on deployments not supporting external storages + (`#3001 <https://github.com/SwissDataScienceCenter/renku-ui/pull/3001>`_). + +Internal Changes +~~~~~~~~~~~~~~~~ + +**Improvements** + +- **UI**: Add initial alpha implementation of Renku 1.0 projects + (`#2875 <https://github.com/SwissDataScienceCenter/renku-ui/pull/2875>`_). + +Individual components +~~~~~~~~~~~~~~~~~~~~~~ + +- `renku-ui 3.20.0 <https://github.com/SwissDataScienceCenter/renku-ui/releases/tag/3.20.0>`_ 0.47.1 @@ -11,6 +45,7 @@ release-0.48.x This release only includes changes to the documentation and updates to the acceptance tests. It doesn't bring any new features or bug fixes. + 0.47.0 ------ diff --git a/helm-chart/renku/values.yaml b/helm-chart/renku/values.yaml index 61f4d8b985..bc15ad9450 100644 --- a/helm-chart/renku/values.yaml +++ b/helm-chart/renku/values.yaml @@ -613,7 +613,7 @@ ui: replicaCount: 1 image: repository: renku/renku-ui - tag: "3.19.0" + tag: "3.20.0" pullPolicy: IfNotPresent ## Optionally specify an array of imagePullSecrets. ## Secrets must be manually created in the namespace. @@ -772,7 +772,7 @@ ui: keepCookies: [] image: repository: renku/renku-ui-server - tag: "3.19.0" + tag: "3.20.0" pullPolicy: IfNotPresent imagePullSecrets: [] nameOverride: "" From 782133f99a73ca077025881cbbd1c477b511d3fc Mon Sep 17 00:00:00 2001 From: Lorenzo <lorenzo.cavazzi.tech@gmail.com> Date: Wed, 7 Feb 2024 12:01:57 +0100 Subject: [PATCH 07/17] chore: bump cypress-io/github-action from 5 to 6 --- .github/workflows/renku-dev-test.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/renku-dev-test.yaml b/.github/workflows/renku-dev-test.yaml index 9f922efd99..d02c960016 100644 --- a/.github/workflows/renku-dev-test.yaml +++ b/.github/workflows/renku-dev-test.yaml @@ -23,7 +23,7 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v4.1.1 - - uses: cypress-io/github-action@v5 + - uses: cypress-io/github-action@v6 id: cypress env: TEST_EMAIL: renku@datascience.ch From 30ca4b376196750e2563d7e5c13cd9094e98c588 Mon Sep 17 00:00:00 2001 From: Chandrasekhar Ramakrishnan <ciyer@users.noreply.github.com> Date: Mon, 29 Jan 2024 11:52:43 +0100 Subject: [PATCH 08/17] build: make configuration of privacy policy more flexible See https://github.com/SwissDataScienceCenter/renku-ui/issues/2954 --- docs/how-to-guides/admin/privacycookie.rst | 24 ++++++----- helm-chart/renku/templates/NOTES.txt | 2 +- .../templates/ui/ui-client-configmap.yaml | 20 ++++++++- .../ui/ui-client-deployment-template.yaml | 17 +++++--- helm-chart/renku/values.yaml | 5 ++- helm-chart/values.yaml.changelog.md | 42 ++++++++++++------- 6 files changed, 73 insertions(+), 37 deletions(-) diff --git a/docs/how-to-guides/admin/privacycookie.rst b/docs/how-to-guides/admin/privacycookie.rst index d71e64c72c..6c9c904090 100644 --- a/docs/how-to-guides/admin/privacycookie.rst +++ b/docs/how-to-guides/admin/privacycookie.rst @@ -3,22 +3,24 @@ User interface configuration options ------------------------------------ -Privacy page -~~~~~~~~~~~~ +Privacy page and Terms of Use +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The UI has a privacy page with a completely configurable content, suited for showing -any policy/terms related information, like the `Privacy Policy Statement` or the -`Terms of Use`. +The UI can be configured to show a `Privacy Policy` and `Terms of Use`. These are +displayed under the `Help` section of the UI. -The content is read from a ``ConfigMap``. You need to configure the values in -``ui.privacy.page`` to enable the feature and set the reference ConfigMap name and key. -Both ``ui.privacy.enabled`` and ``ui.privacy.page.enabled`` need to be ``true`` for -enabling the privacy page. +For each of these, the content is read from a ``ConfigMap``. You need to configure +the values in ``ui.client.privacy.page`` to enable the feature and set the reference +ConfigMap name and key. If ``ui.client.privacy.page.enabled`` is ``true``, then the privacy +policy and terms of use will be shown in the UI, with content taken from the ConfigMap +specified by ``ui.client.privacy.page.configMapName`` at the key +``ui.client.privacy.page.configMapPolicyKey`` for the privacy policy and +``ui.client.privacy.page.configMapTermsKey`` for the terms of use. .. note:: If you don't set the ConfigMap name and key, - `a sample <https://github.com/SwissDataScienceCenter/renku-ui/blob/master/helm-chart/renku-ui/templates/configmap.yaml>`_ + `a sample <https://github.com/SwissDataScienceCenter/renku/blob/master/helm-chart/renku/templates/ui/ui-client-configmap.yaml>`_ will be used instead. You can start from it as a template to create your customized ConfigMap. The `Markdown syntax <https://en.wikipedia.org/wiki/Markdown>`_ is fully supported for the @@ -33,7 +35,7 @@ for anonymous users (i.e. without an account or not currently logged in). To com international laws, it's strongly advised to explicitly require consent to the user for storing these data and using cookies. -To activate this feature, please set ``ui.privacy.enabled: true``. We have already configured a +To activate this feature, please set ``ui.privacy.banner.enabled: true``. We have already configured a default cookie banner to inform the users about the aforementioned requirements and points to point them to the privacy page for further details. diff --git a/helm-chart/renku/templates/NOTES.txt b/helm-chart/renku/templates/NOTES.txt index c1ea9777d7..d0ab572768 100644 --- a/helm-chart/renku/templates/NOTES.txt +++ b/helm-chart/renku/templates/NOTES.txt @@ -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.client.privacy.enabled -}} +{{ if or .Values.ui.client.privacy.banner.enabled .Values.ui.client.privacy.page.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 }} diff --git a/helm-chart/renku/templates/ui/ui-client-configmap.yaml b/helm-chart/renku/templates/ui/ui-client-configmap.yaml index d81939eded..75c0e3cfcd 100644 --- a/helm-chart/renku/templates/ui/ui-client-configmap.yaml +++ b/helm-chart/renku/templates/ui/ui-client-configmap.yaml @@ -1,7 +1,7 @@ apiVersion: v1 kind: ConfigMap metadata: - name: {{ template "ui.fullname" . }}-privacy-sample + name: {{ template "renku.fullname" . }}-privacy-sample labels: app: ui chart: {{ template "renku.chart" . }} @@ -17,7 +17,7 @@ data: ## Configure the Privacy Page You should customize the privacy statement by cloning the sample ConfigMap ``*-sample-privacy`` and adjust the content. Any markdown formatted text works. Feel free to change the ConfigMap key and to pick any name, - be sure to properly configure the values ``ui.privacy.page`` before upgrading your RenkuLab deployment. + be sure to properly configure the values ``ui.client.privacy.page`` before upgrading your RenkuLab deployment. If the mapping is enabled but no text is provided (empty content, wrong ``privacy.page`` values, missing ConfigMap, etc.), the links in the navigation bars will be hidden and users manually accessing the privacy page will get a warning. @@ -25,3 +25,19 @@ data: ## Apply the changes If you edit the ConfigMap content and you don't upgrade the deployment from helm, keep in mind that the ui pod needs to be manually re-deployed in order to apply the changes to the privacy page. + terms: | + # Terms of Use + The content of this page is only a template. + ## Information + If you are reading this message, the Terms of Use page content has not been updated for this RenkuLab deployment. + The following content is intended to be read by a RenkuLab admin. + ## Configure the Terms of Use + You should customize the terms of use by cloning the sample ConfigMap ``*-sample-privacy`` and adjust the + content. Any markdown formatted text works. Feel free to change the ConfigMap key and to pick any name, + be sure to properly configure the values ``ui.client.privacy.page`` before upgrading your RenkuLab deployment. + If the mapping is enabled but no text is provided (empty content, wrong ``privacy.page`` values, missing + ConfigMap, etc.), the links in the navigation bars will be hidden and users manually accessing the terms page + will get a warning. + ## Apply the changes + If you edit the ConfigMap content and you don't upgrade the deployment from helm, keep in mind that the + ui pod needs to be manually re-deployed in order to apply the changes to the terms page. diff --git a/helm-chart/renku/templates/ui/ui-client-deployment-template.yaml b/helm-chart/renku/templates/ui/ui-client-deployment-template.yaml index 0d554fc275..ae58ef7a41 100644 --- a/helm-chart/renku/templates/ui/ui-client-deployment-template.yaml +++ b/helm-chart/renku/templates/ui/ui-client-deployment-template.yaml @@ -25,14 +25,17 @@ spec: app: ui release: {{ .Release.Name }} spec: - {{- if and .Values.ui.client.privacy.enabled .Values.ui.client.privacy.page.enabled }} + {{- if .Values.ui.client.privacy.page.enabled }} volumes: - name: privacy configMap: name: {{ .Values.ui.client.privacy.page.configMapName | default (printf "%s-privacy-sample" (include "renku.fullname" .)) | quote }} items: - - key: {{ .Values.ui.client.privacy.page.configMapKey | default (printf "privacy_statement") | quote }} + - key: {{ .Values.ui.client.privacy.page.configMapPolicyKey | default (printf "privacy_statement") | quote }} path: statement.md + - key: {{ .Values.ui.client.privacy.page.configMapTermsKey | default (printf "terms") | quote }} + path: terms.md + {{- end }} automountServiceAccountToken: {{ .Values.global.debug }} containers: @@ -43,7 +46,7 @@ spec: - name: http containerPort: 8080 protocol: TCP - {{- if and .Values.ui.client.privacy.enabled .Values.ui.client.privacy.page.enabled }} + {{- if .Values.ui.client.privacy.page.enabled }} volumeMounts: - mountPath: /config-privacy name: privacy @@ -75,9 +78,11 @@ spec: {{- end }} - name: ANONYMOUS_SESSIONS value: {{ .Values.global.anonymousSessions.enabled | default (printf "false") | quote }} - - name: PRIVACY_ENABLED - value: {{ .Values.ui.client.privacy.enabled | quote }} - {{- if .Values.ui.client.privacy.enabled }} + - name: PRIVACY_BANNER_ENABLED + value: {{ .Values.ui.client.privacy.banner.enabled | quote }} + - name: TERMS_PAGES_ENABLED + value: {{ .Values.ui.client.privacy.page.enabled | quote }} + {{- if .Values.ui.client.privacy.banner.enabled }} - name: PRIVACY_BANNER_CONTENT value: {{ .Values.ui.client.privacy.banner.content | default (printf "") | b64enc | quote }} - name: PRIVACY_BANNER_LAYOUT diff --git a/helm-chart/renku/values.yaml b/helm-chart/renku/values.yaml index bc15ad9450..e7ed993f76 100644 --- a/helm-chart/renku/values.yaml +++ b/helm-chart/renku/values.yaml @@ -696,12 +696,13 @@ ui: # privacy.page.configMapName value. As a reference, you can use the sample configMap generated when # enabling the feature. privacy: - enabled: false page: enabled: false #configMapName: privacy-page - #configMapKey: privacy_statement + #configMapPolicyKey: privacy_statement + #configMapTermsKey: terms banner: + enabled: false content: | This website requires cookies in order to ensure basic functionality. By clicking or navigating the site, you consent to the use of cookies in accordance with diff --git a/helm-chart/values.yaml.changelog.md b/helm-chart/values.yaml.changelog.md index 1aa578b668..c4b2e1b961 100644 --- a/helm-chart/values.yaml.changelog.md +++ b/helm-chart/values.yaml.changelog.md @@ -5,23 +5,35 @@ For changes that require manual steps other than changing values, please check o Please follow this convention when adding a new row * `<type: NEW|EDIT|DELETE> - *<resource name>*: <details>` +## Upgrading to Renku 0.48.0 + +The handling of privacy policy and terms of service content has been slightly changed to make +it more flexible. + +* DELETE `ui.privacy.enabled` has been removed to make the privacy policy and cookie banner configurable independently. +* NEW `ui.privacy.banner.enabled` allows turning on the cookie banner (defaults to false). +* DELETE `ui.client.privacy.page.configMapKey` which has been renamed to `ui.client.privacy.page.configMapPolicyKey`. +* NEW `ui.client.privacy.page.configMapPolicyKey` the key in the ConfigMap where the content for the privacy policy is located. +* NEW `ui.client.privacy.page.configMapTermsKey` the key in the ConfigMap where the content for the terms of use is located. + + ## Upgrading to Renku 0.47.0 -We completely overhauled how mounting cloud storage in sessions works, relying on a new CSI driver based on RClone -which has to be installed in the cluster for things to work. Either install it as part of Renku using the flag -mentioned below or install the csi-rclone chart manually and set the correct storage class in the values for the +We completely overhauled how mounting cloud storage in sessions works, relying on a new CSI driver based on RClone +which has to be installed in the cluster for things to work. Either install it as part of Renku using the flag +mentioned below or install the csi-rclone chart manually and set the correct storage class in the values for the notebooks service. * NEW `noteboks.cloudstorage.enabled` - set to `true` to enable mounting cloud storage in sessions. * DELETE `notebooks.cloudstorage.s3.enabed` - superseeded by previous property. -* NEW `notebooks.cloudstorage.storageClass` - the storage class for the CSI Rclone chart, needed for new cloudstorage +* NEW `notebooks.cloudstorage.storageClass` - the storage class for the CSI Rclone chart, needed for new cloudstorage to work. The default `csi-rclone` should be fine unless already in use. -* NEW `global.csi-rclone.install` - if `true` installs the csi-rclone chart alongside Renku. The chart is needed for +* NEW `global.csi-rclone.install` - if `true` installs the csi-rclone chart alongside Renku. The chart is needed for cloud storage in sessions to work. -* NEW `csi-rclone.storageClassName` - the storage class name the CSI drivers uses, should match what is configured in +* NEW `csi-rclone.storageClassName` - the storage class name the CSI drivers uses, should match what is configured in the `storageClass` property mentioned above. -* NEW `csi-rclone.csiNodePlugin.tolerations` - Tolerations for the node plugin part of the CSI driver. Need to be set - in a way that allows it to be scheduled on user session nodes. By default this would mean `key=renku.io/dedicated`, +* NEW `csi-rclone.csiNodePlugin.tolerations` - Tolerations for the node plugin part of the CSI driver. Need to be set + in a way that allows it to be scheduled on user session nodes. By default this would mean `key=renku.io/dedicated`, `operator=Equal`, `value=user` and `effect=NoSchedule` @@ -82,7 +94,7 @@ Amalthea will simply use your default Kubernetes scheduler. * DELETE `amalthea.scheduler.image` - deprecated will be ignored if provided * DELETE `amalthea.scheduler.enable` - deprecated will be ignored if provided * DELETE `amalthea.scheduler.priorities` - deprecated will be ignored if provided -* NEW `amalthea.scheduler.packing` - can be used to enable a preset scheduler that will try to pack sessions on the smallest number of nodes and favor the most used nodes +* NEW `amalthea.scheduler.packing` - can be used to enable a preset scheduler that will try to pack sessions on the smallest number of nodes and favor the most used nodes * NEW `amalthea.scheduler.custom` - can be used to add any custom scheduler for Amalthea, admins just have to provide the scheduler name * EDIT `crc` - the field has been renamed to `dataService`, all child fields and functionality remains the same * NEW `global.gitlab.url` has been added and needs to be specified, this will be the single place where the Gitlab URL will be specified in future releases we will deprecated all the other Gitlab URL fields in the values file. @@ -105,14 +117,14 @@ configuration is possible from its `values.yaml` file. * EDIT - `notebooks.amalthea.*` moved to `amalthea.*` * EDIT - `notebooks.dlf-chart.*` moved to `dlf-chart.*` -In addition going forward we will follow a much stricter versioning scheme that will distinguish changes to +In addition going forward we will follow a much stricter versioning scheme that will distinguish changes to the Renku Helm chart as opposed to changes to the application. Notably: - Patch changes (i.e. `0.50.1` -> `0.50.2`) indicate that there are NO changes in the Helm chart and that only appplication level bug fixes are present in the new release. - Minor version changes (i.e. `0.50.2` -> `0.51.0`) indicate that there are NO changes in the Helm chart and that only application level new features and/or application level breaking changes are present. -- Major version changes (i.e. `0.50.0` -> `1.0.0`) will be reserved for changes in the Helm chart, either when the -values file changes or when the Helm templates change. +- Major version changes (i.e. `0.50.0` -> `1.0.0`) will be reserved for changes in the Helm chart, either when the +values file changes or when the Helm templates change. ## Upgrading to Renku 0.37.0 * EDIT - `notebooks.culling.idleThresholdSeconds` in the notebooks' values file was renamed to @@ -261,7 +273,7 @@ redis: sentinel: true existingSecret: redis-secret existingSecretPasswordKey: redis-password - + commonConfiguration: |- appendonly no save "" @@ -269,10 +281,10 @@ redis: replica: replicaCount: 3 resources: - limits: + limits: cpu: 250m memory: 256Mi - requests: + requests: cpu: 250m memory: 256Mi updateStrategy: From a0ca8534b13b5d52add559c582a672b275de15d1 Mon Sep 17 00:00:00 2001 From: Flora Thiebaut <flora.thiebaut@sdsc.ethz.ch> Date: Thu, 8 Feb 2024 13:14:52 +0100 Subject: [PATCH 09/17] build: update to latest renku/keycloak-theme --- helm-chart/renku/values.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/helm-chart/renku/values.yaml b/helm-chart/renku/values.yaml index e7ed993f76..910d81c5dd 100644 --- a/helm-chart/renku/values.yaml +++ b/helm-chart/renku/values.yaml @@ -295,7 +295,7 @@ keycloakx: enabled: false extraInitContainers: | - name: theme-provider - image: renku/keycloak-theme:4.1.3 + image: renku/keycloak-theme:4.1.5 imagePullPolicy: IfNotPresent command: - sh @@ -858,10 +858,10 @@ dlf-chart: csi-rclone: {} # This section is only relevant if you are installing csi-rclone as part of Renku ## Name of the csi storage class to use for RClone/Cloudstorage. Should be unique per cluster. - # storageClassName: csi-rclone + # storageClassName: csi-rclone # csiNodepluginRclone: # nodeSelector: {} - # Set tolerations if you have taints on your user session nodes. The csi has to run on every node + # Set tolerations if you have taints on your user session nodes. The csi has to run on every node # where it is used. # tolerations: [] # affinity: {} From db5420dcd082a45e42d19e9326262dbc992da25b Mon Sep 17 00:00:00 2001 From: Flora Thiebaut <flora.thiebaut@sdsc.ethz.ch> Date: Fri, 9 Feb 2024 16:40:06 +0100 Subject: [PATCH 10/17] fix(cypress): fix the checkWorkflows test (#3488) --- cypress-tests/cypress/e2e/checkWorkflows.cy.ts | 3 ++- cypress-tests/cypress/support/commands/general.ts | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/cypress-tests/cypress/e2e/checkWorkflows.cy.ts b/cypress-tests/cypress/e2e/checkWorkflows.cy.ts index da6e0670b4..d649064d2f 100644 --- a/cypress-tests/cypress/e2e/checkWorkflows.cy.ts +++ b/cypress-tests/cypress/e2e/checkWorkflows.cy.ts @@ -103,7 +103,8 @@ describe("Workflows pages", () => { .contains("span", "m") .should("be.visible"); cy.getDataCy("workflow-details") - .get("a#icon-link-5") + .contains("tr", "Default value") + .find("a") .should("be.visible") .click(); cy.get("#file-card-header") diff --git a/cypress-tests/cypress/support/commands/general.ts b/cypress-tests/cypress/support/commands/general.ts index 5fe0f25abb..9876970640 100644 --- a/cypress-tests/cypress/support/commands/general.ts +++ b/cypress-tests/cypress/support/commands/general.ts @@ -19,7 +19,7 @@ export const getIframe = (selector: string) => { .then(cy.wrap); }; -function getDataCy(value: string, exist: true) { +function getDataCy(value: string, exist?: boolean) { if (exist) return cy.get(`[data-cy=${value}]`).should("exist"); return cy.get(`[data-cy=${value}]`); } @@ -33,8 +33,8 @@ declare global { // eslint-disable-next-line @typescript-eslint/no-namespace namespace Cypress { interface Chainable { - getDataCy(value: string, exist?: boolean); - getIframe(selector: string): Chainable<unknown>; + getDataCy: typeof getDataCy; + getIframe: typeof getIframe; } } } From a213c2513045a3d7b21ae9aff833804a2c5f19e5 Mon Sep 17 00:00:00 2001 From: Ralf Grubenmann <ralf.grubenmann@sdsc.ethz.ch> Date: Mon, 12 Feb 2024 10:13:42 +0100 Subject: [PATCH 11/17] chore: bump csi-rclone (#3492) --- helm-chart/renku/requirements.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helm-chart/renku/requirements.yaml b/helm-chart/renku/requirements.yaml index f28bdc16d7..6b13e25c57 100644 --- a/helm-chart/renku/requirements.yaml +++ b/helm-chart/renku/requirements.yaml @@ -30,6 +30,6 @@ dependencies: condition: notebooks.cloudstorage.s3.installDatashim - name: csi-rclone repository: "https://swissdatasciencecenter.github.io/helm-charts/" - version: "0.1.5" + version: "0.1.6" condition: global.csi-rclone.install From 8789034eb8f0f065e8d63a5865ffb276ea229b6a Mon Sep 17 00:00:00 2001 From: RenkuBot <53332360+RenkuBot@users.noreply.github.com> Date: Mon, 12 Feb 2024 14:38:55 +0100 Subject: [PATCH 12/17] Update from auto-update/renku-ui-3.20.1 (#3485) Update UI to 3.20.1 (bug fixes). --- CHANGELOG.rst | 4 ++++ helm-chart/renku/values.yaml | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index eaa81982f6..bfe0462263 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -24,6 +24,9 @@ User-Facing Changes (`#3014 <https://github.com/SwissDataScienceCenter/renku-ui/pull/3014>`_). - **UI**: Hide button to add storage on deployments not supporting external storages (`#3001 <https://github.com/SwissDataScienceCenter/renku-ui/pull/3001>`_). +- **UI**: Fix landing page parallax background (`#3010 <https://github.com/SwissDataScienceCenter/renku-ui/pull/3010>`_). +- **UI**: Fix search bar styles (`#3019 <https://github.com/SwissDataScienceCenter/renku-ui/pull/3019>`_). +- **UI**: Handle ``jsonrpc`` improper redirects (`#3017 <https://github.com/SwissDataScienceCenter/renku-ui/pull/3017>`_, `#2966 <https://github.com/SwissDataScienceCenter/renku-ui/issues/2966>`_). Internal Changes ~~~~~~~~~~~~~~~~ @@ -36,6 +39,7 @@ Internal Changes Individual components ~~~~~~~~~~~~~~~~~~~~~~ +- `renku-ui 3.20.1 <https://github.com/SwissDataScienceCenter/renku-ui/releases/tag/3.20.1>`_ - `renku-ui 3.20.0 <https://github.com/SwissDataScienceCenter/renku-ui/releases/tag/3.20.0>`_ diff --git a/helm-chart/renku/values.yaml b/helm-chart/renku/values.yaml index 910d81c5dd..f5f5e750b1 100644 --- a/helm-chart/renku/values.yaml +++ b/helm-chart/renku/values.yaml @@ -613,7 +613,7 @@ ui: replicaCount: 1 image: repository: renku/renku-ui - tag: "3.20.0" + tag: "3.20.1" pullPolicy: IfNotPresent ## Optionally specify an array of imagePullSecrets. ## Secrets must be manually created in the namespace. @@ -773,7 +773,7 @@ ui: keepCookies: [] image: repository: renku/renku-ui-server - tag: "3.20.0" + tag: "3.20.1" pullPolicy: IfNotPresent imagePullSecrets: [] nameOverride: "" From 6581f6185cfae846bc6409096268170a839297ca Mon Sep 17 00:00:00 2001 From: Jakub Chrobasik <jakub.chrobasik@gmail.com> Date: Mon, 19 Feb 2024 09:45:13 +0100 Subject: [PATCH 13/17] chore: logback update to 1.5.0 (#3500) --- acceptance-tests/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/acceptance-tests/build.sbt b/acceptance-tests/build.sbt index 27fe293ace..47c9967359 100644 --- a/acceptance-tests/build.sbt +++ b/acceptance-tests/build.sbt @@ -30,7 +30,7 @@ publishTo := Some(Resolver.file("Unused transient repository", file("target/unus val circeVersion = "0.14.6" -libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.4.14" +libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.5.0" libraryDependencies += "com.github.pureconfig" %% "pureconfig" % "0.17.5" % Test libraryDependencies += "eu.timepit" %% "refined" % "0.11.1" % Test libraryDependencies += "io.circe" %% "circe-core" % circeVersion % Test From e69ab291491f73a6ccc17f0b8e4769a337c8c6b7 Mon Sep 17 00:00:00 2001 From: Jakub Chrobasik <jakub.chrobasik@gmail.com> Date: Tue, 20 Feb 2024 13:39:18 +0100 Subject: [PATCH 14/17] chore: scalafmt and selenium-java upgrades (#3504) * chore: scalafmt upgraded to 3.8.0 * chore: selenium-java upgraded to 4.18.1 --- acceptance-tests/.scalafmt.conf | 2 +- acceptance-tests/build.sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/acceptance-tests/.scalafmt.conf b/acceptance-tests/.scalafmt.conf index d37a95795b..0e06410bac 100644 --- a/acceptance-tests/.scalafmt.conf +++ b/acceptance-tests/.scalafmt.conf @@ -1,4 +1,4 @@ -version = "3.7.17" +version = "3.8.0" runner.dialect = "scala213" diff --git a/acceptance-tests/build.sbt b/acceptance-tests/build.sbt index 47c9967359..d64af5e984 100644 --- a/acceptance-tests/build.sbt +++ b/acceptance-tests/build.sbt @@ -43,7 +43,7 @@ libraryDependencies += "org.scalacheck" %% "scalacheck" libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.17" % Test libraryDependencies += "org.scalatestplus" %% "selenium-4-1" % "3.2.12.1" % Test libraryDependencies += "org.seleniumhq.selenium" % "selenium-http-jdk-client" % "4.13.0" % Test -libraryDependencies += "org.seleniumhq.selenium" % "selenium-java" % "4.17.0" % Test +libraryDependencies += "org.seleniumhq.selenium" % "selenium-java" % "4.18.1" % Test libraryDependencies += "org.slf4j" % "slf4j-log4j12" % "2.0.11" % Test libraryDependencies += "org.typelevel" %% "cats-effect" % "3.5.3" % Test libraryDependencies += "org.typelevel" %% "cats-effect-testing-scalatest" % "1.5.0" % Test From 8079be1e72eaaf9b5afe2c1ab03ca06972f6c897 Mon Sep 17 00:00:00 2001 From: Renku Bot <renku@datascience.ch> Date: Wed, 7 Feb 2024 14:25:17 +0000 Subject: [PATCH 15/17] chore: create release 0.49.0 --- CHANGELOG.rst | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 3c37c9b94e..3aeab33d30 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,5 +1,8 @@ .. _changelog: +0.49.0 +------ + 0.48.1 ------ @@ -51,7 +54,6 @@ Individual components - `renku-ui 3.20.1 <https://github.com/SwissDataScienceCenter/renku-ui/releases/tag/3.20.1>`_ - `renku-ui 3.20.0 <https://github.com/SwissDataScienceCenter/renku-ui/releases/tag/3.20.0>`_ - 0.47.1 ------ @@ -65,11 +67,11 @@ It doesn't bring any new features or bug fixes. This release expands Renku's cloud storage functionality in two key ways: First, mounted storages are now read **and write**, so you can use mounted storage as an active workspace for your data in a RenkuLab session. Second, we have expanded the cloud storage services you can integrate with RenkuLab. You can now -mount not only S3 buckets, but also WebDAV-based storages and Azure Blobs. - +mount not only S3 buckets, but also WebDAV-based storages and Azure Blobs. + If you use SSH sessions via the CLI, you can use cloud storage there too! Configure cloud storage for your project on RenkuLab.io, and those storages will be mounted in your remote session. Support for cloud -storage in local Renku sessions is still on our roadmap. +storage in local Renku sessions is still on our roadmap. This release also adds the ability to change which resource class your session uses when you unpause the session, in case the original resource class is now full. @@ -200,15 +202,15 @@ Internal Changes Individual components ~~~~~~~~~~~~~~~~~~~~~ -- `renku-python 2.8.2 <https://github.com/SwissDataScienceCenter/renku-python/releases/tag/2.8.2>`_ +- `renku-python 2.8.2 <https://github.com/SwissDataScienceCenter/renku-python/releases/tag/2.8.2>`_ - `renku-ui 3.17.2 <https://github.com/SwissDataScienceCenter/renku-ui/releases/tag/3.17.2>`_ -- `renku-graph 2.48.2 <https://github.com/SwissDataScienceCenter/renku-graph/releases/tag/2.48.2>`_ +- `renku-graph 2.48.2 <https://github.com/SwissDataScienceCenter/renku-graph/releases/tag/2.48.2>`_ 0.45.1 ------ -This is a bugfix release that updates the helm chart to work with new -prometheus metrics in the renku core service, which was preventing it from +This is a bugfix release that updates the helm chart to work with new +prometheus metrics in the renku core service, which was preventing it from starting properly if metrics were enabled. In addition this release also addresses problems with expiring Gitlab access tokens when sessions are paused and resumed which caused resumed session to not be able to push to Gitlab @@ -219,8 +221,8 @@ Internal Changes **π Bug Fixes** -- **Helm Chart**: update core-service deployment to allow service and rq - metrics to run side-by-side (`#3303 +- **Helm Chart**: update core-service deployment to allow service and rq + metrics to run side-by-side (`#3303 <https://github.com/SwissDataScienceCenter/renku/pull/3303>`_). - **Notebooks**: use a larger /dev/shm folder in sessions (`#1723 <https://github.com/SwissDataScienceCenter/renku-notebooks/issues/1723>`_) From 89811a86bdf6f912c422cc50732b0ea8e449f31d Mon Sep 17 00:00:00 2001 From: Jakub Chrobasik <jakub.chrobasik@gmail.com> Date: Mon, 19 Feb 2024 09:45:13 +0100 Subject: [PATCH 16/17] chore: logback update to 1.5.0 (#3500) --- acceptance-tests/build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/acceptance-tests/build.sbt b/acceptance-tests/build.sbt index a3d00290a8..6781703f21 100644 --- a/acceptance-tests/build.sbt +++ b/acceptance-tests/build.sbt @@ -30,7 +30,7 @@ publishTo := Some(Resolver.file("Unused transient repository", file("target/unus val circeVersion = "0.14.6" -libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.4.14" +libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.5.0" libraryDependencies += "com.github.pureconfig" %% "pureconfig" % "0.17.5" % Test libraryDependencies += "eu.timepit" %% "refined" % "0.11.1" % Test libraryDependencies += "io.circe" %% "circe-core" % circeVersion % Test From 924369bfeaf04af002a96e632e9db7ee72454c54 Mon Sep 17 00:00:00 2001 From: Jakub Chrobasik <jakub.chrobasik@gmail.com> Date: Tue, 20 Feb 2024 13:39:18 +0100 Subject: [PATCH 17/17] chore: scalafmt and selenium-java upgrades (#3504) * chore: scalafmt upgraded to 3.8.0 * chore: selenium-java upgraded to 4.18.1 --- acceptance-tests/.scalafmt.conf | 2 +- acceptance-tests/build.sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/acceptance-tests/.scalafmt.conf b/acceptance-tests/.scalafmt.conf index d37a95795b..0e06410bac 100644 --- a/acceptance-tests/.scalafmt.conf +++ b/acceptance-tests/.scalafmt.conf @@ -1,4 +1,4 @@ -version = "3.7.17" +version = "3.8.0" runner.dialect = "scala213" diff --git a/acceptance-tests/build.sbt b/acceptance-tests/build.sbt index 6781703f21..096bff56fc 100644 --- a/acceptance-tests/build.sbt +++ b/acceptance-tests/build.sbt @@ -43,7 +43,7 @@ libraryDependencies += "org.scalacheck" %% "scalacheck" libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.18" % Test libraryDependencies += "org.scalatestplus" %% "selenium-4-1" % "3.2.12.1" % Test libraryDependencies += "org.seleniumhq.selenium" % "selenium-http-jdk-client" % "4.13.0" % Test -libraryDependencies += "org.seleniumhq.selenium" % "selenium-java" % "4.17.0" % Test +libraryDependencies += "org.seleniumhq.selenium" % "selenium-java" % "4.18.1" % Test libraryDependencies += "org.slf4j" % "slf4j-log4j12" % "2.0.11" % Test libraryDependencies += "org.typelevel" %% "cats-effect" % "3.5.3" % Test libraryDependencies += "org.typelevel" %% "cats-effect-testing-scalatest" % "1.5.0" % Test