Coder Social home page Coder Social logo

onepanelio / onepanel Goto Github PK

View Code? Open in Web Editor NEW
706.0 34.0 69.0 30.08 MB

The open source, end-to-end computer vision platform. Label, build, train, tune, deploy and automate in a unified platform that runs on any cloud and on-premises.

Home Page: https://docs.onepanel.ai/

License: Apache License 2.0

Go 99.52% Makefile 0.28% Dockerfile 0.20%
deeplearning pipelines machinelearning jupyterlab tensorflow pytorch tensorboard computer-vision mlops workflows

onepanel's Introduction

build code release sdk docs issues lfai license

End-to-end computer vision platform

Label, build, train, tune, deploy and automate in a unified platform that runs on any cloud and on-premises.

onepanel-feature-highlights.mp4

Why Onepanel?

Quick start

See quick start guide to get started.

Community

To submit a feature request, report a bug or documentation issue, please open a GitHub pull request or issue.

Contributing

Onepanel is modular and consists of multiple repositories.

See contribution guide and CONTRIBUTING.md in each repository for additional contribution guidelines.

Acknowledgments

Onepanel seamlessly integrates the following open source projects under the hood:

Argo | Couler | CVAT | JupyterLab | NNI

We are grateful for the support these communities provide and do our best to contribute back as much as possible.

License

Onepanel is licensed under Apache 2.0.

onepanel's People

Contributors

aleksandrmelnikov avatar dsdon10 avatar gliptak avatar inohmonton99 avatar lnguyen avatar rushtehrani avatar savan77 avatar vafilor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

onepanel's Issues

Add endpoint to verify token

Add an endpoint to verify a token that the user provides.

This helps clients like web know if the token they provide is valid or not so they can be prompted to provide a valid token.

Add CLI command for getting istio-ingressgateway external IP

Need to display the istio gateway external IP/host before displaying the URL to user. This is only if the provider is cloud:

Message would be:
Please point your Wildcard FQDN (i.e. *.example.com or *.sub.example.com) in your DNS provider to as outlined in our docs.
Once the DNS propagates, your application will be available at /

Sample kubectl command to get gateway external IP:

kubectl get service istio-ingressgateway -n istio-system

Relates to #89

Secret not auto-generated

I ran into this while deploying on microk8s. I got to executing a workflow and then the web failed (with no error message) because the secret was not created.

I propose testing if the secret exists on core startup and if it doesn't, create it.

Thoughts @rushtehrani @aleksandrmelnikov ?

Logging

There are two types of logging:

  1. Pod logs streaming from API - the limitation here is only lines are streamed, not character.
  2. TTY logging - in this case we log directly from the Pod stdout so that we can do character by character logging.

We need to support 2 not only because it allows character by character logging, but it also offloads logging to containers instead of the API. Note that we still need to pull archived logs from the S3 compatible object storage

Upgrade to Istio 1.4.6

This resolves an issue with GKE:

The issue with open source Istio version 1.4 and higher on Google Kubernetes Engine has a mitigation available as of Wednesday, 2020-01-08 14:30 US/Pacific.
A patched version of open source Istio has been released which corrects the issue with the "mixer" component creating too many watches: https://istio.io/news/releases/1.4.x/announcing-1.4.3/

Workspace workflow requirements

Need to have these abilities in a standard way:

  • Generate default workspace workflows when "Core" is deployed
  • Ability to pass in system-wide configuration variables to every workflow. Examples: domain name, smtp, different types of creds (this might need to be in secret instead)
  • Mount environment variables
  • Ability to pause statefulsets, keeping volume intact
  • Ability to switch nodes, keeping volume intact

Add parameters to API call to execute a workflow

To create/execute we need to pass in parameters.

Update the API request to take these into consideration.
JSON POST will look like

[
   {
       name1: "value1" 
   }, 
   {
       name2: "value2" 
   },    
...
   {
       nameN: "valueN" 
   }, 
]

System environment variables

These environment variables will mount to every container to enable integrations from within the containers:

  • ONEPANEL_API_URL - Format: <http-scheme>://<host>[:<apiHTTPPort>]/[apiPath]
  • PROVIDER_TYPE - local or cloud

Kustomize packaging

See https://github.com/kubeflow/manifests for reference manifests for some of these components.

Components we initially need, note that some may need to be updated:

Onepanel ConfigMap and Secret

This ConfigMap will contain configuration for Onepanel's API/UI/Workflows.

CLI

Initially we need the following:

  • Update params.env to include:
    • namespace - this is the default namespace that user selects to execute workflows in. This should default to default.

Once onepanel deploy is run:

  • Create the user selected namespace above (note that default namespace is autogenerated)
  • Create these resources after namespace is created.
  • Create a ConfigMap named onepanel in onepanel namespace
    • namespace - default namespace mentioned above
    • We also need the Argo S3 config information in here: keyFormat, bucket, secretKey, accessKey, the last two referencing the secret name and keys in the user selected namespace.
  • Create a Secret named onepanel in onepanel namespace
  • Create a Secret named onepanel in the user selected namespace mentioned above:
    • This will contain the S3 compatible storage information.

API

  • Expose this ConfigMap via an API call.

Certificate deployment options

Add opctl init flags to support the following scenarios:

  • HTTP only
  • HTTPS with external cert management
  • HTTPS with cert-manager

HTTP only

Default option, In this case:

  • insecure field in params.yaml is set to true
  • istio ingressgateway does not redirect to HTTPS

HTTPS with external cert management

In this case:

  • CLI --enable-tls flag set
  • insecure field in params.yaml is set to false
  • Istio ingressgateway will redirect to HTTPS

HTTPS with cert-manager

  • CLI --enable-tls flag set
  • CLI --enable-cert-manager flag set
  • CLI --dns-provider flag is required
  • Istio ingressgateway will redirect to HTTPS

Add `type` to `arguments.parameters` in Argo Workflows

Support HTML input and select types for Argo Workflow YAMLs. Example:

arguments:
    parameters:
    - name: name
       value: 'workspace name'
       type: input.text
    - name: description
       value: 'workspace description'
       type: textarea.textarea
    - name: machine-type
       value: p3.2xlarge
       type: select.select
       options:
          - name: 'V100 GPU'
             value:  p3.xlarge
    - name: image-type
       value: pytorch-1.4
       type: input.radio
       options:
          -  pytorch-1.4
          -  tensorflow-2.0

We could use Gantry Field Types as reference but only need to support basic HTML fields listed above for now.

On the API side, the field types and YAML structure need to be validated, but removed before they are passed into Argo validation

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.