Skip to content
This repository was archived by the owner on Mar 17, 2024. It is now read-only.

Files

Latest commit

 

History

History

cli

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

alt text

STACKn CLI

Warning - This is CLI is in a experimental stage. No guarantees provided.

Installation

git clone

Recommended to not "taint" your global environment.

Create local environment

python3 -m venv env

Activate the local environment

source env/bin/activate

Install the module and pull dependencies (automagically.)

  • . or the directory where scaleout-cli module is located.
python3 -m pip install -e .

Basic usage

  • Access help
stackn --help
  • login to studio:
stackn login -u <username> -p <password> --url <studio-url>
  • List project templates
stackn get project-templates
  • create project:
stackn create project -t <project template | default: default>
  • list projects:
stackn get projects
  • list app instances:
stackn get app
  • create model object:
stackn create model-obj -t <type> -v <version>
  • list model objects:
stackn get model-obj -t <type>
  • switch current project
stackn set current -p <project-name>

Admin usage

  • create app templates (based on helm charts). See /components/studio/charts for examples. config.json is required. Run inside app folder.
stackn create app
  • create project templates. Requires template.json at CWD. Add image.png inside CWD to imbed image in Studio. Run inside project template folder.
stackn create projecttemplate

Example template.json:

{
  "name": "Test",
  "slug": "test",
  "description": "test project template",
  "template": {
    "flavors": {
        "Medium": {
            "cpu": {
                "requirement": "100m",
                "limit": "1000m"
            },
            "mem": {
                "requirement": "1Gi",
                "limit": "8Gi"
            },
            "gpu": {
                "requirement": "0",
                "limit": "0"
            },
            "ephmem": {
                "requirement": "50Mi",
                "limit": "100Mi"
            }
        }
    },
    "environments": {
        "Jupyter Lab": {
            "repository": "ghcr.io/scaleoutsystems/stackn",
            "image": "jupyter-stackn:develop",
            "app": "jupyter-lab"
        }
    },
    "apps": {
        "minio-vol": {
            "slug": "volumeK8s",
            "volume.size": "5Gi",
            "permission": "project",
            "volume.accessModes": "ReadWriteMany",
            "volume.storageClass": "nfs-csi",
            "storageClass": "nfs-csi"
        },
        "project-vol": {
            "slug": "volumeK8s",
            "volume.size": "5Gi",
            "permission": "project",
            "volume.accessModes": "ReadWriteMany",
            "volume.storageClass": "nfs-csi",
            "storageClass": "nfs-csi"
        },
        "project-minio": {
            "slug": "minio",
            "app:volumeK8s": ["minio-vol"],
            "credentials.access_key": "accesskey2",
            "credentials.secret_key": "secretkey193",
            "permission": "project"
        },
        "jupyter-lab": {
            "slug": "jupyter-lab",
            "app:volumeK8s": ["project-vol"],
            "environment": "Jupyter Lab",
            "permission": "project",
            "flavor": "Medium"
        }
    },
    "settings": {
        "project-S3": "project-minio" 
    }
  }
}