Skip to content

Conversation

andyatmiami
Copy link
Contributor

related: #239

This commit brings partial support for secrets to the backend API. It enables the frontend component to successfully create a Workspace through the "wizard flow".

HOWEVER, it is important to note this secrets attribute is not supported within the controller component yet - as #240 is not yet merged. To unblock the frontend - the logic contained in this commit simply adds the necessary scaffolding to accept the secrets attribute defined within volumes. Once umarshalled, the backend essentially ignores this data. Code to fully enable the end to end flow is included in this PR - but simply commented out with TODO: comments denoting what can be uncommented once #240 is merged into notebooks-v2. A test is also presently disabled with XIt - and can also be enabled when required code present.

Changes were initially coded against the branch provided on #240 to verify full end-to-end behavior. Once confirmed, commit was rebased onto notebooks-v2, relevant code commented out as described above, and behavior retested to ensure desired outcome.

In summary, with these changes:

  • backend API accepts volumes.secrets in the Create payload
  • secrets data is NOT USED when programmatically constructing the Workspace CR
  • Resultant workspace has no secrets data - irrespective of it if was provided in the payload or not.

@andyatmiami
Copy link
Contributor Author

Functionality was verified by running the frontend component locally against a backend service (also local) containing the changes of this PR.

As evidenced in the following screenshot - the andy-test-pr-verify Workspace was able to be successfully created - and it included secrets information in the payload.

image

Furthermore, the Workspace CR that was created does NOT contain secrets information - as intended by the code at this time.

 $ kubectl get workspaces/andy-test-pr-verify -o json
{
    "apiVersion": "kubeflow.org/v1beta1",
    "kind": "Workspace",
    "metadata": {
        "creationTimestamp": "2025-05-13T19:29:05Z",
        "generation": 1,
        "name": "andy-test-pr-verify",
        "namespace": "default",
        "resourceVersion": "125717",
        "uid": "ee1fc290-b241-4703-8f19-1a3a48ced500"
    },
    "spec": {
        "deferUpdates": false,
        "kind": "jupyterlab",
        "paused": false,
        "podTemplate": {
            "options": {
                "imageConfig": "jupyterlab_scipy_190",
                "podConfig": "tiny_cpu"
            },
            "podMetadata": {},
            "volumes": {
                "data": [
                    {
                        "mountPath": "/data/my-data",
                        "pvcName": "workspace-data-pvc",
                        "readOnly": false
                    }
                ],
                "home": "workspace-home-pvc"
            }
        }
    },
    "status": {
        "activity": {
            "lastActivity": 0,
            "lastUpdate": 0
        },
        "pauseTime": 0,
        "pendingRestart": false,
        "podTemplateOptions": {
            "imageConfig": {
                "desired": "jupyterlab_scipy_190"
            },
            "podConfig": {
                "desired": "tiny_cpu"
            }
        },
        "podTemplatePod": {
            "containers": [
                {
                    "name": "main"
                }
            ],
            "name": "ws-andy-test-pr-verify-z5qfg-0"
        },
        "state": "Running",
        "stateMessage": "Workspace is running"
    }
}

@ederign
Copy link
Member

ederign commented May 14, 2025

/ok-to-test

Copy link
Member

@ederign ederign left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@andyatmiami can you please fix the lint for this PR?

Also, I'm fine to merge this to unblock frontend. We just need to remember to update the open api definition later (we can do in a FUP PR).

@andyatmiami andyatmiami force-pushed the fix/backend-api-secrets branch from 33658ef to 3c837d3 Compare May 15, 2025 13:18
@andyatmiami andyatmiami requested a review from ederign May 15, 2025 13:37
Copy link
Member

@ederign ederign left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving this to unblock FE. We will update this PR after secrets controller PR gets merged.

@google-oss-prow google-oss-prow bot added the lgtm label May 15, 2025
@ederign
Copy link
Member

ederign commented May 15, 2025

/approve

@ederign
Copy link
Member

ederign commented May 15, 2025

/ok-to-test

related: kubeflow#239

This commit brings partial support for secrets to the backend API.  It enables the `frontend` component to successfully create a Workspace through the "wizard flow".

**HOWEVER**, it is important to note this secrets attribute is not supported within the `controller` component yet - as kubeflow#240 is not yet merged. To unblock the `frontend` - the logic contained in this commit simply adds the necessary scaffolding to accept the `secrets` attribute defined within `volumes`.  Once umarshalled, the backend essentially ignores this data.  Code to fully enable the end to end flow is included in this PR - but simply commented out with `TODO:` comments denoting what can be uncommented once kubeflow#240 is merged into `notebooks-v2`.  A test is also presently disabled with `XIt` - and can also be enabled when required code present.

Changes were initially coded against the branch provided on kubeflow#240 to verify full end-to-end behavior.  Once confirmed, commit was rebased onto `notebooks-v2`, relevant code commented out as described above, and behavior retested to ensure desired outcome.

In summary, with these changes:
- `backend` API accepts `volumes.secrets` in the _Create_ payload
- secrets data is **NOT USED** when programmatically constructing the Workspace CR
- Resultant workspace has no `secrets` data - irrespective of it if was provided in the payload or not.

Signed-off-by: Andy Stoneberg <[email protected]>
@andyatmiami andyatmiami force-pushed the fix/backend-api-secrets branch from 3c837d3 to 060371f Compare May 15, 2025 16:39
@google-oss-prow google-oss-prow bot removed the lgtm label May 15, 2025
@thesuperzapper thesuperzapper changed the title fix(ws): add secrets attribute to backend API schema fix(ws): add secrets field to backend API schema May 15, 2025
@thesuperzapper
Copy link
Member

/approve
/lgtm

Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: ederign, thesuperzapper

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@google-oss-prow google-oss-prow bot merged commit ea93acc into kubeflow:notebooks-v2 May 15, 2025
11 of 12 checks passed
@github-project-automation github-project-automation bot moved this from Needs Triage to Done in Kubeflow Notebooks May 15, 2025
jenny-s51 pushed a commit to jenny-s51/notebooks that referenced this pull request May 16, 2025
related: kubeflow#239

This commit brings partial support for secrets to the backend API.  It enables the `frontend` component to successfully create a Workspace through the "wizard flow".

**HOWEVER**, it is important to note this secrets attribute is not supported within the `controller` component yet - as kubeflow#240 is not yet merged. To unblock the `frontend` - the logic contained in this commit simply adds the necessary scaffolding to accept the `secrets` attribute defined within `volumes`.  Once umarshalled, the backend essentially ignores this data.  Code to fully enable the end to end flow is included in this PR - but simply commented out with `TODO:` comments denoting what can be uncommented once kubeflow#240 is merged into `notebooks-v2`.  A test is also presently disabled with `XIt` - and can also be enabled when required code present.

Changes were initially coded against the branch provided on kubeflow#240 to verify full end-to-end behavior.  Once confirmed, commit was rebased onto `notebooks-v2`, relevant code commented out as described above, and behavior retested to ensure desired outcome.

In summary, with these changes:
- `backend` API accepts `volumes.secrets` in the _Create_ payload
- secrets data is **NOT USED** when programmatically constructing the Workspace CR
- Resultant workspace has no `secrets` data - irrespective of it if was provided in the payload or not.

Signed-off-by: Andy Stoneberg <[email protected]>
Signed-off-by: Jenny <[email protected]>

feat(ws): Add theme dependent components

Signed-off-by: Jenny <[email protected]>

fix linting errors

Signed-off-by: Jenny <[email protected]>

move button to toolbargroup to fix toolbar alignment

fix search input height

fix frontend tests

Signed-off-by: Jenny <[email protected]>

fix testing issues

Signed-off-by: Jenny <[email protected]>

add export default to ThemeAwareSearchInput

Signed-off-by: Jenny <[email protected]>

fix linting issues

fix import

add ID
jenny-s51 pushed a commit to jenny-s51/notebooks that referenced this pull request May 16, 2025
related: kubeflow#239

This commit brings partial support for secrets to the backend API.  It enables the `frontend` component to successfully create a Workspace through the "wizard flow".

**HOWEVER**, it is important to note this secrets attribute is not supported within the `controller` component yet - as kubeflow#240 is not yet merged. To unblock the `frontend` - the logic contained in this commit simply adds the necessary scaffolding to accept the `secrets` attribute defined within `volumes`.  Once umarshalled, the backend essentially ignores this data.  Code to fully enable the end to end flow is included in this PR - but simply commented out with `TODO:` comments denoting what can be uncommented once kubeflow#240 is merged into `notebooks-v2`.  A test is also presently disabled with `XIt` - and can also be enabled when required code present.

Changes were initially coded against the branch provided on kubeflow#240 to verify full end-to-end behavior.  Once confirmed, commit was rebased onto `notebooks-v2`, relevant code commented out as described above, and behavior retested to ensure desired outcome.

In summary, with these changes:
- `backend` API accepts `volumes.secrets` in the _Create_ payload
- secrets data is **NOT USED** when programmatically constructing the Workspace CR
- Resultant workspace has no `secrets` data - irrespective of it if was provided in the payload or not.

Signed-off-by: Andy Stoneberg <[email protected]>
Signed-off-by: Jenny <[email protected]>

feat(ws): Add theme dependent components

Signed-off-by: Jenny <[email protected]>

fix linting errors

Signed-off-by: Jenny <[email protected]>

move button to toolbargroup to fix toolbar alignment

fix search input height

fix frontend tests

Signed-off-by: Jenny <[email protected]>

fix testing issues

Signed-off-by: Jenny <[email protected]>

add export default to ThemeAwareSearchInput

Signed-off-by: Jenny <[email protected]>

fix linting issues

fix import

add ID
Noa-limoy pushed a commit to Noa-limoy/notebooks that referenced this pull request May 18, 2025
related: kubeflow#239

This commit brings partial support for secrets to the backend API.  It enables the `frontend` component to successfully create a Workspace through the "wizard flow".

**HOWEVER**, it is important to note this secrets attribute is not supported within the `controller` component yet - as kubeflow#240 is not yet merged. To unblock the `frontend` - the logic contained in this commit simply adds the necessary scaffolding to accept the `secrets` attribute defined within `volumes`.  Once umarshalled, the backend essentially ignores this data.  Code to fully enable the end to end flow is included in this PR - but simply commented out with `TODO:` comments denoting what can be uncommented once kubeflow#240 is merged into `notebooks-v2`.  A test is also presently disabled with `XIt` - and can also be enabled when required code present.

Changes were initially coded against the branch provided on kubeflow#240 to verify full end-to-end behavior.  Once confirmed, commit was rebased onto `notebooks-v2`, relevant code commented out as described above, and behavior retested to ensure desired outcome.

In summary, with these changes:
- `backend` API accepts `volumes.secrets` in the _Create_ payload
- secrets data is **NOT USED** when programmatically constructing the Workspace CR
- Resultant workspace has no `secrets` data - irrespective of it if was provided in the payload or not.

Signed-off-by: Andy Stoneberg <[email protected]>
mkoushni pushed a commit to mkoushni/notebooks that referenced this pull request May 28, 2025
related: kubeflow#239

This commit brings partial support for secrets to the backend API.  It enables the `frontend` component to successfully create a Workspace through the "wizard flow".

**HOWEVER**, it is important to note this secrets attribute is not supported within the `controller` component yet - as kubeflow#240 is not yet merged. To unblock the `frontend` - the logic contained in this commit simply adds the necessary scaffolding to accept the `secrets` attribute defined within `volumes`.  Once umarshalled, the backend essentially ignores this data.  Code to fully enable the end to end flow is included in this PR - but simply commented out with `TODO:` comments denoting what can be uncommented once kubeflow#240 is merged into `notebooks-v2`.  A test is also presently disabled with `XIt` - and can also be enabled when required code present.

Changes were initially coded against the branch provided on kubeflow#240 to verify full end-to-end behavior.  Once confirmed, commit was rebased onto `notebooks-v2`, relevant code commented out as described above, and behavior retested to ensure desired outcome.

In summary, with these changes:
- `backend` API accepts `volumes.secrets` in the _Create_ payload
- secrets data is **NOT USED** when programmatically constructing the Workspace CR
- Resultant workspace has no `secrets` data - irrespective of it if was provided in the payload or not.

Signed-off-by: Andy Stoneberg <[email protected]>
Signed-off-by: CI Bot <[email protected]>
mkoushni pushed a commit to mkoushni/notebooks that referenced this pull request Jun 4, 2025
related: kubeflow#239

This commit brings partial support for secrets to the backend API.  It enables the `frontend` component to successfully create a Workspace through the "wizard flow".

**HOWEVER**, it is important to note this secrets attribute is not supported within the `controller` component yet - as kubeflow#240 is not yet merged. To unblock the `frontend` - the logic contained in this commit simply adds the necessary scaffolding to accept the `secrets` attribute defined within `volumes`.  Once umarshalled, the backend essentially ignores this data.  Code to fully enable the end to end flow is included in this PR - but simply commented out with `TODO:` comments denoting what can be uncommented once kubeflow#240 is merged into `notebooks-v2`.  A test is also presently disabled with `XIt` - and can also be enabled when required code present.

Changes were initially coded against the branch provided on kubeflow#240 to verify full end-to-end behavior.  Once confirmed, commit was rebased onto `notebooks-v2`, relevant code commented out as described above, and behavior retested to ensure desired outcome.

In summary, with these changes:
- `backend` API accepts `volumes.secrets` in the _Create_ payload
- secrets data is **NOT USED** when programmatically constructing the Workspace CR
- Resultant workspace has no `secrets` data - irrespective of it if was provided in the payload or not.

Signed-off-by: Andy Stoneberg <[email protected]>
Signed-off-by: CI Bot <[email protected]>
andyatmiami added a commit to andyatmiami/kubeflow-notebooks that referenced this pull request Jun 13, 2025
related: kubeflow#239

This commit brings partial support for secrets to the backend API.  It enables the `frontend` component to successfully create a Workspace through the "wizard flow".

**HOWEVER**, it is important to note this secrets attribute is not supported within the `controller` component yet - as kubeflow#240 is not yet merged. To unblock the `frontend` - the logic contained in this commit simply adds the necessary scaffolding to accept the `secrets` attribute defined within `volumes`.  Once umarshalled, the backend essentially ignores this data.  Code to fully enable the end to end flow is included in this PR - but simply commented out with `TODO:` comments denoting what can be uncommented once kubeflow#240 is merged into `notebooks-v2`.  A test is also presently disabled with `XIt` - and can also be enabled when required code present.

Changes were initially coded against the branch provided on kubeflow#240 to verify full end-to-end behavior.  Once confirmed, commit was rebased onto `notebooks-v2`, relevant code commented out as described above, and behavior retested to ensure desired outcome.

In summary, with these changes:
- `backend` API accepts `volumes.secrets` in the _Create_ payload
- secrets data is **NOT USED** when programmatically constructing the Workspace CR
- Resultant workspace has no `secrets` data - irrespective of it if was provided in the payload or not.

Signed-off-by: Andy Stoneberg <[email protected]>
@andyatmiami andyatmiami deleted the fix/backend-api-secrets branch August 6, 2025 14:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

3 participants