Skip to content

same7ammar/kube-composer

Repository files navigation

Kube Composer

A modern, intuitive Kubernetes YAML generator that simplifies deployment configuration for developers and DevOps teams.

🌐 Live Demo

πŸ”— Try Kube Composer Now

Generate your first Kubernetes deployment in under 2 minutes!

🐳 Quick Start with Docker

Run Kube Composer locally in seconds:

docker pull same7ammar/kube-composer && docker run -d -p 8080:80 same7ammar/kube-composer

Then open http://localhost:8080 in your browser.

πŸš€ Features

🎨 Visual Deployment Editor

  • Multi-Container Support - Configure multiple containers per deployment
  • Advanced Container Configuration - Resources, environment variables, volume mounts
  • Real-time Validation - Built-in configuration validation and error checking
  • Interactive Forms - Intuitive interface for complex Kubernetes configurations

πŸ“¦ Comprehensive Resource Management

  • Deployments - Full deployment configuration with replica management
  • Services - ClusterIP, NodePort, and LoadBalancer service types
  • Ingress - Complete ingress configuration with TLS support
  • Namespaces - Custom namespace creation and management
  • ConfigMaps - Configuration data storage and management
  • Secrets - Secure storage for sensitive data (Opaque, TLS, Docker Config)
  • Volumes - EmptyDir, ConfigMap, and Secret volume types

🌐 Advanced Networking

  • Ingress Controllers - Support for multiple ingress classes
  • TLS/SSL Configuration - Automatic HTTPS setup with certificate management
  • Traffic Flow Visualization - Visual representation of request routing
  • Port Mapping - Flexible port configuration and service discovery

⚑ Real-time Features

  • Live YAML Generation - See your YAML output update as you configure
  • Architecture Visualization - Interactive diagrams showing resource relationships
  • Traffic Flow Diagrams - Visual representation of request routing from Ingress to Pods
  • Multi-Deployment Support - Manage multiple applications in a single project

πŸ”§ Advanced Configuration

  • Environment Variables - Support for direct values, ConfigMap refs, and Secret refs
  • Resource Limits - CPU and memory requests/limits configuration
  • Volume Mounts - Flexible volume mounting with multiple volume types
  • Labels & Annotations - Custom metadata for all resources
  • Health Checks - Built-in configuration validation

πŸ“± User Experience

  • Mobile Responsive - Works perfectly on all devices
  • No Registration Required - Start using immediately, no sign-up needed
  • Export & Download - Production-ready YAML files
  • Social Sharing - Share your configurations with the community

🎯 Perfect For

  • Developers learning Kubernetes and container orchestration
  • DevOps Engineers creating quick deployments and testing configurations
  • Platform Engineers standardizing deployment configurations across teams
  • Students understanding Kubernetes concepts and resource relationships
  • Teams collaborating on infrastructure as code
  • Anyone who wants to avoid writing YAML manually

πŸ› οΈ Supported Kubernetes Resources

Core Workloads

  • βœ… Deployments - Application deployment and replica management
  • βœ… Services - Network access and service discovery
  • βœ… Ingress - External access and traffic routing

Configuration & Storage

  • βœ… ConfigMaps - Configuration data management
  • βœ… Secrets - Sensitive data storage (Opaque, TLS, Docker Config)
  • βœ… Volumes - Persistent and ephemeral storage
  • βœ… Namespaces - Resource organization and isolation

Advanced Features

  • βœ… Multi-Container Pods - Sidecar patterns and complex applications
  • βœ… Environment Variables - Direct values and resource references
  • βœ… Resource Quotas - CPU and memory limits/requests
  • βœ… TLS Termination - HTTPS and certificate management
  • βœ… Ingress Rules - Path-based and host-based routing

πŸš€ Local Development

Prerequisites

  • Node.js 18+
  • npm or yarn

Installation

  1. Clone the repository:
git clone https://github.com/same7ammar/kube-composer.git
cd kube-composer
  1. Install dependencies:
npm install
  1. Start the development server:
npm run dev
  1. Open your browser: Visit http://localhost:5173

Building for Production

npm run build

The built files will be in the dist directory.

πŸš€ Deployment

Automatic GitHub Pages Deployment

This project is configured for automatic deployment to GitHub Pages:

  1. Push to main branch - GitHub Actions automatically builds and deploys
  2. Live at: https://same7ammar.github.io/kube-composer/
  3. Custom domain: https://kube-composer.com

Manual Deployment

npm run deploy

πŸ“ Project Structure

src/
β”œβ”€β”€ components/          # React components
β”‚   β”œβ”€β”€ ArchitecturePreview.tsx    # Visual architecture with traffic flow
β”‚   β”œβ”€β”€ DeploymentForm.tsx         # Multi-container deployment configuration
β”‚   β”œβ”€β”€ DeploymentsList.tsx        # Deployment management interface
β”‚   β”œβ”€β”€ NamespaceManager.tsx       # Namespace creation and management
β”‚   β”œβ”€β”€ ConfigMapManager.tsx       # ConfigMap creation and management
β”‚   β”œβ”€β”€ SecretManager.tsx          # Secret creation and management
β”‚   β”œβ”€β”€ YamlPreview.tsx           # Syntax-highlighted YAML output
β”‚   β”œβ”€β”€ ResourceSummary.tsx        # Resource overview and validation
β”‚   β”œβ”€β”€ Footer.tsx                 # Enhanced footer with resources
β”‚   β”œβ”€β”€ SocialShare.tsx            # Social media sharing
β”‚   └── SEOHead.tsx               # SEO optimization
β”œβ”€β”€ hooks/              # Custom React hooks
β”‚   └── useUsageCounter.ts        # Usage statistics tracking
β”œβ”€β”€ types/              # TypeScript definitions
β”‚   └── index.ts                  # Comprehensive type definitions
β”œβ”€β”€ utils/              # Utility functions
β”‚   └── yamlGenerator.ts          # Advanced YAML generation logic
β”œβ”€β”€ App.tsx             # Main application with tabbed interface
β”œβ”€β”€ main.tsx           # Entry point
└── index.css          # Global styles with Tailwind CSS

πŸ”§ Configuration Examples

Multi-Container Deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-app
  namespace: production
spec:
  replicas: 3
  template:
    spec:
      containers:
      - name: web-server
        image: nginx:1.21
        ports:
        - containerPort: 80
        env:
        - name: DATABASE_URL
          valueFrom:
            secretKeyRef:
              name: db-credentials
              key: url
      - name: sidecar-proxy
        image: envoyproxy/envoy:v1.20
        ports:
        - containerPort: 8080

Ingress with TLS

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: web-app-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  ingressClassName: nginx
  tls:
  - hosts:
    - example.com
    secretName: tls-secret
  rules:
  - host: example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: web-app-service
            port:
              number: 80

ConfigMap and Secret Integration

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  database.host: "localhost"
  database.port: "5432"
---
apiVersion: v1
kind: Secret
metadata:
  name: app-secrets
type: Opaque
data:
  database.password: <base64-encoded>
  api.key: <base64-encoded>

🀝 Contributing

We welcome contributions! Here's how:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Development Guidelines

  • Follow existing code style and TypeScript patterns
  • Add tests for new features and components
  • Update documentation for new Kubernetes resources
  • Ensure responsive design across all devices
  • Test YAML generation for various configurations
  • Validate Kubernetes resource compatibility

πŸ” Keywords

kubernetes yaml generator deployment docker containers devops k8s kubernetes deployment yaml editor kubernetes tools free kubernetes tool visual editor deployment generator ingress configmap secrets namespaces multi-container microservices

🌟 What's New

Latest Features (v2.0)

  • ✨ Multi-Container Support - Configure complex pod specifications
  • 🌐 Advanced Ingress - Complete ingress configuration with TLS
  • πŸ—‚οΈ Namespace Management - Create and organize custom namespaces
  • πŸ”§ ConfigMap & Secret Management - Centralized configuration storage
  • πŸ“Š Traffic Flow Visualization - See how requests flow through your architecture
  • πŸ”— Environment Variable References - Link to ConfigMaps and Secrets
  • πŸ“± Enhanced Mobile Experience - Improved responsive design
  • 🎨 Visual Architecture Diagrams - Interactive resource visualization

Coming Soon

  • πŸ”„ StatefulSets - Stateful application support
  • πŸ“Š HorizontalPodAutoscaler - Automatic scaling configuration
  • πŸ›‘οΈ NetworkPolicies - Network security rules
  • πŸ“¦ PersistentVolumes - Storage management
  • πŸ” Resource Monitoring - Built-in observability

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

🌟 Star History

If this project helped you, please consider giving it a ⭐ on GitHub!

Star History Chart

πŸ“ž Support & Community


Made with ❀️ for the Kubernetes community

🌐 Website β€’ πŸ“š Documentation β€’ πŸ› Report Bug β€’ πŸ’‘ Request Feature

⭐ Star us on GitHub β€” it helps!

About

Open Source Kubernetes Config Generator and Resources visualization

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages