Celestra¶
🚀 What is Celestra?¶
Celestra is a Domain-Specific Language (DSL) for Kubernetes that lets you define infrastructure as code using Python. Instead of writing complex YAML, you write simple, readable Python code that generates production-ready Kubernetes manifests.
✨ Key Features¶
- 🎯 Simple Python API - Write Kubernetes manifests in Python
- 🏗️ Multi-Format Output - Generate YAML, Helm charts, Docker Compose
- 🔧 Comprehensive Components - Apps, Services, Secrets, ConfigMaps, and more
- 🛡️ Built-in Security - RBAC, Network Policies, Security Contexts
- 📊 Observability Ready - Prometheus, Grafana, ELK stack integration
- ⚡ Production Ready - High availability, scaling, health checks
- 🔌 Plugin System - Extensible with custom plugins
- 🎨 Modern UI - Beautiful documentation with dark theme
🎯 Quick Start¶
from celestra import App
# Create a simple web application
app = (App("my-app")
.image("nginx:latest")
.port(80)
.replicas(3)
.resources(cpu="500m", memory="512Mi")
.health_check("/health")
.expose())
# Generate Kubernetes manifests
app.generate().to_yaml("./k8s/")
🏗️ Architecture¶
graph TB
A[Python Code] --> B[Celestra DSL]
B --> C[Validation]
C --> D[Template Engine]
D --> E[Kubernetes YAML]
D --> F[Helm Charts]
D --> G[Docker Compose]
H[Plugin System] --> B
I[Security Scanner] --> C
J[Cost Optimizer] --> C
🧩 Core Components¶
Applications¶
- App - Stateless applications
- StatefulApp - Stateful applications
- AppGroup - Application groups
Networking¶
- Service - Service discovery
- Ingress - External access
- Network Policy - Network security
- Scaling - Autoscaling
- Health - Health checks
Security¶
- RBAC - Role-based access control
- Secrets - Sensitive data management
- Security Policy - Pod security standards
Storage¶
Workloads¶
- Deployment - Deployment management
- Job - Batch processing
- CronJob - Scheduled jobs
Advanced Features¶
- Observability - Monitoring and logging
- Cost Optimization - Resource optimization
- Plugin System - Custom extensions
- Advanced Features - Production features
📚 Documentation¶
Getting Started¶
- Quick Start - Install and run your first app
- Installation - Setup and configuration
- Core Concepts - Understanding Celestra
Examples¶
- Hello World - Your first application
- NGINX Web Server - Basic web server
- Node.js Application - Full-stack app
Tutorials¶
- Kafka Deployment - Apache Kafka cluster
- Multi-Environment - Dev/Staging/Prod
- Microservices - Microservices architecture
- Observability Stack - Monitoring setup
🎨 Features¶
Modern Design¶
- Dark Theme - Easy on the eyes
- Responsive Layout - Works on all devices
- Beautiful Typography - Clean and readable
- Syntax Highlighting - Code examples with syntax highlighting
- Search Functionality - Find what you need quickly
Developer Experience¶
- Interactive Examples - Copy-paste ready code
- Step-by-step Guides - Learn at your own pace
- Component Reference - Complete API documentation
- Best Practices - Production-ready patterns
🚀 Production Ready¶
Celestra is designed for production use with:
- High Availability - Multi-replica deployments
- Auto Scaling - Horizontal and vertical scaling
- Health Monitoring - Built-in health checks
- Security First - RBAC, network policies, security contexts
- Cost Optimization - Resource optimization and spot instances
- Observability - Metrics, logging, and tracing
🔌 Extensible¶
Build your own plugins and extensions:
from celestra.plugins import PluginBase, PluginType
class MyCustomPlugin(PluginBase):
def get_metadata(self):
return PluginMetadata(
name="my-custom-plugin",
version="1.0.0",
plugin_type=PluginType.VALIDATOR
)
def execute(self, context):
# Your custom logic here
return result
📊 Community¶
- GitHub - Source Code
- Issues - Bug Reports
- Discussions - Community Forum
- Contributing - Development Guide
📄 License¶
This project is licensed under the MIT License - see the LICENSE file for details.
Ready to simplify your Kubernetes deployments?