Go to file
Tiger Ren a7298fe5b8 feat: complete the main features 2026-02-01 16:32:35 +08:00
data Initial commit 2026-02-01 14:29:18 +08:00
docs feat: complete the main features 2026-02-01 16:32:35 +08:00
public Initial commit from Create Next App 2026-02-01 01:53:42 +08:00
src feat: complete the main features 2026-02-01 16:32:35 +08:00
.gitignore Initial commit 2026-02-01 14:29:18 +08:00
README.md Initial commit 2026-02-01 14:29:18 +08:00
components.json Initial commit 2026-02-01 14:29:18 +08:00
drizzle.config.ts Initial commit 2026-02-01 14:29:18 +08:00
eslint.config.mjs Initial commit from Create Next App 2026-02-01 01:53:42 +08:00
next.config.ts Initial commit 2026-02-01 14:29:18 +08:00
package-lock.json feat: complete the main features 2026-02-01 16:32:35 +08:00
package.json feat: complete the main features 2026-02-01 16:32:35 +08:00
postcss.config.mjs Initial commit from Create Next App 2026-02-01 01:53:42 +08:00
tsconfig.json Initial commit from Create Next App 2026-02-01 01:53:42 +08:00

README.md

Release Orchestration & Tracking System

A web application to manage, track, and execute multi-customer deployment workflows across multiple Kubernetes clusters.

Features

  • Multi-Cluster Support: Manage multiple K8s clusters, each hosting one or more customers
  • Customer Management: Organize customers by cluster with namespace isolation
  • Release Management: Create and track releases of different types (onboarding, regular release, hotfix)
  • Step Templates: Define common deployment and verification steps
  • Customer-Specific Customization: Override or add custom steps per customer
  • Matrix View: Visual progress tracking across all customers and clusters
  • Execution Tracking: Mark steps as done, skipped, or reverted with notes

Tech Stack

  • Framework: Next.js 14+ (App Router)
  • Language: TypeScript
  • Database: SQLite (via better-sqlite3)
  • ORM: Drizzle ORM
  • Styling: Tailwind CSS
  • UI Components: shadcn/ui

Getting Started

Prerequisites

  • Node.js 20.x or higher
  • npm or yarn

Installation

  1. Install dependencies:
npm install
  1. Run the development server:
npm run dev
  1. Open http://localhost:3000 in your browser.

Database

The application uses SQLite with a local database file stored in data/app.db. The database schema is automatically initialized on first run.

Usage

1. Setup Your Infrastructure

  1. Create Clusters: Go to Clusters page and add your Kubernetes clusters
  2. Add Customers: For each cluster, add customers with their namespaces

2. Create a Release

  1. Go to Releases page and click "Create Release"
  2. Choose release type:
    • Onboarding: For new customer setup
    • Regular Release: Standard deployment with version number
    • Hotfix: Emergency fixes
  3. Define deployment and verification steps
  4. Activate the release to generate customer steps

3. Track Progress

  1. View the matrix visualization to see all customers' progress
  2. Click on individual steps to mark them as done or skipped
  3. Override step content for specific customers if needed

Project Structure

my-app/
├── src/
│   ├── app/              # Next.js pages
│   ├── components/       # React components
│   ├── lib/
│   │   ├── actions/      # Server Actions
│   │   ├── db/           # Database schema and connection
│   │   └── utils/        # Utilities
├── data/                 # SQLite database
└── docs/                 # Documentation (FSD, TSD)

Future Enhancements

  • Auto-execution of bash/SQL scripts via K8s agents
  • Multi-user support with authentication
  • Audit logging
  • Jenkins/Rancher API integrations
  • Email notifications
  • Scheduled releases

License

MIT