How to manage profiles

See also: Profile

In Kubeflow, the multi-tenancy component allows an Administrator to manually create and modify a profile for each user. Charmed Kubeflow introduces user management features to automate the process of profile creation and initialisation with some credentials to provide an even more advanced MLOps solution. This document shows you all the various ways in which you can manage user profiles.

Contents:

Create a profile

  1. If you’re using juju < v.3.0:
    In a terminal, run the code below to enable the Juju actions feature flag:
export JUJU_FEATURES=actions-v2
  1. Get the username of the user used to log in to the dashboard. For example, if you’ve chosen to authenticate with the default identity provider Dex, this would be your Dex username.

  2. Think of a name for the profile you are creating.

If you want to limit the resources that will be available to this profile, also:

Define a resource quota by defining a variable (below, RQ) with the resource quota keys set to the desired values (feel free to adjust), as below:

RQ=$(cat <<END
{
  "hard": {
    "cpu": "2",
    "memory": "2Gi",
    "requests.nvidia.com/gpu": "1",
    "persistentvolumeclaims": "1",
    "requests.storage": "5Gi"
  }
}
END
)
  1. Create a user profile by running the create-profile action with the username and profilename keys, passing as values the username and profile name from the previous steps:
juju run kubeflow-profiles/0 create-profile username=<the authenticated username> profilename=<the new profile name>

If you want to limit the resources available to this profile:

Also use the resourcequota key, passing as a value the contents of the resource quota variable you defined earlier (in our case, RQ):

juju run kubeflow-profiles/0 create-profile username="<the authenticated username>" profilename="<the new profile name>" resourcequota="$RQ" --string-args

See more: Juju OLM | juju run, Charmed Kubeflow Profiles > Actions > create-profile

  1. Verify that the profile works by accessing the dashboard. (You’ll need the username you used above.) Once you are in, you should see the newly created user profile on the dashboard. The screenshot below shows this for a new profile with the name myprofile.

See more: How to access the Charmed Kubeflow dashboard

Initialise a profile

If you’ve created your profile using the Charmed Kubeflow Profiles create-profile action:

You do not need to do this step, as your profile has already been initialised.

To initialise a profile, open up a terminal and run the initialise-profile action with the profilename key set to the name of the existing profile that you wish to initialise.

juju run kubeflow-profiles/0 initialise-profile profilename=<profile name>

This will apply a set of credentials to the profile’s namespace that will enable you to use Minio, MLFlow, and Seldon, if you wish.

See more: Juju OLM | juju run, Charmed Kubeflow Profiles > Actions > initialise-profile


Expand to see the effect of initialising your profile on Notebooks

Once you’ve initialised your profile, if you go ahead to create a Jupyter Notebook, you should see two options, to allow access to Minio and MLFlow, as shown in the screenshot below.


Delete a profile

To delete an existing profile, follow the upstream documentation.

In case that was the only profile owned by your user, next time you log in, you will be prompted to create a namespace for your user.