From 9799bcc720ceab66be16fbc0f6bfb3afe41d1288 Mon Sep 17 00:00:00 2001 From: Iain Sproat <68657+iainsproat@users.noreply.github.com> Date: Fri, 4 Apr 2025 11:23:15 +0100 Subject: [PATCH 1/5] feat(helm chart): allow preview service to specify nvidia.com/gpu resource limit --- .../speckle-server/templates/preview_service/deployment.yml | 3 +++ utils/helm/speckle-server/values.schema.json | 5 +++++ utils/helm/speckle-server/values.yaml | 6 ++++++ 3 files changed, 14 insertions(+) diff --git a/utils/helm/speckle-server/templates/preview_service/deployment.yml b/utils/helm/speckle-server/templates/preview_service/deployment.yml index d3cb013a5..2221bd996 100644 --- a/utils/helm/speckle-server/templates/preview_service/deployment.yml +++ b/utils/helm/speckle-server/templates/preview_service/deployment.yml @@ -48,6 +48,9 @@ spec: limits: cpu: {{ .Values.preview_service.limits.cpu }} memory: {{ .Values.preview_service.limits.memory }} + {{- if (and .Values.preview_service.nvidiaGPUEnabled (get .Values.preview_service.limits "nvidia.com/gpu"))}} + nvidia.com/gpu: {{ (get .Values.preview_service.limits "nvidia.com/gpu") }} + {{- end }} securityContext: allowPrivilegeEscalation: false diff --git a/utils/helm/speckle-server/values.schema.json b/utils/helm/speckle-server/values.schema.json index 6d2318c7f..caa81ac53 100644 --- a/utils/helm/speckle-server/values.schema.json +++ b/utils/helm/speckle-server/values.schema.json @@ -1915,6 +1915,11 @@ "description": "Allows using a dedicated redis url for the preview service job queue", "default": false }, + "nvidiaGPUEnabled": { + "type": "boolean", + "description": "If enabled, the Preview Service will be deployed with GPU support. This is only available on Kubernetes clusters with GPU support.", + "default": false + }, "replicas": { "type": "number", "description": "The number of instances of the Preview Service pod to be deployed within the cluster.", diff --git a/utils/helm/speckle-server/values.yaml b/utils/helm/speckle-server/values.yaml index 1cf898736..493485228 100644 --- a/utils/helm/speckle-server/values.yaml +++ b/utils/helm/speckle-server/values.yaml @@ -1123,6 +1123,9 @@ preview_service: ## @param preview_service.dedicatedPreviewsQueue Allows using a dedicated redis url for the preview service job queue ## dedicatedPreviewsQueue: false + ## @param preview_service.nvidiaGPUEnabled If enabled, the Preview Service will be deployed with GPU support. This is only available on Kubernetes clusters with GPU support. + ## + nvidiaGPUEnabled: false ## @param preview_service.replicas The number of instances of the Preview Service pod to be deployed within the cluster. ## replicas: 1 @@ -1171,6 +1174,9 @@ preview_service: ## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ ## memory: 4Gi + ## @param preview_service.limits.nvidia.com/gpu The maximum number of GPUs that will be made available to the Preview Service Pod. Ignored if preview_service.nvidiaGPUEnabled is false. + ## If this limit is exceeded, processes within the pod that request additional GPUs may be paused. + nvidia.com/gpu: 1 autoscaling: ## @param preview_service.autoscaling.enabled ## @descriptionStart From d650674d6cb10d9f20b33ed383d1097344bfa6d4 Mon Sep 17 00:00:00 2001 From: Iain Sproat <68657+iainsproat@users.noreply.github.com> Date: Fri, 4 Apr 2025 11:46:51 +0100 Subject: [PATCH 2/5] make this generic, to allow for any GPU type --- .../templates/preview_service/deployment.yml | 13 ++++++------- utils/helm/speckle-server/values.schema.json | 5 ----- utils/helm/speckle-server/values.yaml | 7 +------ 3 files changed, 7 insertions(+), 18 deletions(-) diff --git a/utils/helm/speckle-server/templates/preview_service/deployment.yml b/utils/helm/speckle-server/templates/preview_service/deployment.yml index 2221bd996..429e379ce 100644 --- a/utils/helm/speckle-server/templates/preview_service/deployment.yml +++ b/utils/helm/speckle-server/templates/preview_service/deployment.yml @@ -42,15 +42,14 @@ spec: port: metrics resources: + {{- with .Values.preview_service.requests }} requests: - cpu: {{ .Values.preview_service.requests.cpu }} - memory: {{ .Values.preview_service.requests.memory }} + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.preview_service.limits }} limits: - cpu: {{ .Values.preview_service.limits.cpu }} - memory: {{ .Values.preview_service.limits.memory }} - {{- if (and .Values.preview_service.nvidiaGPUEnabled (get .Values.preview_service.limits "nvidia.com/gpu"))}} - nvidia.com/gpu: {{ (get .Values.preview_service.limits "nvidia.com/gpu") }} - {{- end }} + {{- toYaml . | nindent 12 }} + {{- end }} securityContext: allowPrivilegeEscalation: false diff --git a/utils/helm/speckle-server/values.schema.json b/utils/helm/speckle-server/values.schema.json index caa81ac53..6d2318c7f 100644 --- a/utils/helm/speckle-server/values.schema.json +++ b/utils/helm/speckle-server/values.schema.json @@ -1915,11 +1915,6 @@ "description": "Allows using a dedicated redis url for the preview service job queue", "default": false }, - "nvidiaGPUEnabled": { - "type": "boolean", - "description": "If enabled, the Preview Service will be deployed with GPU support. This is only available on Kubernetes clusters with GPU support.", - "default": false - }, "replicas": { "type": "number", "description": "The number of instances of the Preview Service pod to be deployed within the cluster.", diff --git a/utils/helm/speckle-server/values.yaml b/utils/helm/speckle-server/values.yaml index 493485228..7094e6c01 100644 --- a/utils/helm/speckle-server/values.yaml +++ b/utils/helm/speckle-server/values.yaml @@ -1123,9 +1123,7 @@ preview_service: ## @param preview_service.dedicatedPreviewsQueue Allows using a dedicated redis url for the preview service job queue ## dedicatedPreviewsQueue: false - ## @param preview_service.nvidiaGPUEnabled If enabled, the Preview Service will be deployed with GPU support. This is only available on Kubernetes clusters with GPU support. - ## - nvidiaGPUEnabled: false + ## @param preview_service.replicas The number of instances of the Preview Service pod to be deployed within the cluster. ## replicas: 1 @@ -1174,9 +1172,6 @@ preview_service: ## ref: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ ## memory: 4Gi - ## @param preview_service.limits.nvidia.com/gpu The maximum number of GPUs that will be made available to the Preview Service Pod. Ignored if preview_service.nvidiaGPUEnabled is false. - ## If this limit is exceeded, processes within the pod that request additional GPUs may be paused. - nvidia.com/gpu: 1 autoscaling: ## @param preview_service.autoscaling.enabled ## @descriptionStart From 2466c44ebbee503162e3594b28202198c1d09dd6 Mon Sep 17 00:00:00 2001 From: Iain Sproat <68657+iainsproat@users.noreply.github.com> Date: Fri, 4 Apr 2025 11:52:00 +0100 Subject: [PATCH 3/5] Allow all deployments to have free input of resources and limits --- .../templates/fileimport_service/deployment.yml | 10 ++++++---- .../speckle-server/templates/frontend_2/deployment.yml | 10 ++++++---- .../speckle-server/templates/monitoring/deployment.yml | 10 ++++++---- .../speckle-server/templates/objects/deployment.yml | 10 ++++++---- .../speckle-server/templates/server/deployment.yml | 10 ++++++---- .../helm/speckle-server/templates/tests/deployment.yml | 10 ++++++---- .../templates/webhook_service/deployment.yml | 10 ++++++---- 7 files changed, 42 insertions(+), 28 deletions(-) diff --git a/utils/helm/speckle-server/templates/fileimport_service/deployment.yml b/utils/helm/speckle-server/templates/fileimport_service/deployment.yml index 6689293d5..3aeef91c7 100644 --- a/utils/helm/speckle-server/templates/fileimport_service/deployment.yml +++ b/utils/helm/speckle-server/templates/fileimport_service/deployment.yml @@ -45,12 +45,14 @@ spec: - "process.exit((Date.now() - require('fs').readFileSync('/tmp/last_successful_query', 'utf8') > 25 * 60 * 1000) ? 1 : 0)" resources: + {{- with .Values.fileimport_service.requests }} requests: - cpu: {{ .Values.fileimport_service.requests.cpu }} - memory: {{ .Values.fileimport_service.requests.memory }} + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.fileimport_service.limits }} limits: - cpu: {{ .Values.fileimport_service.limits.cpu }} - memory: {{ .Values.fileimport_service.limits.memory }} + {{- toYaml . | nindent 12 }} + {{- end }} securityContext: allowPrivilegeEscalation: false diff --git a/utils/helm/speckle-server/templates/frontend_2/deployment.yml b/utils/helm/speckle-server/templates/frontend_2/deployment.yml index 07b891621..9e8a6cf98 100644 --- a/utils/helm/speckle-server/templates/frontend_2/deployment.yml +++ b/utils/helm/speckle-server/templates/frontend_2/deployment.yml @@ -35,12 +35,14 @@ spec: protocol: TCP resources: + {{- with .Values.frontend_2.requests }} requests: - cpu: {{ .Values.frontend_2.requests.cpu }} - memory: {{ .Values.frontend_2.requests.memory }} + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.frontend_2.limits }} limits: - cpu: {{ .Values.frontend_2.limits.cpu }} - memory: {{ .Values.frontend_2.limits.memory }} + {{- toYaml . | nindent 12 }} + {{- end }} # Allow for k8s to remove the pod from the service endpoints to stop receive traffic lifecycle: diff --git a/utils/helm/speckle-server/templates/monitoring/deployment.yml b/utils/helm/speckle-server/templates/monitoring/deployment.yml index d63ddbf97..e54fd1369 100644 --- a/utils/helm/speckle-server/templates/monitoring/deployment.yml +++ b/utils/helm/speckle-server/templates/monitoring/deployment.yml @@ -30,12 +30,14 @@ spec: protocol: TCP resources: + {{- with .Values.monitoring.requests }} requests: - cpu: {{ .Values.monitoring.requests.cpu }} - memory: {{ .Values.monitoring.requests.memory }} + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.monitoring.limits }} limits: - cpu: {{ .Values.monitoring.limits.cpu }} - memory: {{ .Values.monitoring.limits.memory }} + {{- toYaml . | nindent 12 }} + {{- end }} securityContext: allowPrivilegeEscalation: false diff --git a/utils/helm/speckle-server/templates/objects/deployment.yml b/utils/helm/speckle-server/templates/objects/deployment.yml index f0096d5d9..20f829d5d 100644 --- a/utils/helm/speckle-server/templates/objects/deployment.yml +++ b/utils/helm/speckle-server/templates/objects/deployment.yml @@ -34,12 +34,14 @@ spec: protocol: TCP resources: + {{- with .Values.objects.requests }} requests: - cpu: {{ .Values.objects.requests.cpu }} - memory: {{ .Values.objects.requests.memory }} + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.objects.limits }} limits: - cpu: {{ .Values.objects.limits.cpu }} - memory: {{ .Values.objects.limits.memory }} + {{- toYaml . | nindent 12 }} + {{- end }} securityContext: allowPrivilegeEscalation: false diff --git a/utils/helm/speckle-server/templates/server/deployment.yml b/utils/helm/speckle-server/templates/server/deployment.yml index 59330344e..ead600a3f 100644 --- a/utils/helm/speckle-server/templates/server/deployment.yml +++ b/utils/helm/speckle-server/templates/server/deployment.yml @@ -34,12 +34,14 @@ spec: protocol: TCP resources: + {{- with .Values.server.requests }} requests: - cpu: {{ .Values.server.requests.cpu }} - memory: {{ .Values.server.requests.memory }} + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.server.limits }} limits: - cpu: {{ .Values.server.limits.cpu }} - memory: {{ .Values.server.limits.memory }} + {{- toYaml . | nindent 12 }} + {{- end }} securityContext: allowPrivilegeEscalation: false diff --git a/utils/helm/speckle-server/templates/tests/deployment.yml b/utils/helm/speckle-server/templates/tests/deployment.yml index 4aeb705d0..398455a52 100644 --- a/utils/helm/speckle-server/templates/tests/deployment.yml +++ b/utils/helm/speckle-server/templates/tests/deployment.yml @@ -32,12 +32,14 @@ spec: - name: LOG_PRETTY value: {{ .Values.test.logPretty | quote }} resources: + {{- with .Values.test.requests }} requests: - cpu: {{ .Values.test.requests.cpu }} - memory: {{ .Values.test.requests.memory }} + {{- toYaml . | nindent 14 }} + {{- end }} + {{- with .Values.test.limits }} limits: - cpu: {{ .Values.test.limits.cpu }} - memory: {{ .Values.test.limits.memory }} + {{- toYaml . | nindent 14 }} + {{- end }} securityContext: allowPrivilegeEscalation: false capabilities: diff --git a/utils/helm/speckle-server/templates/webhook_service/deployment.yml b/utils/helm/speckle-server/templates/webhook_service/deployment.yml index 3f3bc7d39..2ec42c05a 100644 --- a/utils/helm/speckle-server/templates/webhook_service/deployment.yml +++ b/utils/helm/speckle-server/templates/webhook_service/deployment.yml @@ -39,12 +39,14 @@ spec: - process.exit(Date.now() - require('fs').readFileSync('/tmp/last_successful_query', 'utf8') > 30 * 1000) resources: + {{- with .Values.webhook_service.requests }} requests: - cpu: {{ .Values.webhook_service.requests.cpu }} - memory: {{ .Values.webhook_service.requests.memory }} + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.webhook_service.limits }} limits: - cpu: {{ .Values.webhook_service.limits.cpu }} - memory: {{ .Values.webhook_service.limits.memory }} + {{- toYaml . | nindent 12 }} + {{- end }} securityContext: allowPrivilegeEscalation: false From 84cd674ff50e513a9a9a49906fd77d6ee077b6ac Mon Sep 17 00:00:00 2001 From: Mike Date: Fri, 4 Apr 2025 13:57:31 +0200 Subject: [PATCH 4/5] Fix: Remove links to workspace pages, remove create workspace option from project create modal (#4320) --- .../components/projects/AddDialog.vue | 117 ++---------------- .../projects/MoveToWorkspaceDialog.vue | 4 +- .../components/workspace/CreatePage.vue | 4 +- .../workspace/wizard/CancelDialog.vue | 4 +- .../frontend-2/lib/common/helpers/route.ts | 1 - 5 files changed, 15 insertions(+), 115 deletions(-) diff --git a/packages/frontend-2/components/projects/AddDialog.vue b/packages/frontend-2/components/projects/AddDialog.vue index 232e0b7c2..7711d85fd 100644 --- a/packages/frontend-2/components/projects/AddDialog.vue +++ b/packages/frontend-2/components/projects/AddDialog.vue @@ -27,39 +27,8 @@

Access permissions

- - diff --git a/packages/frontend-2/components/projects/MoveToWorkspaceDialog.vue b/packages/frontend-2/components/projects/MoveToWorkspaceDialog.vue index 7234dfd88..27fe7fffb 100644 --- a/packages/frontend-2/components/projects/MoveToWorkspaceDialog.vue +++ b/packages/frontend-2/components/projects/MoveToWorkspaceDialog.vue @@ -16,7 +16,7 @@

You're not a member of any workspaces.

- Learn about workspaces + Create a workspace
@@ -71,7 +71,7 @@ import { useMutationLoading, useQuery } from '@vue/apollo-composable' import type { LayoutDialogButton } from '@speckle/ui-components' import { useMoveProjectToWorkspace } from '~/lib/projects/composables/projectManagement' import { Roles } from '@speckle/shared' -import { workspacesRoute } from '~/lib/common/helpers/route' +import { workspaceCreateRoute } from '~/lib/common/helpers/route' import { useWorkspaceCustomDataResidencyDisclaimer, RegionStaticDataDisclaimerVariant diff --git a/packages/frontend-2/components/workspace/CreatePage.vue b/packages/frontend-2/components/workspace/CreatePage.vue index 7e87b1156..a4ffc62cd 100644 --- a/packages/frontend-2/components/workspace/CreatePage.vue +++ b/packages/frontend-2/components/workspace/CreatePage.vue @@ -45,7 +45,7 @@