Skip to content

[TASK] frontend Makefile to support deploy-related tasks #528

@andyatmiami

Description

@andyatmiami

Certification

  • I certify I am an Epic Owner for Kubeflow Notebooks 2.0 and expected to create planning-related issues.

Description

The frontend component is a NodeJS application that has a package.json file that defines various run targets to assist in building and testing code. This differs from the controller and backend golang components - which has a Makefile for each component that handles not just building and testing, but also deploying the code to a cluster.

npm and package.json is a very natural framework for UI development - so we do NOT want to change anything with that workflow. However, in deploying the application, we want alignment/familiarity across the components. For instance, a client simply wishing to deploy Kubeflow Notebooks 2.0 (but not be a contributor to the codebase) - its unnecessary to force them to use npm. make a more common, cross-cutting application to standardize on.

You can easily observe the missing functionality present in the frontend by looking at a few sources that advise developer to manually run commands for various utilities:

From reviewing both the backend and controller Makefile - you can easily identify common/core scaffolding that should be included in the frontend Makefile

Specific to frontend - we want to expose the following targets/rules in the Makefile

  • docker-build
  • docker-push
  • docker-buildx
  • deploy
  • undeploy

ℹ️ Please note that other "helper" targets may need to be defined to support these more core developer-facing targets.

Acceptance Criteria

  • Makefile exists at root of workspaces/frontend directory for notebooks-v2 branch
  • Makefile adheres common patterns/targets present in controller and backend
  • Makefile exposes following targets to assist in working on remote clusters
    • docker-build
    • docker-push
    • docker-buildx
    • deploy
    • undeploy

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions