Managing Projects

Projects provide logical separation within an organization. Use them to organize environments by team, purpose, or lifecycle stage.

Project Structure

Organization
├── Project: default
│   ├── Environments
│   │   ├── dev-env-1
│   │   └── dev-env-2
│   └── Blueprints
│       └── custom-blueprint
├── Project: production
│   ├── Environments
│   │   └── prod-demo
│   └── Blueprints
└── Project: training
    ├── Environments
    │   ├── workshop-march
    │   └── workshop-april
    └── Blueprints
        ├── k8s-basics
        └── cicd-workshop

Creating Projects

Via Web Console

  1. Navigate to your organization dashboard
  2. Click “New Project” button
  3. Enter project details:
    • Name: Unique identifier within the organization
    • Description: Optional description
  4. Click “Create Project”

Via CLI

# Create a project
teactl project create training --description "Training workshop environments"

# Create in specific organization
teactl project create demos --org client-company

Default Project

Every organization has a default project created automatically. It’s used when no project is specified:

# These create environments in the default project
teactl env create --blueprint k8s-basics
teactl env create my-env --blueprint k8s-basics

# Explicitly specify a project
teactl env create --blueprint k8s-basics --project training

Project Settings

General Settings

SettingDescription
NameUnique identifier (cannot be changed)
DescriptionHuman-readable description

Update via CLI:

teactl project update training --description "Advanced K8s training labs"

Project Dashboard

The project dashboard shows:

  • Environment Count: Active, sleeping, stopped environments
  • Resource Usage: Compute and storage consumption
  • Recent Activity: Environment operations, blueprint changes
  • Quick Actions: Create environment, upload blueprint

Switching Projects

Via Web Console

  • Use the project dropdown in the sidebar
  • Or click project name in breadcrumbs

Via CLI

# Switch to a project
teactl project switch training

# View current context
teactl config get current-context
# Output: acme-corp/training

# Override for single command
teactl env list --project production

Project Access

By default, all organization members can access all projects. Future releases will include project-level access controls.

Current Model

RoleAccess
AdminAll projects, full control
MemberAll projects, manage own environments

Planned Features

  • Project-specific member assignments
  • Read-only project access
  • Project quotas and limits

Deleting Projects

Requirements

  • You must be an organization admin
  • The default project cannot be deleted

Via Web Console

  1. Go to Project Settings > Danger Zone
  2. Click “Delete Project”
  3. Confirm by typing the project name
  4. Click “Permanently Delete”

Via CLI

# Interactive deletion
teactl project delete old-project

# Force delete (stops running environments)
teactl project delete old-project --yes --force

Best Practices

Project Organization Strategies

By Environment Type:

├── development    # Dev/test environments
├── staging        # Pre-production
├── production     # Production demos, showcases
└── training       # Workshop and training

By Team:

├── team-alpha     # Alpha team's environments
├── team-beta      # Beta team's environments
└── shared         # Shared resources

By Client (Agencies):

├── client-acme    # ACME Corp work
├── client-globex  # Globex work
└── internal       # Internal projects

Naming Conventions

  • Use lowercase with hyphens: k8s-training, cicd-demos
  • Be descriptive but concise
  • Include date for time-bound projects: workshop-2024-03

Resource Management

  1. Regular cleanup - Delete unused projects to reduce clutter
  2. Archive blueprints - Keep useful blueprints, remove experimental ones
  3. Monitor usage - Track which projects consume the most resources
  4. Set TTLs - Configure environment TTLs to auto-cleanup

Project Quotas (Future)

Planned quota features:

  • Maximum concurrent environments per project
  • Compute limits (vCPU-hours)
  • Storage limits
  • Cost budgets with alerts

Transferring Resources

Moving Environments Between Projects

Currently, environments cannot be moved between projects. To relocate:

  1. Create a checkpoint of the environment
  2. Delete the environment
  3. Recreate in the new project from the blueprint
  4. Restore the checkpoint (if applicable)

Copying Blueprints

Blueprints can be copied between projects:

# Export blueprint
teactl blueprint get my-blueprint -o yaml > blueprint.yaml

# Import to another project
teactl blueprint create --file blueprint.yaml --project other-project

See Also

ende