# CloudStack Orchestrator
A unified SDK and CLI for automated Kubernetes platform management using GitOps principles.
## Features
- 🚀 **Zero-touch cluster bootstrapping** - Automated setup with minimal manual steps
- 🔐 **Integrated secrets management** - AWS Secrets Manager support with automatic generation
- 🤖 **Multiple interfaces** - Use as CLI or SDK for programmatic access
- ☁️ **Multi-cloud ready** - Support for AWS, GCP, Azure, and local development
- 🔄 **GitOps native** - Built on ArgoCD with the app-of-apps pattern
## Installation
```bash
# Install from PyPI
uv tool install cloudstack-orchestrator
# Or add to your project
uv add cloudstack-orchestrator
```
## Quick Start
### CLI Usage
```bash
# Interactive setup
cso setup
# Non-interactive setup
cso setup \
--provider aws \
--cluster my-cluster \
--domain platform.example.com \
--github-org my-org \
--region us-east-1
# Check status
cso status
# Validate prerequisites
cso validate
```
### SDK Usage
```python
from cloudstack_orchestrator import CloudStackSDK, Config, CloudProvider
from cloudstack_orchestrator.core.config import GitHubConfig
# Create configuration
config = Config(
provider=CloudProvider.AWS,
region="us-east-1",
cluster_name="my-cluster",
domain="platform.example.com",
github=GitHubConfig(
org="my-org",
token="ghp_..."
)
)
# Initialize SDK
sdk = CloudStackSDK(config)
# Run setup
await sdk.setup()
# Check status
status = await sdk.get_status()
```
## Architecture
CloudStack Orchestrator sets up:
- **ArgoCD** - GitOps continuous delivery
- **Istio** - Service mesh for traffic management
- **Keycloak** - Identity and access management
- **Prometheus/Grafana** - Monitoring and observability
- **Cert-Manager** - Automatic TLS certificate management
## Development
```bash
# Clone the repository
git clone https://github.com/killerapp/cloudstack-orchestrator
cd cloudstack-orchestrator/cso-cli
# Install dependencies
uv sync
# Run tests
uv run pytest
# Run CLI in development
uv run python -m cloudstack_orchestrator.cli
```
## Publishing to PyPI
```bash
# Build the package
uv build
# Publish to PyPI
uv publish
```
## License
MIT
Raw data
{
"_id": null,
"home_page": null,
"name": "cloudstack-orchestrator",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": null,
"keywords": "kubernetes, gitops, argocd, platform, orchestration",
"author": null,
"author_email": "CloudStack Team <dev@cloudstack.io>",
"download_url": "https://files.pythonhosted.org/packages/ba/79/1db1ae3f5280563c33b178d9e6fd304ca8dfb9efd621f3499312c9d22ddd/cloudstack_orchestrator-1.2.0.tar.gz",
"platform": null,
"description": "# CloudStack Orchestrator\n\nA unified SDK and CLI for automated Kubernetes platform management using GitOps principles.\n\n## Features\n\n- \ud83d\ude80 **Zero-touch cluster bootstrapping** - Automated setup with minimal manual steps\n- \ud83d\udd10 **Integrated secrets management** - AWS Secrets Manager support with automatic generation\n- \ud83e\udd16 **Multiple interfaces** - Use as CLI or SDK for programmatic access\n- \u2601\ufe0f **Multi-cloud ready** - Support for AWS, GCP, Azure, and local development\n- \ud83d\udd04 **GitOps native** - Built on ArgoCD with the app-of-apps pattern\n\n## Installation\n\n```bash\n# Install from PyPI\nuv tool install cloudstack-orchestrator\n\n# Or add to your project\nuv add cloudstack-orchestrator\n```\n\n## Quick Start\n\n### CLI Usage\n\n```bash\n# Interactive setup\ncso setup\n\n# Non-interactive setup\ncso setup \\\n --provider aws \\\n --cluster my-cluster \\\n --domain platform.example.com \\\n --github-org my-org \\\n --region us-east-1\n\n# Check status\ncso status\n\n# Validate prerequisites\ncso validate\n```\n\n### SDK Usage\n\n```python\nfrom cloudstack_orchestrator import CloudStackSDK, Config, CloudProvider\nfrom cloudstack_orchestrator.core.config import GitHubConfig\n\n# Create configuration\nconfig = Config(\n provider=CloudProvider.AWS,\n region=\"us-east-1\", \n cluster_name=\"my-cluster\",\n domain=\"platform.example.com\",\n github=GitHubConfig(\n org=\"my-org\",\n token=\"ghp_...\"\n )\n)\n\n# Initialize SDK\nsdk = CloudStackSDK(config)\n\n# Run setup\nawait sdk.setup()\n\n# Check status\nstatus = await sdk.get_status()\n```\n\n\n## Architecture\n\nCloudStack Orchestrator sets up:\n\n- **ArgoCD** - GitOps continuous delivery\n- **Istio** - Service mesh for traffic management\n- **Keycloak** - Identity and access management\n- **Prometheus/Grafana** - Monitoring and observability\n- **Cert-Manager** - Automatic TLS certificate management\n\n## Development\n\n```bash\n# Clone the repository\ngit clone https://github.com/killerapp/cloudstack-orchestrator\ncd cloudstack-orchestrator/cso-cli\n\n# Install dependencies\nuv sync\n\n# Run tests\nuv run pytest\n\n# Run CLI in development\nuv run python -m cloudstack_orchestrator.cli\n```\n\n## Publishing to PyPI\n\n```bash\n# Build the package\nuv build\n\n# Publish to PyPI\nuv publish\n```\n\n## License\n\nMIT\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "CloudStack Orchestrator SDK and CLI for automated Kubernetes platform management",
"version": "1.2.0",
"project_urls": {
"Documentation": "https://github.com/killerapp/cloudstack-orchestrator#readme",
"Homepage": "https://github.com/killerapp/cloudstack-orchestrator",
"Issues": "https://github.com/killerapp/cloudstack-orchestrator/issues",
"Repository": "https://github.com/killerapp/cloudstack-orchestrator"
},
"split_keywords": [
"kubernetes",
" gitops",
" argocd",
" platform",
" orchestration"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c093bcafe46813dfa7d00dc40237c058b87860fc640f81fedff72a27bf04e80c",
"md5": "839a95db25d02edd97be5c2ce84578a1",
"sha256": "009440efa9e3b6900e71bba6f56e7879d71c9c89eb8d5f4ecef0e8ce46ae8385"
},
"downloads": -1,
"filename": "cloudstack_orchestrator-1.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "839a95db25d02edd97be5c2ce84578a1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 32639,
"upload_time": "2025-08-06T02:48:14",
"upload_time_iso_8601": "2025-08-06T02:48:14.583212Z",
"url": "https://files.pythonhosted.org/packages/c0/93/bcafe46813dfa7d00dc40237c058b87860fc640f81fedff72a27bf04e80c/cloudstack_orchestrator-1.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ba791db1ae3f5280563c33b178d9e6fd304ca8dfb9efd621f3499312c9d22ddd",
"md5": "8ea631896ee5c100d8cde79f009736a9",
"sha256": "3c6c1a236769d7c4891a6ff976e0e1fcb8405421687743af080e97c98e3c674e"
},
"downloads": -1,
"filename": "cloudstack_orchestrator-1.2.0.tar.gz",
"has_sig": false,
"md5_digest": "8ea631896ee5c100d8cde79f009736a9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 36119,
"upload_time": "2025-08-06T02:48:15",
"upload_time_iso_8601": "2025-08-06T02:48:15.695736Z",
"url": "https://files.pythonhosted.org/packages/ba/79/1db1ae3f5280563c33b178d9e6fd304ca8dfb9efd621f3499312c9d22ddd/cloudstack_orchestrator-1.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-06 02:48:15",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "killerapp",
"github_project": "cloudstack-orchestrator#readme",
"github_not_found": true,
"lcname": "cloudstack-orchestrator"
}