├── .ci ├── serve_mlflow.json ├── serve_tf.json └── test.json ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── pull_request_template.md └── workflows │ ├── branch-name-check.yaml │ ├── build-jupyter-stackn.yaml │ ├── build-studio.yaml │ ├── cli-code-checks.yaml │ ├── integration-tests.yaml │ └── studio-code-checks.yaml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── cli ├── MANIFEST.in ├── README.md ├── setup.py ├── stackn │ ├── __init__.py │ ├── auth.py │ ├── create.py │ ├── delete.py │ ├── error_msg.py │ ├── get.py │ ├── login.py │ ├── main.py │ ├── s3.py │ ├── set.py │ └── stackn.py └── tests │ ├── __init__.py │ ├── test_config.json │ └── tests.py ├── components ├── s3-sync │ ├── Dockerfile │ └── run.sh └── studio │ ├── Dockerfile │ ├── Dockerfile.nginx │ ├── LICENSE │ ├── README.md │ ├── api │ ├── APIpermissions.py │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── models.py │ ├── public_views.py │ ├── serializers.py │ ├── tests.py │ ├── urls.py │ └── views.py │ ├── apps │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── fixtures │ │ ├── appcats_fixtures.json │ │ ├── apps_fixtures.json │ │ ├── intervals_fixtures.json │ │ └── periodic_tasks_fixtures.json │ ├── generate_form.py │ ├── helpers.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_initial.py │ │ ├── 0003_alter_apps_logo_alter_apps_logo_file.py │ │ ├── 0004_auto_20211213_1128.py │ │ ├── 0005_alter_apps_logo_file.py │ │ ├── 0006_auto_20211213_1407.py │ │ ├── 0007_alter_apps_logo_file.py │ │ ├── 0008_apps_user_can_create.py │ │ └── __init__.py │ ├── models.py │ ├── serialize.py │ ├── tasks.py │ ├── templates │ │ ├── app_table.html │ │ ├── appsettings.html │ │ ├── create.html │ │ ├── half_table.html │ │ ├── index_apps.html │ │ ├── logs.html │ │ └── new.html │ ├── tests.py │ ├── urls.py │ └── views.py │ ├── chartcontroller │ ├── controller.py │ └── values │ │ └── example.yaml │ ├── charts │ └── apps │ │ ├── docker-registry │ │ ├── chart │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── deployment.yaml │ │ │ │ ├── ingress.yaml │ │ │ │ ├── nginx_conf.yaml │ │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ ├── config.json │ │ └── logo.png │ │ ├── jupyter-lab │ │ ├── Dockerfile │ │ ├── chart │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── cli-settings.yaml │ │ │ │ ├── project-labs-configmap.yaml │ │ │ │ ├── project-labs-deployment.yaml │ │ │ │ ├── project-labs-ingress.yaml │ │ │ │ ├── project-labs-service.yaml │ │ │ │ ├── project-labs-stackn-settings.yaml │ │ │ │ ├── project-labs-user-secret.yaml │ │ │ │ └── pull-secret.yaml │ │ │ └── values.yaml │ │ ├── config.json │ │ └── logo.png │ │ ├── minio │ │ ├── chart │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── project-s3-deployment.yaml │ │ │ │ ├── project-s3-ingress.yaml │ │ │ │ └── project-s3-service.yaml │ │ │ └── values.yaml │ │ ├── config.json │ │ └── logo.png │ │ ├── mlflow-serve │ │ ├── chart │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── deployment.yaml │ │ │ │ ├── hpa.yaml │ │ │ │ ├── ingress.yaml │ │ │ │ ├── nginx_conf.yaml │ │ │ │ ├── nginx_model.yaml │ │ │ │ ├── pull-secret.yaml │ │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ ├── config.json │ │ └── logo.png │ │ ├── mlflow │ │ ├── chart │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── deployment.yaml │ │ │ │ ├── ingress.yaml │ │ │ │ ├── nginx_conf.yaml │ │ │ │ ├── service.yaml │ │ │ │ └── service_server.yaml │ │ │ └── values.yaml │ │ ├── config.json │ │ └── logo.png │ │ ├── pytorch-serve │ │ ├── chart │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── deployment.yaml │ │ │ │ ├── hpa.yaml │ │ │ │ ├── ingress.yaml │ │ │ │ ├── nginx_conf.yaml │ │ │ │ ├── nginx_model.yaml │ │ │ │ ├── service.yaml │ │ │ │ └── torch-config.yaml │ │ │ └── values.yaml │ │ ├── config.json │ │ └── logo.png │ │ ├── tensorflow-serve │ │ ├── chart │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── deployment.yaml │ │ │ │ ├── hpa.yaml │ │ │ │ ├── ingress.yaml │ │ │ │ ├── nginx_conf.yaml │ │ │ │ ├── nginx_model.yaml │ │ │ │ └── service.yaml │ │ │ └── values.yaml │ │ ├── config.json │ │ └── logo.png │ │ ├── volumeK8s │ │ ├── chart │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ └── pvc.yaml │ │ │ └── values.yaml │ │ ├── config.json │ │ └── logo.png │ │ └── vscode │ │ ├── chart │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── templates │ │ │ ├── cli-settings.yaml │ │ │ ├── deployment.yaml │ │ │ ├── ingress.yaml │ │ │ └── service.yaml │ │ └── values.yaml │ │ ├── config.json │ │ └── logo.png │ ├── cluster.conf │ ├── common │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── forms.py │ ├── migrations │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ ├── common │ │ │ ├── common_base.html │ │ │ ├── flash_messages.html │ │ │ ├── landing.html │ │ │ └── signup.html │ │ └── registration │ │ │ ├── logged_out.html │ │ │ ├── login.html │ │ │ ├── password_change_done.html │ │ │ ├── password_change_form.html │ │ │ ├── password_reset_complete.html │ │ │ ├── password_reset_confirm.html │ │ │ ├── password_reset_done.html │ │ │ ├── password_reset_email.html │ │ │ ├── password_reset_form.html │ │ │ ├── password_reset_subject.txt │ │ │ └── registration_complete.html │ ├── tests.py │ ├── urls.py │ └── views.py │ ├── deployments │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── exceptions.py │ ├── forms.py │ ├── helpers.py │ ├── migrations │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ └── deploy │ │ │ ├── add.html │ │ │ ├── cards.html │ │ │ ├── definition │ │ │ ├── add.html │ │ │ ├── edit.html │ │ │ └── list.html │ │ │ ├── edit.html │ │ │ ├── list.html │ │ │ ├── predict.html │ │ │ └── settings.html │ ├── urls.py │ └── views.py │ ├── docker-compose.yml │ ├── init.sh │ ├── manage.py │ ├── models │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── fixtures │ │ └── objecttype_fixtures.json │ ├── forms.py │ ├── helpers.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_initial.py │ │ ├── 0003_auto_20220125_1003.py │ │ ├── 0004_alter_model_version.py │ │ ├── 0005_alter_model_release_type.py │ │ ├── 0006_alter_model_release_type.py │ │ ├── 0007_alter_model_release_type.py │ │ ├── 0008_alter_model_release_type.py │ │ ├── 0009_auto_20220201_1137.py │ │ ├── 0010_alter_model_tags.py │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ ├── models │ │ │ ├── index.html │ │ │ └── model_create.html │ │ ├── models_details.html │ │ ├── models_details_private.html │ │ ├── models_details_public.html │ │ └── models_list.html │ ├── templatetags │ │ └── custom_tags.py │ ├── tests.py │ ├── urls.py │ └── views.py │ ├── monitor │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── dash_demo.py │ ├── helpers.py │ ├── migrations │ │ └── __init__.py │ ├── models.py │ ├── templates │ │ ├── monitor_new.html │ │ └── monitor_overview.html │ ├── tests.py │ ├── urls.py │ └── views.py │ ├── portal │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_initial.py │ │ └── __init__.py │ ├── models.py │ ├── tasks.py │ ├── templates │ │ └── portal │ │ │ ├── home.html │ │ │ └── index.html │ ├── tests.py │ ├── urls.py │ └── views.py │ ├── projects │ ├── __init__.py │ ├── admin.py │ ├── apps.py │ ├── exceptions.py │ ├── fixtures │ │ └── projects_templates.json │ ├── forms.py │ ├── helpers.py │ ├── migrations │ │ ├── 0001_initial.py │ │ ├── 0002_alter_projecttemplate_template.py │ │ ├── 0003_auto_20220211_1613.py │ │ ├── 0004_auto_20220602_1518.py │ │ └── __init__.py │ ├── models.py │ ├── static │ │ └── img │ │ │ └── logo.png │ ├── tasks.py │ ├── templates │ │ ├── project_create.html │ │ ├── project_templates.html │ │ └── projects │ │ │ ├── base.html │ │ │ ├── index.html │ │ │ ├── overview.html │ │ │ └── settings.html │ ├── tests.py │ ├── urls.py │ └── views.py │ ├── requirements.txt │ ├── scripts │ ├── __init__.py │ ├── load_apps_logo.py │ ├── nginx.conf │ ├── run_beat.sh │ ├── run_web.sh │ ├── run_worker.sh │ └── wait-for-it.sh │ ├── static │ ├── admin │ │ ├── css │ │ │ ├── autocomplete.css │ │ │ ├── base.css │ │ │ ├── changelists.css │ │ │ ├── dashboard.css │ │ │ ├── fonts.css │ │ │ ├── forms.css │ │ │ ├── login.css │ │ │ ├── nav_sidebar.css │ │ │ ├── responsive.css │ │ │ ├── responsive_rtl.css │ │ │ ├── rtl.css │ │ │ ├── vendor │ │ │ │ └── select2 │ │ │ │ │ ├── LICENSE-SELECT2.md │ │ │ │ │ ├── select2.css │ │ │ │ │ └── select2.min.css │ │ │ └── widgets.css │ │ ├── fonts │ │ │ ├── LICENSE.txt │ │ │ ├── README.txt │ │ │ ├── Roboto-Bold-webfont.woff │ │ │ ├── Roboto-Light-webfont.woff │ │ │ └── Roboto-Regular-webfont.woff │ │ ├── img │ │ │ ├── LICENSE │ │ │ ├── README.txt │ │ │ ├── calendar-icons.svg │ │ │ ├── gis │ │ │ │ ├── move_vertex_off.svg │ │ │ │ └── move_vertex_on.svg │ │ │ ├── icon-addlink.svg │ │ │ ├── icon-alert.svg │ │ │ ├── icon-calendar.svg │ │ │ ├── icon-changelink.svg │ │ │ ├── icon-clock.svg │ │ │ ├── icon-deletelink.svg │ │ │ ├── icon-no.svg │ │ │ ├── icon-unknown-alt.svg │ │ │ ├── icon-unknown.svg │ │ │ ├── icon-viewlink.svg │ │ │ ├── icon-yes.svg │ │ │ ├── inline-delete.svg │ │ │ ├── search.svg │ │ │ ├── selector-icons.svg │ │ │ ├── sorting-icons.svg │ │ │ ├── tooltag-add.svg │ │ │ └── tooltag-arrowright.svg │ │ └── js │ │ │ ├── SelectBox.js │ │ │ ├── SelectFilter2.js │ │ │ ├── actions.js │ │ │ ├── actions.min.js │ │ │ ├── admin │ │ │ ├── DateTimeShortcuts.js │ │ │ └── RelatedObjectLookups.js │ │ │ ├── autocomplete.js │ │ │ ├── calendar.js │ │ │ ├── cancel.js │ │ │ ├── change_form.js │ │ │ ├── collapse.js │ │ │ ├── collapse.min.js │ │ │ ├── core.js │ │ │ ├── inlines.js │ │ │ ├── inlines.min.js │ │ │ ├── jquery.init.js │ │ │ ├── nav_sidebar.js │ │ │ ├── popup_response.js │ │ │ ├── prepopulate.js │ │ │ ├── prepopulate.min.js │ │ │ ├── prepopulate_init.js │ │ │ ├── urlify.js │ │ │ └── vendor │ │ │ ├── jquery │ │ │ ├── LICENSE.txt │ │ │ ├── jquery.js │ │ │ └── jquery.min.js │ │ │ ├── select2 │ │ │ ├── LICENSE.md │ │ │ ├── i18n │ │ │ │ ├── af.js │ │ │ │ ├── ar.js │ │ │ │ ├── az.js │ │ │ │ ├── bg.js │ │ │ │ ├── bn.js │ │ │ │ ├── bs.js │ │ │ │ ├── ca.js │ │ │ │ ├── cs.js │ │ │ │ ├── da.js │ │ │ │ ├── de.js │ │ │ │ ├── dsb.js │ │ │ │ ├── el.js │ │ │ │ ├── en.js │ │ │ │ ├── es.js │ │ │ │ ├── et.js │ │ │ │ ├── eu.js │ │ │ │ ├── fa.js │ │ │ │ ├── fi.js │ │ │ │ ├── fr.js │ │ │ │ ├── gl.js │ │ │ │ ├── he.js │ │ │ │ ├── hi.js │ │ │ │ ├── hr.js │ │ │ │ ├── hsb.js │ │ │ │ ├── hu.js │ │ │ │ ├── hy.js │ │ │ │ ├── id.js │ │ │ │ ├── is.js │ │ │ │ ├── it.js │ │ │ │ ├── ja.js │ │ │ │ ├── ka.js │ │ │ │ ├── km.js │ │ │ │ ├── ko.js │ │ │ │ ├── lt.js │ │ │ │ ├── lv.js │ │ │ │ ├── mk.js │ │ │ │ ├── ms.js │ │ │ │ ├── nb.js │ │ │ │ ├── ne.js │ │ │ │ ├── nl.js │ │ │ │ ├── pl.js │ │ │ │ ├── ps.js │ │ │ │ ├── pt-BR.js │ │ │ │ ├── pt.js │ │ │ │ ├── ro.js │ │ │ │ ├── ru.js │ │ │ │ ├── sk.js │ │ │ │ ├── sl.js │ │ │ │ ├── sq.js │ │ │ │ ├── sr-Cyrl.js │ │ │ │ ├── sr.js │ │ │ │ ├── sv.js │ │ │ │ ├── th.js │ │ │ │ ├── tk.js │ │ │ │ ├── tr.js │ │ │ │ ├── uk.js │ │ │ │ ├── vi.js │ │ │ │ ├── zh-CN.js │ │ │ │ └── zh-TW.js │ │ │ ├── select2.full.js │ │ │ └── select2.full.min.js │ │ │ └── xregexp │ │ │ ├── LICENSE.txt │ │ │ ├── xregexp.js │ │ │ └── xregexp.min.js │ ├── css │ │ └── common.css │ ├── dist │ │ ├── css │ │ │ ├── custom.css │ │ │ ├── dark.css │ │ │ └── light.css │ │ ├── flags │ │ │ ├── ad.png │ │ │ ├── ae.png │ │ │ ├── af.png │ │ │ ├── ag.png │ │ │ ├── ai.png │ │ │ ├── al.png │ │ │ ├── am.png │ │ │ ├── an.png │ │ │ ├── ao.png │ │ │ ├── aq.png │ │ │ ├── ar.png │ │ │ ├── as.png │ │ │ ├── at.png │ │ │ ├── au.png │ │ │ ├── aw.png │ │ │ ├── ax.png │ │ │ ├── az.png │ │ │ ├── ba.png │ │ │ ├── bb.png │ │ │ ├── bd.png │ │ │ ├── be.png │ │ │ ├── bf.png │ │ │ ├── bg.png │ │ │ ├── bh.png │ │ │ ├── bi.png │ │ │ ├── bj.png │ │ │ ├── bl.png │ │ │ ├── bm.png │ │ │ ├── bn.png │ │ │ ├── bo.png │ │ │ ├── bq.png │ │ │ ├── br.png │ │ │ ├── bs.png │ │ │ ├── bt.png │ │ │ ├── bv.png │ │ │ ├── bw.png │ │ │ ├── by.png │ │ │ ├── bz.png │ │ │ ├── ca.png │ │ │ ├── cc.png │ │ │ ├── cd.png │ │ │ ├── cf.png │ │ │ ├── cg.png │ │ │ ├── ch.png │ │ │ ├── ci.png │ │ │ ├── ck.png │ │ │ ├── cl.png │ │ │ ├── cm.png │ │ │ ├── cn.png │ │ │ ├── co.png │ │ │ ├── cr.png │ │ │ ├── cu.png │ │ │ ├── cv.png │ │ │ ├── cw.png │ │ │ ├── cx.png │ │ │ ├── cy.png │ │ │ ├── cz.png │ │ │ ├── de.png │ │ │ ├── dj.png │ │ │ ├── dk.png │ │ │ ├── dm.png │ │ │ ├── do.png │ │ │ ├── dz.png │ │ │ ├── ec.png │ │ │ ├── ee.png │ │ │ ├── eg.png │ │ │ ├── eh.png │ │ │ ├── er.png │ │ │ ├── es.png │ │ │ ├── et.png │ │ │ ├── eu.png │ │ │ ├── fi.png │ │ │ ├── fj.png │ │ │ ├── fk.png │ │ │ ├── fm.png │ │ │ ├── fo.png │ │ │ ├── fr.png │ │ │ ├── ga.png │ │ │ ├── gb-eng.png │ │ │ ├── gb-nir.png │ │ │ ├── gb-sct.png │ │ │ ├── gb-wls.png │ │ │ ├── gb.png │ │ │ ├── gd.png │ │ │ ├── ge.png │ │ │ ├── gf.png │ │ │ ├── gg.png │ │ │ ├── gh.png │ │ │ ├── gi.png │ │ │ ├── gl.png │ │ │ ├── gm.png │ │ │ ├── gn.png │ │ │ ├── gp.png │ │ │ ├── gq.png │ │ │ ├── gr.png │ │ │ ├── gs.png │ │ │ ├── gt.png │ │ │ ├── gu.png │ │ │ ├── gw.png │ │ │ ├── gy.png │ │ │ ├── hk.png │ │ │ ├── hm.png │ │ │ ├── hn.png │ │ │ ├── hr.png │ │ │ ├── ht.png │ │ │ ├── hu.png │ │ │ ├── id.png │ │ │ ├── ie.png │ │ │ ├── il.png │ │ │ ├── im.png │ │ │ ├── in.png │ │ │ ├── io.png │ │ │ ├── iq.png │ │ │ ├── ir.png │ │ │ ├── is.png │ │ │ ├── it.png │ │ │ ├── je.png │ │ │ ├── jm.png │ │ │ ├── jo.png │ │ │ ├── jp.png │ │ │ ├── ke.png │ │ │ ├── kg.png │ │ │ ├── kh.png │ │ │ ├── ki.png │ │ │ ├── km.png │ │ │ ├── kn.png │ │ │ ├── kp.png │ │ │ ├── kr.png │ │ │ ├── kw.png │ │ │ ├── ky.png │ │ │ ├── kz.png │ │ │ ├── la.png │ │ │ ├── lb.png │ │ │ ├── lc.png │ │ │ ├── li.png │ │ │ ├── lk.png │ │ │ ├── lr.png │ │ │ ├── ls.png │ │ │ ├── lt.png │ │ │ ├── lu.png │ │ │ ├── lv.png │ │ │ ├── ly.png │ │ │ ├── ma.png │ │ │ ├── mc.png │ │ │ ├── md.png │ │ │ ├── me.png │ │ │ ├── mf.png │ │ │ ├── mg.png │ │ │ ├── mh.png │ │ │ ├── mk.png │ │ │ ├── ml.png │ │ │ ├── mm.png │ │ │ ├── mn.png │ │ │ ├── mo.png │ │ │ ├── mp.png │ │ │ ├── mq.png │ │ │ ├── mr.png │ │ │ ├── ms.png │ │ │ ├── mt.png │ │ │ ├── mu.png │ │ │ ├── mv.png │ │ │ ├── mw.png │ │ │ ├── mx.png │ │ │ ├── my.png │ │ │ ├── mz.png │ │ │ ├── na.png │ │ │ ├── nc.png │ │ │ ├── ne.png │ │ │ ├── nf.png │ │ │ ├── ng.png │ │ │ ├── ni.png │ │ │ ├── nl.png │ │ │ ├── no.png │ │ │ ├── np.png │ │ │ ├── nr.png │ │ │ ├── nu.png │ │ │ ├── nz.png │ │ │ ├── om.png │ │ │ ├── pa.png │ │ │ ├── pe.png │ │ │ ├── pf.png │ │ │ ├── pg.png │ │ │ ├── ph.png │ │ │ ├── pk.png │ │ │ ├── pl.png │ │ │ ├── pm.png │ │ │ ├── pn.png │ │ │ ├── pr.png │ │ │ ├── ps.png │ │ │ ├── pt.png │ │ │ ├── pw.png │ │ │ ├── py.png │ │ │ ├── qa.png │ │ │ ├── re.png │ │ │ ├── ro.png │ │ │ ├── rs.png │ │ │ ├── ru.png │ │ │ ├── rw.png │ │ │ ├── sa.png │ │ │ ├── sb.png │ │ │ ├── sc.png │ │ │ ├── sd.png │ │ │ ├── se.png │ │ │ ├── sg.png │ │ │ ├── sh.png │ │ │ ├── si.png │ │ │ ├── sj.png │ │ │ ├── sk.png │ │ │ ├── sl.png │ │ │ ├── sm.png │ │ │ ├── sn.png │ │ │ ├── so.png │ │ │ ├── sr.png │ │ │ ├── ss.png │ │ │ ├── st.png │ │ │ ├── sv.png │ │ │ ├── sx.png │ │ │ ├── sy.png │ │ │ ├── sz.png │ │ │ ├── tc.png │ │ │ ├── td.png │ │ │ ├── tf.png │ │ │ ├── tg.png │ │ │ ├── th.png │ │ │ ├── tj.png │ │ │ ├── tk.png │ │ │ ├── tl.png │ │ │ ├── tm.png │ │ │ ├── tn.png │ │ │ ├── to.png │ │ │ ├── tr.png │ │ │ ├── tt.png │ │ │ ├── tv.png │ │ │ ├── tw.png │ │ │ ├── tz.png │ │ │ ├── ua.png │ │ │ ├── ug.png │ │ │ ├── um.png │ │ │ ├── us.png │ │ │ ├── uy.png │ │ │ ├── uz.png │ │ │ ├── va.png │ │ │ ├── vc.png │ │ │ ├── ve.png │ │ │ ├── vg.png │ │ │ ├── vi.png │ │ │ ├── vn.png │ │ │ ├── vu.png │ │ │ ├── wf.png │ │ │ ├── ws.png │ │ │ ├── xk.png │ │ │ ├── ye.png │ │ │ ├── yt.png │ │ │ ├── za.png │ │ │ ├── zm.png │ │ │ └── zw.png │ │ ├── fonts │ │ │ ├── .gitkeep │ │ │ ├── fa-brands-400.eot │ │ │ ├── fa-brands-400.svg │ │ │ ├── fa-brands-400.ttf │ │ │ ├── fa-brands-400.woff │ │ │ ├── fa-brands-400.woff2 │ │ │ ├── fa-regular-400.eot │ │ │ ├── fa-regular-400.svg │ │ │ ├── fa-regular-400.ttf │ │ │ ├── fa-regular-400.woff │ │ │ ├── fa-regular-400.woff2 │ │ │ ├── fa-solid-900.eot │ │ │ ├── fa-solid-900.svg │ │ │ ├── fa-solid-900.ttf │ │ │ ├── fa-solid-900.woff │ │ │ └── fa-solid-900.woff2 │ │ ├── illustrations │ │ │ ├── customer-support.png │ │ │ ├── searching.png │ │ │ └── social.png │ │ ├── img │ │ │ ├── avatars │ │ │ │ └── avatar-default.png │ │ │ ├── brands │ │ │ │ └── bootstrap.svg │ │ │ └── flags │ │ │ │ ├── ad.png │ │ │ │ ├── ae.png │ │ │ │ ├── af.png │ │ │ │ ├── ag.png │ │ │ │ ├── ai.png │ │ │ │ ├── al.png │ │ │ │ ├── am.png │ │ │ │ ├── an.png │ │ │ │ ├── ao.png │ │ │ │ ├── aq.png │ │ │ │ ├── ar.png │ │ │ │ ├── as.png │ │ │ │ ├── at.png │ │ │ │ ├── au.png │ │ │ │ ├── aw.png │ │ │ │ ├── ax.png │ │ │ │ ├── az.png │ │ │ │ ├── ba.png │ │ │ │ ├── bb.png │ │ │ │ ├── bd.png │ │ │ │ ├── be.png │ │ │ │ ├── bf.png │ │ │ │ ├── bg.png │ │ │ │ ├── bh.png │ │ │ │ ├── bi.png │ │ │ │ ├── bj.png │ │ │ │ ├── bl.png │ │ │ │ ├── bm.png │ │ │ │ ├── bn.png │ │ │ │ ├── bo.png │ │ │ │ ├── bq.png │ │ │ │ ├── br.png │ │ │ │ ├── bs.png │ │ │ │ ├── bt.png │ │ │ │ ├── bv.png │ │ │ │ ├── bw.png │ │ │ │ ├── by.png │ │ │ │ ├── bz.png │ │ │ │ ├── ca.png │ │ │ │ ├── cc.png │ │ │ │ ├── cd.png │ │ │ │ ├── cf.png │ │ │ │ ├── cg.png │ │ │ │ ├── ch.png │ │ │ │ ├── ci.png │ │ │ │ ├── ck.png │ │ │ │ ├── cl.png │ │ │ │ ├── cm.png │ │ │ │ ├── cn.png │ │ │ │ ├── co.png │ │ │ │ ├── cr.png │ │ │ │ ├── cu.png │ │ │ │ ├── cv.png │ │ │ │ ├── cw.png │ │ │ │ ├── cx.png │ │ │ │ ├── cy.png │ │ │ │ ├── cz.png │ │ │ │ ├── de.png │ │ │ │ ├── dj.png │ │ │ │ ├── dk.png │ │ │ │ ├── dm.png │ │ │ │ ├── do.png │ │ │ │ ├── dz.png │ │ │ │ ├── ec.png │ │ │ │ ├── ee.png │ │ │ │ ├── eg.png │ │ │ │ ├── eh.png │ │ │ │ ├── er.png │ │ │ │ ├── es.png │ │ │ │ ├── et.png │ │ │ │ ├── eu.png │ │ │ │ ├── fi.png │ │ │ │ ├── fj.png │ │ │ │ ├── fk.png │ │ │ │ ├── fm.png │ │ │ │ ├── fo.png │ │ │ │ ├── fr.png │ │ │ │ ├── ga.png │ │ │ │ ├── gb-eng.png │ │ │ │ ├── gb-nir.png │ │ │ │ ├── gb-sct.png │ │ │ │ ├── gb-wls.png │ │ │ │ ├── gb.png │ │ │ │ ├── gd.png │ │ │ │ ├── ge.png │ │ │ │ ├── gf.png │ │ │ │ ├── gg.png │ │ │ │ ├── gh.png │ │ │ │ ├── gi.png │ │ │ │ ├── gl.png │ │ │ │ ├── gm.png │ │ │ │ ├── gn.png │ │ │ │ ├── gp.png │ │ │ │ ├── gq.png │ │ │ │ ├── gr.png │ │ │ │ ├── gs.png │ │ │ │ ├── gt.png │ │ │ │ ├── gu.png │ │ │ │ ├── gw.png │ │ │ │ ├── gy.png │ │ │ │ ├── hk.png │ │ │ │ ├── hm.png │ │ │ │ ├── hn.png │ │ │ │ ├── hr.png │ │ │ │ ├── ht.png │ │ │ │ ├── hu.png │ │ │ │ ├── id.png │ │ │ │ ├── ie.png │ │ │ │ ├── il.png │ │ │ │ ├── im.png │ │ │ │ ├── in.png │ │ │ │ ├── io.png │ │ │ │ ├── iq.png │ │ │ │ ├── ir.png │ │ │ │ ├── is.png │ │ │ │ ├── it.png │ │ │ │ ├── je.png │ │ │ │ ├── jm.png │ │ │ │ ├── jo.png │ │ │ │ ├── jp.png │ │ │ │ ├── ke.png │ │ │ │ ├── kg.png │ │ │ │ ├── kh.png │ │ │ │ ├── ki.png │ │ │ │ ├── km.png │ │ │ │ ├── kn.png │ │ │ │ ├── kp.png │ │ │ │ ├── kr.png │ │ │ │ ├── kw.png │ │ │ │ ├── ky.png │ │ │ │ ├── kz.png │ │ │ │ ├── la.png │ │ │ │ ├── lb.png │ │ │ │ ├── lc.png │ │ │ │ ├── li.png │ │ │ │ ├── lk.png │ │ │ │ ├── lr.png │ │ │ │ ├── ls.png │ │ │ │ ├── lt.png │ │ │ │ ├── lu.png │ │ │ │ ├── lv.png │ │ │ │ ├── ly.png │ │ │ │ ├── ma.png │ │ │ │ ├── mc.png │ │ │ │ ├── md.png │ │ │ │ ├── me.png │ │ │ │ ├── mf.png │ │ │ │ ├── mg.png │ │ │ │ ├── mh.png │ │ │ │ ├── mk.png │ │ │ │ ├── ml.png │ │ │ │ ├── mm.png │ │ │ │ ├── mn.png │ │ │ │ ├── mo.png │ │ │ │ ├── mp.png │ │ │ │ ├── mq.png │ │ │ │ ├── mr.png │ │ │ │ ├── ms.png │ │ │ │ ├── mt.png │ │ │ │ ├── mu.png │ │ │ │ ├── mv.png │ │ │ │ ├── mw.png │ │ │ │ ├── mx.png │ │ │ │ ├── my.png │ │ │ │ ├── mz.png │ │ │ │ ├── na.png │ │ │ │ ├── nc.png │ │ │ │ ├── ne.png │ │ │ │ ├── nf.png │ │ │ │ ├── ng.png │ │ │ │ ├── ni.png │ │ │ │ ├── nl.png │ │ │ │ ├── no.png │ │ │ │ ├── np.png │ │ │ │ ├── nr.png │ │ │ │ ├── nu.png │ │ │ │ ├── nz.png │ │ │ │ ├── om.png │ │ │ │ ├── pa.png │ │ │ │ ├── pe.png │ │ │ │ ├── pf.png │ │ │ │ ├── pg.png │ │ │ │ ├── ph.png │ │ │ │ ├── pk.png │ │ │ │ ├── pl.png │ │ │ │ ├── pm.png │ │ │ │ ├── pn.png │ │ │ │ ├── pr.png │ │ │ │ ├── ps.png │ │ │ │ ├── pt.png │ │ │ │ ├── pw.png │ │ │ │ ├── py.png │ │ │ │ ├── qa.png │ │ │ │ ├── re.png │ │ │ │ ├── ro.png │ │ │ │ ├── rs.png │ │ │ │ ├── ru.png │ │ │ │ ├── rw.png │ │ │ │ ├── sa.png │ │ │ │ ├── sb.png │ │ │ │ ├── sc.png │ │ │ │ ├── sd.png │ │ │ │ ├── se.png │ │ │ │ ├── sg.png │ │ │ │ ├── sh.png │ │ │ │ ├── si.png │ │ │ │ ├── sj.png │ │ │ │ ├── sk.png │ │ │ │ ├── sl.png │ │ │ │ ├── sm.png │ │ │ │ ├── sn.png │ │ │ │ ├── so.png │ │ │ │ ├── sr.png │ │ │ │ ├── ss.png │ │ │ │ ├── st.png │ │ │ │ ├── sv.png │ │ │ │ ├── sx.png │ │ │ │ ├── sy.png │ │ │ │ ├── sz.png │ │ │ │ ├── tc.png │ │ │ │ ├── td.png │ │ │ │ ├── tf.png │ │ │ │ ├── tg.png │ │ │ │ ├── th.png │ │ │ │ ├── tj.png │ │ │ │ ├── tk.png │ │ │ │ ├── tl.png │ │ │ │ ├── tm.png │ │ │ │ ├── tn.png │ │ │ │ ├── to.png │ │ │ │ ├── tr.png │ │ │ │ ├── tt.png │ │ │ │ ├── tv.png │ │ │ │ ├── tw.png │ │ │ │ ├── tz.png │ │ │ │ ├── ua.png │ │ │ │ ├── ug.png │ │ │ │ ├── um.png │ │ │ │ ├── us.png │ │ │ │ ├── uy.png │ │ │ │ ├── uz.png │ │ │ │ ├── va.png │ │ │ │ ├── vc.png │ │ │ │ ├── ve.png │ │ │ │ ├── vg.png │ │ │ │ ├── vi.png │ │ │ │ ├── vn.png │ │ │ │ ├── vu.png │ │ │ │ ├── wf.png │ │ │ │ ├── ws.png │ │ │ │ ├── xk.png │ │ │ │ ├── ye.png │ │ │ │ ├── yt.png │ │ │ │ ├── za.png │ │ │ │ ├── zm.png │ │ │ │ └── zw.png │ │ └── js │ │ │ ├── app.js │ │ │ ├── app.js.LICENSE.txt │ │ │ └── settings.js │ ├── fonts │ │ ├── .gitkeep │ │ ├── fa-brands-400.eot │ │ ├── fa-brands-400.svg │ │ ├── fa-brands-400.ttf │ │ ├── fa-brands-400.woff │ │ ├── fa-brands-400.woff2 │ │ ├── fa-regular-400.eot │ │ ├── fa-regular-400.svg │ │ ├── fa-regular-400.ttf │ │ ├── fa-regular-400.woff │ │ ├── fa-regular-400.woff2 │ │ ├── fa-solid-900.eot │ │ ├── fa-solid-900.svg │ │ ├── fa-solid-900.ttf │ │ ├── fa-solid-900.woff │ │ └── fa-solid-900.woff2 │ ├── grafana │ │ └── grafana_dashboard.json │ ├── images │ │ ├── building.jpg │ │ ├── favicon.ico │ │ ├── fedn.png │ │ ├── logo.png │ │ ├── patterns │ │ │ ├── image-10.png │ │ │ ├── image-11.png │ │ │ ├── image-12.png │ │ │ ├── image-13.png │ │ │ ├── image-8.png │ │ │ └── image-9.png │ │ └── stackn.png │ ├── js │ │ ├── app.js │ │ ├── app.js.LICENSE.txt │ │ ├── common.js │ │ ├── select2.js │ │ └── settings.js │ └── vendor │ │ ├── bootstrap │ │ ├── js │ │ │ ├── bootstrap.bundle.js │ │ │ ├── bootstrap.bundle.js.map │ │ │ ├── bootstrap.bundle.min.js │ │ │ ├── bootstrap.bundle.min.js.map │ │ │ ├── bootstrap.js │ │ │ ├── bootstrap.js.map │ │ │ ├── bootstrap.min.js │ │ │ └── bootstrap.min.js.map │ │ └── scss │ │ │ ├── _alert.scss │ │ │ ├── _badge.scss │ │ │ ├── _breadcrumb.scss │ │ │ ├── _button-group.scss │ │ │ ├── _buttons.scss │ │ │ ├── _card.scss │ │ │ ├── _carousel.scss │ │ │ ├── _close.scss │ │ │ ├── _code.scss │ │ │ ├── _custom-forms.scss │ │ │ ├── _dropdown.scss │ │ │ ├── _forms.scss │ │ │ ├── _functions.scss │ │ │ ├── _grid.scss │ │ │ ├── _images.scss │ │ │ ├── _input-group.scss │ │ │ ├── _jumbotron.scss │ │ │ ├── _list-group.scss │ │ │ ├── _media.scss │ │ │ ├── _mixins.scss │ │ │ ├── _modal.scss │ │ │ ├── _nav.scss │ │ │ ├── _navbar.scss │ │ │ ├── _pagination.scss │ │ │ ├── _popover.scss │ │ │ ├── _print.scss │ │ │ ├── _progress.scss │ │ │ ├── _reboot.scss │ │ │ ├── _root.scss │ │ │ ├── _spinners.scss │ │ │ ├── _tables.scss │ │ │ ├── _toasts.scss │ │ │ ├── _tooltip.scss │ │ │ ├── _transitions.scss │ │ │ ├── _type.scss │ │ │ ├── _utilities.scss │ │ │ ├── _variables.scss │ │ │ ├── bootstrap-grid.scss │ │ │ ├── bootstrap-reboot.scss │ │ │ ├── bootstrap.scss │ │ │ ├── mixins │ │ │ ├── _alert.scss │ │ │ ├── _background-variant.scss │ │ │ ├── _badge.scss │ │ │ ├── _border-radius.scss │ │ │ ├── _box-shadow.scss │ │ │ ├── _breakpoints.scss │ │ │ ├── _buttons.scss │ │ │ ├── _caret.scss │ │ │ ├── _clearfix.scss │ │ │ ├── _deprecate.scss │ │ │ ├── _float.scss │ │ │ ├── _forms.scss │ │ │ ├── _gradients.scss │ │ │ ├── _grid-framework.scss │ │ │ ├── _grid.scss │ │ │ ├── _hover.scss │ │ │ ├── _image.scss │ │ │ ├── _list-group.scss │ │ │ ├── _lists.scss │ │ │ ├── _nav-divider.scss │ │ │ ├── _pagination.scss │ │ │ ├── _reset-text.scss │ │ │ ├── _resize.scss │ │ │ ├── _screen-reader.scss │ │ │ ├── _size.scss │ │ │ ├── _table-row.scss │ │ │ ├── _text-emphasis.scss │ │ │ ├── _text-hide.scss │ │ │ ├── _text-truncate.scss │ │ │ ├── _transition.scss │ │ │ └── _visibility.scss │ │ │ ├── utilities │ │ │ ├── _align.scss │ │ │ ├── _background.scss │ │ │ ├── _borders.scss │ │ │ ├── _clearfix.scss │ │ │ ├── _display.scss │ │ │ ├── _embed.scss │ │ │ ├── _flex.scss │ │ │ ├── _float.scss │ │ │ ├── _overflow.scss │ │ │ ├── _position.scss │ │ │ ├── _screenreaders.scss │ │ │ ├── _shadows.scss │ │ │ ├── _sizing.scss │ │ │ ├── _spacing.scss │ │ │ ├── _stretched-link.scss │ │ │ ├── _text.scss │ │ │ └── _visibility.scss │ │ │ └── vendor │ │ │ └── _rfs.scss │ │ ├── jquery-easing │ │ ├── jquery.easing.compatibility.js │ │ ├── jquery.easing.js │ │ └── jquery.easing.min.js │ │ └── jquery │ │ ├── jquery.js │ │ ├── jquery.min.js │ │ ├── jquery.min.map │ │ ├── jquery.slim.js │ │ ├── jquery.slim.min.js │ │ └── jquery.slim.min.map │ ├── studio │ ├── __init__.py │ ├── asgi.py │ ├── celery.py │ ├── routing.py │ ├── settings.py │ ├── urls.py │ ├── version.py │ ├── views.py │ └── wsgi.py │ └── templates │ ├── 403.html │ └── base.html ├── docs ├── .nojekyll ├── README.md ├── _navbar.md ├── cli.md ├── images │ ├── STACKn_overview.svg │ ├── apps-from-overview.gif │ ├── apps-from-side-panel.gif │ ├── create-project.gif │ ├── project-overview.gif │ ├── stackn_diagram.png │ └── stackn_serve_overview.png ├── index.html ├── releasenotes.md └── tutorial.md └── examples ├── mlflow-serve └── diabetes-sklearn │ ├── MLproject │ ├── README.md │ ├── environment.yaml │ ├── tests │ ├── env_test.yaml │ └── tests │ └── train_diabetes.py └── tensorflow-serve └── mnist-keras ├── README.md ├── build.sh ├── entrypoint.py ├── init_venv.sh ├── requirements.txt ├── seed.npz └── tests └── tests /.ci/serve_mlflow.json: -------------------------------------------------------------------------------- 1 | { 2 | "app_name": "ElasticNet", 3 | "slug": "mlflow-serve", 4 | "model": 2, 5 | "environment": "MLflow Serving", 6 | "flavor": "Medium", 7 | "app_action": "Create" 8 | } -------------------------------------------------------------------------------- /.ci/serve_tf.json: -------------------------------------------------------------------------------- 1 | { 2 | "app_name": "mnist-keras", 3 | "slug": "tensorflow-serve", 4 | "model": 1, 5 | "flavor": "Medium", 6 | "app_action": "Create" 7 | } -------------------------------------------------------------------------------- /.ci/test.json: -------------------------------------------------------------------------------- 1 | { 2 | "app_name": "test", 3 | "slug": "jupyter-lab", 4 | "app:volumeK8s": ["project-vol"], 5 | "environment": "Jupyter Lab", 6 | "flavor": "Medium", 7 | "app_action": "Create" 8 | } -------------------------------------------------------------------------------- /cli/MANIFEST.in: -------------------------------------------------------------------------------- 1 | include scaleout/cli/default-project.tar.gz -------------------------------------------------------------------------------- /cli/stackn/__init__.py: -------------------------------------------------------------------------------- 1 | from .create import create 2 | from .delete import delete 3 | from .get import get 4 | from .login import login 5 | from .main import main 6 | from .set import set 7 | -------------------------------------------------------------------------------- /cli/tests/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scaleoutsystems/stackn/05dc574a4d9e176ea735161ac9cb157d8a03197f/cli/tests/__init__.py -------------------------------------------------------------------------------- /components/s3-sync/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:18.04 2 | 3 | RUN apt-get update && apt-get install -y s3fs 4 | 5 | COPY run.sh /run.sh 6 | ENTRYPOINT exec /run.sh 7 | -------------------------------------------------------------------------------- /components/studio/Dockerfile.nginx: -------------------------------------------------------------------------------- 1 | FROM nginx:alpine 2 | 3 | RUN mkdir -p /etc/nginx/html 4 | COPY static /etc/nginx/html/static -------------------------------------------------------------------------------- /components/studio/README.md: -------------------------------------------------------------------------------- 1 | # STACKn Studio 2 | Studio is the main UI component of the STACKn solution. 3 | ### Install with helm chart 4 | 5 | 6 | 7 | 8 | ### License 9 | 10 | See LICENSE agreement. 11 | -------------------------------------------------------------------------------- /components/studio/api/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scaleoutsystems/stackn/05dc574a4d9e176ea735161ac9cb157d8a03197f/components/studio/api/__init__.py -------------------------------------------------------------------------------- /components/studio/api/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | -------------------------------------------------------------------------------- /components/studio/api/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class ApiConfig(AppConfig): 5 | name = 'api' 6 | verbose_name = 'Studio API' 7 | -------------------------------------------------------------------------------- /components/studio/api/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /components/studio/api/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /components/studio/apps/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scaleoutsystems/stackn/05dc574a4d9e176ea735161ac9cb157d8a03197f/components/studio/apps/__init__.py -------------------------------------------------------------------------------- /components/studio/apps/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | from .models import (AppCategories, AppInstance, AppPermission, Apps, 4 | AppStatus, ResourceData) 5 | 6 | admin.site.register(Apps) 7 | admin.site.register(AppInstance) 8 | admin.site.register(AppCategories) 9 | admin.site.register(AppPermission) 10 | admin.site.register(ResourceData) 11 | admin.site.register(AppStatus) 12 | -------------------------------------------------------------------------------- /components/studio/apps/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class AppsConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'apps' 7 | -------------------------------------------------------------------------------- /components/studio/apps/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scaleoutsystems/stackn/05dc574a4d9e176ea735161ac9cb157d8a03197f/components/studio/apps/migrations/__init__.py -------------------------------------------------------------------------------- /components/studio/chartcontroller/values/example.yaml: -------------------------------------------------------------------------------- 1 | Here are stored the helm chart values.yaml files for apps installed by STACKn. 2 | 3 | -------------------------------------------------------------------------------- /components/studio/charts/apps/docker-registry/chart/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | appVersion: "0.2" 3 | description: A Helm chart for Scaleout Docker Registry App 4 | name: Docker Registry 5 | version: 0.0.2 6 | -------------------------------------------------------------------------------- /components/studio/charts/apps/docker-registry/chart/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ .Values.service.name }} 5 | namespace: {{ .Values.namespace }} 6 | spec: 7 | ports: 8 | - protocol: TCP 9 | port: {{ .Values.service.port }} 10 | targetPort: {{ .Values.service.targetport }} 11 | selector: 12 | release: {{ .Release.Name }} 13 | -------------------------------------------------------------------------------- /components/studio/charts/apps/docker-registry/chart/values.yaml: -------------------------------------------------------------------------------- 1 | namespace: default 2 | volumes: {} 3 | 4 | credentials: 5 | username: admin 6 | password: password 7 | 8 | ingress: 9 | v1beta1: false 10 | secretName: prod-ingress -------------------------------------------------------------------------------- /components/studio/charts/apps/docker-registry/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scaleoutsystems/stackn/05dc574a4d9e176ea735161ac9cb157d8a03197f/components/studio/charts/apps/docker-registry/logo.png -------------------------------------------------------------------------------- /components/studio/charts/apps/jupyter-lab/chart/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | appVersion: "0.1" 3 | description: A Helm chart for Scaleout Labs 4 | name: lab 5 | version: 0.0.1 6 | -------------------------------------------------------------------------------- /components/studio/charts/apps/jupyter-lab/chart/templates/project-labs-stackn-settings.yaml: -------------------------------------------------------------------------------- 1 | kind: ConfigMap 2 | apiVersion: v1 3 | metadata: 4 | name: {{ .Release.Name }}-project-labs-stackn-settings 5 | namespace: {{ .Values.namespace }} 6 | data: 7 | # Configuration values can be set as key-value properties 8 | project.yaml: |- 9 | {{ .Values.settings_file | indent 4 }} -------------------------------------------------------------------------------- /components/studio/charts/apps/jupyter-lab/chart/templates/project-labs-user-secret.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: {{ .Release.Name }}-project-labs-user-settings 5 | namespace: {{ .Values.namespace }} 6 | type: Opaque 7 | stringData: 8 | user.yaml: |- 9 | {{ .Values.user_settings_file | indent 4 }} -------------------------------------------------------------------------------- /components/studio/charts/apps/jupyter-lab/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scaleoutsystems/stackn/05dc574a4d9e176ea735161ac9cb157d8a03197f/components/studio/charts/apps/jupyter-lab/logo.png -------------------------------------------------------------------------------- /components/studio/charts/apps/minio/chart/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | appVersion: "0.1" 3 | description: A Helm chart for Scaleout Minio App 4 | name: Minio 5 | version: 0.0.1 -------------------------------------------------------------------------------- /components/studio/charts/apps/minio/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scaleoutsystems/stackn/05dc574a4d9e176ea735161ac9cb157d8a03197f/components/studio/charts/apps/minio/logo.png -------------------------------------------------------------------------------- /components/studio/charts/apps/mlflow-serve/chart/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | appVersion: "0.1" 3 | description: A Helm chart for Scaleout Model Deployment 4 | name: model-deployment 5 | version: 0.0.1 6 | -------------------------------------------------------------------------------- /components/studio/charts/apps/mlflow-serve/chart/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ .Release.Name }}-mlflow-svc 5 | namespace: {{ .Values.namespace }} 6 | labels: 7 | run: {{ .Values.appname }}-svc 8 | spec: 9 | ports: 10 | - protocol: TCP 11 | port: 80 12 | targetPort: 5000 13 | selector: 14 | release: {{ .Release.Name }} -------------------------------------------------------------------------------- /components/studio/charts/apps/mlflow-serve/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scaleoutsystems/stackn/05dc574a4d9e176ea735161ac9cb157d8a03197f/components/studio/charts/apps/mlflow-serve/logo.png -------------------------------------------------------------------------------- /components/studio/charts/apps/mlflow/chart/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | appVersion: "0.1" 3 | description: A Helm chart for Scaleout MLFlow App 4 | name: MLFlow 5 | version: 0.0.1 -------------------------------------------------------------------------------- /components/studio/charts/apps/mlflow/chart/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ .Values.service.name }}-ui 5 | namespace: {{ .Values.namespace }} 6 | labels: 7 | run: {{ .Release.Name }}-mlflow 8 | spec: 9 | ports: 10 | - port: 80 11 | targetPort: 9090 12 | protocol: TCP 13 | selector: 14 | release: {{ .Release.Name }} -------------------------------------------------------------------------------- /components/studio/charts/apps/mlflow/chart/templates/service_server.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ .Values.service.name }} 5 | namespace: {{ .Values.namespace }} 6 | labels: 7 | run: {{ .Release.Name }}-mlflow 8 | spec: 9 | ports: 10 | - port: 5000 11 | targetPort: 5000 12 | protocol: TCP 13 | selector: 14 | release: {{ .Release.Name }} -------------------------------------------------------------------------------- /components/studio/charts/apps/mlflow/chart/values.yaml: -------------------------------------------------------------------------------- 1 | namespace: default 2 | volumes: {} 3 | 4 | ingress: 5 | v1beta1: false 6 | secretName: prod-ingress -------------------------------------------------------------------------------- /components/studio/charts/apps/mlflow/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scaleoutsystems/stackn/05dc574a4d9e176ea735161ac9cb157d8a03197f/components/studio/charts/apps/mlflow/logo.png -------------------------------------------------------------------------------- /components/studio/charts/apps/pytorch-serve/chart/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | appVersion: "0.1" 3 | description: A Helm chart for Scaleout PyTorch Serve Deployment 4 | name: torchserve 5 | version: 0.1.0 6 | -------------------------------------------------------------------------------- /components/studio/charts/apps/pytorch-serve/chart/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ $.Release.Name }}-pytorch-svc 5 | namespace: {{ .Values.namespace }} 6 | spec: 7 | ports: 8 | - protocol: TCP 9 | port: 80 10 | targetPort: 8080 11 | selector: 12 | release: {{ $.Release.Name }} -------------------------------------------------------------------------------- /components/studio/charts/apps/pytorch-serve/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scaleoutsystems/stackn/05dc574a4d9e176ea735161ac9cb157d8a03197f/components/studio/charts/apps/pytorch-serve/logo.png -------------------------------------------------------------------------------- /components/studio/charts/apps/tensorflow-serve/chart/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | appVersion: "0.1" 3 | description: A Helm chart for Scaleout Tensorflow Serving Deployment 4 | name: tensorflow serving 5 | version: 0.1.0 6 | -------------------------------------------------------------------------------- /components/studio/charts/apps/tensorflow-serve/chart/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ $.Release.Name }}-tf-svc 5 | namespace: {{ .Values.namespace }} 6 | labels: 7 | run: {{ .Values.appname }} 8 | spec: 9 | ports: 10 | - protocol: TCP 11 | port: 80 12 | targetPort: 8501 13 | selector: 14 | release: {{ $.Release.Name }} -------------------------------------------------------------------------------- /components/studio/charts/apps/tensorflow-serve/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scaleoutsystems/stackn/05dc574a4d9e176ea735161ac9cb157d8a03197f/components/studio/charts/apps/tensorflow-serve/logo.png -------------------------------------------------------------------------------- /components/studio/charts/apps/volumeK8s/chart/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | appVersion: "0.1" 3 | description: A Helm chart for Scaleout Volumes 4 | name: volumes 5 | version: 0.0.1 6 | -------------------------------------------------------------------------------- /components/studio/charts/apps/volumeK8s/chart/values.yaml: -------------------------------------------------------------------------------- 1 | accessModes: ReadWriteMany 2 | storageClass: default 3 | namespace: default 4 | 5 | appname: volumeK8s 6 | project: 7 | name: project 8 | slug: project-slug 9 | 10 | volume: 11 | size: 2Gi 12 | storageClass: false 13 | accessModes: ReadWriteMany 14 | -------------------------------------------------------------------------------- /components/studio/charts/apps/volumeK8s/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scaleoutsystems/stackn/05dc574a4d9e176ea735161ac9cb157d8a03197f/components/studio/charts/apps/volumeK8s/logo.png -------------------------------------------------------------------------------- /components/studio/charts/apps/vscode/chart/Chart.yaml: -------------------------------------------------------------------------------- 1 | # https://github.com/coder/code-server 2 | apiVersion: v1 3 | appVersion: "0.1" 4 | description: A Helm chart for VS code in the browser 5 | name: vscode 6 | version: 0.0.1 7 | -------------------------------------------------------------------------------- /components/studio/charts/apps/vscode/chart/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ .Values.service.name }} 5 | namespace: {{ .Values.namespace }} 6 | labels: 7 | run: {{ .Release.Name }}-vscode 8 | spec: 9 | ports: 10 | - protocol: TCP 11 | port: {{ .Values.service.port }} 12 | targetPort: {{ .Values.service.targetport }} 13 | selector: 14 | release: {{ $.Release.Name }} -------------------------------------------------------------------------------- /components/studio/charts/apps/vscode/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scaleoutsystems/stackn/05dc574a4d9e176ea735161ac9cb157d8a03197f/components/studio/charts/apps/vscode/logo.png -------------------------------------------------------------------------------- /components/studio/cluster.conf: -------------------------------------------------------------------------------- 1 | # This file is meant for local development via docker-compose 2 | # Copy your kube config here by executing: `microk8s.config > cluster.conf` 3 | -------------------------------------------------------------------------------- /components/studio/common/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scaleoutsystems/stackn/05dc574a4d9e176ea735161ac9cb157d8a03197f/components/studio/common/__init__.py -------------------------------------------------------------------------------- /components/studio/common/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /components/studio/common/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class CommonConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'common' 7 | -------------------------------------------------------------------------------- /components/studio/common/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scaleoutsystems/stackn/05dc574a4d9e176ea735161ac9cb157d8a03197f/components/studio/common/migrations/__init__.py -------------------------------------------------------------------------------- /components/studio/common/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /components/studio/common/templates/registration/password_reset_subject.txt: -------------------------------------------------------------------------------- 1 | {% load i18n %}{% autoescape off %} 2 | {% blocktrans %}Password reset on {{ site_name }}{% endblocktrans %} 3 | {% endautoescape %} -------------------------------------------------------------------------------- /components/studio/common/tests.py: -------------------------------------------------------------------------------- 1 | from django.test import TestCase 2 | 3 | # Create your tests here. 4 | -------------------------------------------------------------------------------- /components/studio/deployments/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scaleoutsystems/stackn/05dc574a4d9e176ea735161ac9cb157d8a03197f/components/studio/deployments/__init__.py -------------------------------------------------------------------------------- /components/studio/deployments/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # from .models import DeploymentDefinition, DeploymentInstance, HelmResource 4 | 5 | # admin.site.register(HelmResource) 6 | # admin.site.register(DeploymentDefinition) 7 | # admin.site.register(DeploymentInstance) 8 | -------------------------------------------------------------------------------- /components/studio/deployments/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class DeploymentsConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'deployments' 7 | verbose_name = 'Studio Deployments' -------------------------------------------------------------------------------- /components/studio/deployments/exceptions.py: -------------------------------------------------------------------------------- 1 | class ModelDeploymentException(Exception): 2 | pass -------------------------------------------------------------------------------- /components/studio/deployments/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scaleoutsystems/stackn/05dc574a4d9e176ea735161ac9cb157d8a03197f/components/studio/deployments/migrations/__init__.py -------------------------------------------------------------------------------- /components/studio/models/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scaleoutsystems/stackn/05dc574a4d9e176ea735161ac9cb157d8a03197f/components/studio/models/__init__.py -------------------------------------------------------------------------------- /components/studio/models/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | from .models import Metadata, Model, ModelLog, ObjectType 4 | 5 | admin.site.register(Model) 6 | admin.site.register(ObjectType) 7 | admin.site.register(ModelLog) 8 | admin.site.register(Metadata) 9 | -------------------------------------------------------------------------------- /components/studio/models/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class ModelsConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'models' 7 | verbose_name = 'Studio Models' 8 | -------------------------------------------------------------------------------- /components/studio/models/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scaleoutsystems/stackn/05dc574a4d9e176ea735161ac9cb157d8a03197f/components/studio/models/migrations/__init__.py -------------------------------------------------------------------------------- /components/studio/monitor/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scaleoutsystems/stackn/05dc574a4d9e176ea735161ac9cb157d8a03197f/components/studio/monitor/__init__.py -------------------------------------------------------------------------------- /components/studio/monitor/admin.py: -------------------------------------------------------------------------------- 1 | from django.contrib import admin 2 | 3 | # Register your models here. 4 | -------------------------------------------------------------------------------- /components/studio/monitor/apps.py: -------------------------------------------------------------------------------- 1 | from django.apps import AppConfig 2 | 3 | 4 | class MonitorConfig(AppConfig): 5 | default_auto_field = 'django.db.models.BigAutoField' 6 | name = 'monitor' 7 | verbose_name = 'Studio Monitor' 8 | -------------------------------------------------------------------------------- /components/studio/monitor/migrations/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scaleoutsystems/stackn/05dc574a4d9e176ea735161ac9cb157d8a03197f/components/studio/monitor/migrations/__init__.py -------------------------------------------------------------------------------- /components/studio/monitor/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /components/studio/monitor/templates/monitor_overview.html: -------------------------------------------------------------------------------- 1 | {% extends 'baseproject.html' %} 2 | 3 | {% block content %} 4 | 5 |