diff --git a/cypress-tests/cypress/e2e/v2/sessionLaunchers.cy.ts b/cypress-tests/cypress/e2e/v2/sessionLaunchers.cy.ts
index 4e625f19cd..0126cf227c 100644
--- a/cypress-tests/cypress/e2e/v2/sessionLaunchers.cy.ts
+++ b/cypress-tests/cypress/e2e/v2/sessionLaunchers.cy.ts
@@ -103,7 +103,7 @@ describe("Session Launchers", () => {
sessionMountDirectory,
);
cy.getDataCy("session-view-port").contains(sessionPort);
- cy.getDataCy("session-view-title").should("be.visible");
+ cy.getDataCy("session-launcher-title").should("be.visible");
cy.getDataCy("session-view-uid").contains(sessionUid);
cy.getDataCy("session-view-working-directory").contains(
sessionWorkingDirectory,
@@ -149,7 +149,7 @@ describe("Session Launchers", () => {
.click();
// Delete session launcher from the properties view
- cy.getDataCy("session-view-title").should("be.visible");
+ cy.getDataCy("session-launcher-title").should("be.visible");
cy.getDataCy("session-launcher-menu-dropdown").click();
cy.getDataCy("session-view-menu-delete").click();
cy.getDataCy("delete-session-launcher-title").should("be.visible");
@@ -248,7 +248,7 @@ describe("Session Launchers", () => {
.click();
// Open edit resource class dialog
- cy.getDataCy("session-view-title").should("be.visible");
+ cy.getDataCy("session-launcher-title").should("be.visible");
cy.getDataCy("session-view-resource-class-edit-button").click();
// Wait for the dialog to open
diff --git a/docs/docs/10-users/95-knowledge-base/03-writing-documentation-in-renku.md b/docs/docs/10-users/95-knowledge-base/03-writing-documentation-in-renku.md
index b1af8fea1b..7aee75b215 100644
--- a/docs/docs/10-users/95-knowledge-base/03-writing-documentation-in-renku.md
+++ b/docs/docs/10-users/95-knowledge-base/03-writing-documentation-in-renku.md
@@ -23,4 +23,109 @@ A paragraph is one or more lines of text followed by at least one blank line.
# Links
-You can create an inline link by wrapping the link display text in brackets `[ ]`, followed by the linked URL in parentheses `( )` with no space in between.
+You can create an inline link by wrapping the link display text in brackets `[ ]`, followed by the linked URL in parentheses `( )` with no space in between.
+
+```markdown
+[text](link.com)
+```
+
+# Images
+
+You can add images to your documentation by referencing image links. These work the same as links, plus an `!` at the front.
+
+```markdown
+
+```
+
+If you need to set specific sizes, you can use an HTML tag and take advantage of the `width` and `height` attributes as in the following example:
+
+```html
+
+```
+
+Uploading images is not supported.
+
+ :::info
+
+ **Tip:** Are your images not rendering? Try using the direct image URL, which you can get by doing "Open image in a new tab” and copying the resulting URL.
+
+ :::
+
+# Math Expressions
+
+LaTeX math expressions can be specified in one of two ways:
+
+using `$` to delimit the expression:
+
+```markdown
+$\sqrt 2$
+```
+
+or declaring a `math` block:
+
+````markdown
+```math
+\zeta_t \sim N(0,\Sigma_z(t))
+```
+````
+
+# Mermaid Diagrams
+
+Declaring a “mermaid” block allows input of [Mermaid](https://mermaid.js.org/intro/) diagrams in documentation, for example:
+
+````
+```mermaid
+graph TD;
+ A-->B;
+ A-->C;
+ B-->D;
+ C-->D;
+```
+````
+
+```mermaid
+graph TD;
+ A-->B;
+ A-->C;
+ B-->D;
+ C-->D;
+```
+
+````
+```mermaid
+sequenceDiagram
+ participant Alice
+ participant Bob
+ Alice->>John: Hello John, how are you?
+ loop HealthCheck
+ John->>John: Fight against hypochondria
+ end
+ Note right of John: Rational thoughts
prevail!
+ John-->>Alice: Great!
+ John->>Bob: How about you?
+ Bob-->>John: Jolly good!
+```
+````
+
+```mermaid
+sequenceDiagram
+ participant Alice
+ participant Bob
+ Alice->>John: Hello John, how are you?
+ loop HealthCheck
+ John->>John: Fight against hypochondria
+ end
+ Note right of John: Rational thoughts
prevail!
+ John-->>Alice: Great!
+ John->>Bob: How about you?
+ Bob-->>John: Jolly good!
+```
+
+# Emojis
+
+Many common emjoji’s are supported: https://github.com/showdownjs/showdown/wiki/emojis
diff --git a/helm-chart/renku/templates/_certificates-volumes.tpl b/helm-chart/renku/templates/_certificates-volumes.tpl
index b41b37ddba..77cc01d01e 100644
--- a/helm-chart/renku/templates/_certificates-volumes.tpl
+++ b/helm-chart/renku/templates/_certificates-volumes.tpl
@@ -14,8 +14,13 @@
path: {{ include "renku.CASecretName" . }}-internal-communication-ca.crt
{{- if $customCAsEnabled }}
{{- range $customCA := .Values.global.certificates.customCAs }}
+ {{- if $customCA.secret }}
- secret:
name: {{ $customCA.secret }}
- {{- end -}}
- {{- end -}}
-{{- end -}}
+ {{- else if $customCA.configMap }}
+ - configMap:
+ name: {{ $customCA.configMap }}
+ {{- end }}
+ {{- end }}
+ {{- end }}
+{{- end }}
diff --git a/helm-chart/renku/templates/data-service/rbac_data_tasks.yaml b/helm-chart/renku/templates/data-service/rbac_data_tasks.yaml
index dab475b337..16f97a3487 100644
--- a/helm-chart/renku/templates/data-service/rbac_data_tasks.yaml
+++ b/helm-chart/renku/templates/data-service/rbac_data_tasks.yaml
@@ -38,6 +38,10 @@ rules:
- get
- list
- watch
+ {{- if .Values.dataService.dataTasks.enableResourceRequestTracking }}
+ # Patch is needed for the data tasks to pause sessions when usage limits are enforced
+ - patch
+ {{- end }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
diff --git a/helm-chart/renku/values.yaml b/helm-chart/renku/values.yaml
index 29bde8a8f3..d2c1bc0d03 100644
--- a/helm-chart/renku/values.yaml
+++ b/helm-chart/renku/values.yaml
@@ -134,10 +134,10 @@ global:
anonymousSessions:
## Set to true to enable anonymous sessions
enabled: false
- ## Specify the name of an existing K8s secret that contains the certificate
+ ## Specify the name of an existing K8s secret or configmap that contains the certificate
## if you would like to use a custom CA. The key for the secret
## should have the .crt extension otherwise it is ignored. The
- ## keys across all secrets are mounted as files in one location so
+ ## keys across all secrets and configmaps are mounted as files in one location so
## the keys across all secrets have to be unique. In addition to the
## changes here modifications need to be made in the keycloak section below
certificates:
@@ -145,7 +145,8 @@ global:
repository: renku/certificates
tag: "0.0.2"
customCAs: []
- # - secret:
+ # - secret: a-secret-name
+ # - configMap: a-configmap-name
## Database credentials for postgres
db:
## Used by the renku-data-services and potentially other backend services
@@ -291,10 +292,15 @@ keycloakx:
defaultMode: 0777
sources:
{{- range $customCA := .Values.global.certificates.customCAs }}
+ {{- if $customCA.secret }}
- secret:
name: {{ $customCA.secret }}
- {{- end -}}
- {{- end -}}
+ {{- else if $customCA.configMap }}
+ - configMap:
+ name: {{ $customCA.configMap }}
+ {{- end }}
+ {{- end }}
+ {{- end }}
## Create a demo user in keycloak? Note that the password for the demo
## user must be queried from kubernetes (see the rendered NOTES.txt
## template which is shown after a successful deployment).
@@ -549,7 +555,7 @@ ui:
replicaCount: 1
image:
repository: renku/renku-ui
- tag: "4.23.0"
+ tag: "4.25.0"
pullPolicy: IfNotPresent
## Optionally specify an array of imagePullSecrets.
## Secrets must be manually created in the namespace.
@@ -741,7 +747,7 @@ ui:
keepCookies: []
image:
repository: renku/renku-ui-server
- tag: "4.23.0"
+ tag: "4.25.0"
pullPolicy: IfNotPresent
imagePullSecrets: []
nameOverride: ""
@@ -823,8 +829,7 @@ dlf-chart:
enabled: false
dataset-operator-chart:
enabled: true
-csi-rclone:
- {}
+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
@@ -885,12 +890,12 @@ notebooks:
## '["https://domain-a.example.org/*", "https://domain-b.example.net/*"]'
## Each URI should follow the format expected by Keycloak in the Redirect
## URIs field of a keycloak client.
- extraRedirectUris: '[]'
+ extraRedirectUris: "[]"
## This value is a yaml string of a json list of URIs strings, i.e.
## '["https://domain-a.example.org/*", "https://domain-b.example.net/*"]'
## Each URI should follow the format expected by Keycloak in the Web Origins
## field of a keycloak client.
- extraWebOrigins: '[]'
+ extraWebOrigins: "[]"
sessionIngress:
host:
## If you want to use the default cluster tls cert, set the flag below to true.
@@ -1194,12 +1199,12 @@ dataService:
existingPriorityClass: ""
image:
repository: renku/renku-data-service
- tag: "0.74.1"
+ tag: "0.76.0"
pullPolicy: IfNotPresent
k8sWatcher:
image:
repository: renku/data-service-k8s-watcher
- tag: "0.74.1"
+ tag: "0.76.0"
pullPolicy: IfNotPresent
resources: {}
sentry:
@@ -1210,7 +1215,7 @@ dataService:
dataTasks:
image:
repository: renku/data-service-data-tasks
- tag: "0.74.1"
+ tag: "0.76.0"
pullPolicy: IfNotPresent
resources: {}
enableResourceRequestTracking: false
@@ -1256,8 +1261,7 @@ dataService:
## The name of the BuildStrategy to use for image builds.
strategyName: renku-buildpacks-v3
## Configuration overrides for specific target platforms
- platformOverrides:
- {}
+ platformOverrides: {}
# linux/arm64:
# builderImage: "ghcr.io/swissdatasciencecenter/renku-frontend-buildpacks/cuda-selector:0.5.1"
# runImage: "ghcr.io/swissdatasciencecenter/renku-frontend-buildpacks/cuda-run-image:0.5.1"
@@ -1341,7 +1345,7 @@ authz:
secretsStorage:
image:
repository: renku/secrets-storage
- tag: "0.74.1"
+ tag: "0.76.0"
pullPolicy: IfNotPresent
service:
type: ClusterIP