MetroStar Onyx - Label Studio plugin for Nebari platform
Project description
Nebari Plugin Label-Studio Chart
Overview
This plugin integrates Label Studio into the Nebari platform, allowing seamless labeling functionality within Nebari. Utilizing Python, Terraform, Kubernetes, and Helm charts, the plugin provides a configurable deployment and authentication through Keycloak.
Design and Architecture
The plugin follows a modular design, leveraging Terraform to define the deployment of Label Studio within a Kubernetes cluster. Key components include:
- Terraform Configuration: Defines variables, outputs, and resources for deployment, including Helm release, Keycloak authentication, and Kubernetes secrets.
- Helm Chart Integration: Deploys Label Studio as a Helm chart within the specified Kubernetes namespace.
- Authentication: Utilizes Keycloak for OpenID authentication, including user roles and group memberships.
Installation Instructions
pip install nebari-plugin-label-studio-chart
Usage Instructions
- Configurations: Various configurations are available, including domain, realm ID, client ID, signing key, and namespace settings.
- Authentication: Enable or disable authentication and define specific OpenID parameters.
Configuration Details
Public
Configuration of the Label Studio plugin is controlled through the label_studio
section of the nebari-config.yaml
for the environment.
label_studio:
# helm release name - default label-studio
name: label-studio
# target namespace - default (nebari global namespace)
namespace: label-studio
# enable or disable traefik auth proxy and keycloak integration
auth:
enabled: true
# configure default affinity/selector for chart components
affinity:
enabled: true # default
selector: general # default
# -- or --
selector:
default: general
worker: worker
db: general
auth: general
# helm chart values overrides
values: {}
Internal
The following configuration values apply to the internally managed terraform module and are indirectly controlled through related values in nebari-config.yaml
.
name
: Chart name for Helm release.domain
: Domain for the plugin's deployment.realm_id
,client_id
: Keycloak authentication settings.base_url
,external_url
,valid_redirect_uris
: OpenID URLs.signing_key_ref
: Signing key reference information.create_namespace
,namespace
: Kubernetes namespace configuration.overrides
: Map for overriding default configurations.auth_enabled
: Flag to enable/disable authentication.
Label Studio Version
Label Studio is deployed via its offical Helm chart and will default to using the develop
image tag if not specified.
To set a Label Studio version, update your nebari-config.yaml
to override the app image tag used in the helm chart.
label_studio:
namespace: label-studio
values:
# Deploy Label Studio 1.8.1
global:
image:
tag: "1.8.1"
See the Label Studio helm chart documentation for all available configurations.
Usage
Once the extension is installed, the Label Studio Community Edition will be available at https://[your-project-domain]/label-studio
.
If authentication is enabled, any user attempting to access Label Studio will be required to login first with valid, active Nebari (Keycloak) credentials. However, Label Studio accounts are separate from Nebari accounts. Any user who has passed the authentication step above will then be able to create their own account.
NOTE: The Community Edition of Label Studio does not include role-based access permissions. All users have access to the same functionality and can see all projects.
Once a user has created their account, they can join the Label Studio 101 tutorial at the step Label Studio 101 - Creating Your Project.
For more information on using Label Studio, refer to the Label Studio documentation.
Testing Overview
The plugin includes unit tests to validate its core functionalities:
- Constructor Test: Verifies the default name and priority.
- Input Variables Test: Validates domain, realm ID, client ID, and external URL settings.
- Default Namespace Test: Tests the default namespace configuration.
License
nebari-plugin-label-studio-chart
is distributed under the terms of the Apache license.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file nebari_plugin_label_studio_chart-0.0.7.tar.gz
.
File metadata
- Download URL: nebari_plugin_label_studio_chart-0.0.7.tar.gz
- Upload date:
- Size: 12.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dfe97bbf670ab37aeef643ca65808591d16878a4e5ff240a2c5109f763cf048b |
|
MD5 | 0e32017e5d21fbf6c65562c6433db162 |
|
BLAKE2b-256 | 6d37c8fffb28c0716cba53bc85f6a270d30367cd4cbaa444cf63f3c4db3abc10 |
File details
Details for the file nebari_plugin_label_studio_chart-0.0.7-py3-none-any.whl
.
File metadata
- Download URL: nebari_plugin_label_studio_chart-0.0.7-py3-none-any.whl
- Upload date:
- Size: 15.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 77c9431397dc1ef27de28a56450d2497fb4b7affe77afd4f3614b899fffb0cf5 |
|
MD5 | 20c0fbc4cc6f1e0d1a9d52887c2f5d9c |
|
BLAKE2b-256 | a781366d4c7ae39483ace61f063523e341bd4ff00811517e26d82f8ff9a7787a |