DevServer Operator
A Kubernetes-native operator for managing development servers, particularly designed for PyTorch and ML development workloads. This project provides both a Kubernetes operator and a CLI tool for creating, managing, and accessing development environments.
📍 Current Status: This project is under active development.
🚀 Features
- Kubernetes-Native: Built using the Kopf framework for Python.
- Resource Templates:
DevServerFlavorCRDs define t-shirt sized resource configurations. - User Management:
DevServerUserCRDs for managing user access and SSH keys. - Lifecycle Management: Automatic shutdown and expiration.
- CLI Tool:
devctlfor easy interaction with DevServers. - SSH Agent Forwarding: Seamlessly forward your SSH agent to the DevServer.
- YAML Configuration: Configure
devctlusing~/.config/devctl/config.yaml. - Test-Driven Development: Comprehensive test suite using
pytestandk3d.
📋 Prerequisites
🏃 Quick Start
1. Set Up Local Development Environment
# Create a local k3d cluster
k3d cluster create devserver-cluster
2. Deploy the CRDs and Flavors
# Apply the Custom Resource Definitions and Flavors
make install-crds
3. Run the Operator
# Start the operator in development mode
make run
4. Use the CLI
In a new terminal:
# Create a development server
uv run devctl create --name mydev --flavor cpu-small
# List your servers
uv run devctl list
# Add a user
uv run devctl user add --name test-user --public-key-file ~/.ssh/id_rsa.pub
# Create a server with GPU support (see dev/eks/README.md for setup)
uv run devctl create --name my-gpu-dev --flavor gpu-small --image fedora:latest
# Delete a server
uv run devctl delete mydev
📚 Documentation
For more detailed documentation, please see the following README.md files:
🤝 Contributing
Contributions are welcome! Please see the PROJECT.md for the development plan.
Before submitting a pull request, please run the pre-commit checks to ensure your changes adhere to the project's coding standards:
make pre-commit
- Fork the repository.
- Create a feature branch.
- Make your changes with tests.
- Run the test suite:
make test - Submit a pull request.
📄 License
This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.
Release files for devserver-operator 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| devserver_operator-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Release files / devserver_operator-0.0.1-py3-none-any.whl
| Download URL | devserver_operator-0.0.1-py3-none-any.whl |
|---|---|
| Size | 45.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b723a71b6af907029b156bcdd12d13274965cf57d0ed5b541b98624f694ba47e
|
|
BLAKE2b-256 checksum How to use checksums |
38f85efb2eb6b7927112ab6bb54df6b47ac690962b58349723583056c651bb8f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.2
|