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 +![alt text](image-url.com/image-path.png) +``` + +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 +alt text +``` + +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