8000 GitHub - kgosLj/cilikube: cilikube is a Kubernetes resource management platform that is suitable for learning web development technologies such as Vue.js and Go.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
forked from ciliverse/cilikube

cilikube is a Kubernetes resource management platform that is suitable for learning web development technologies such as Vue.js and Go.

License

Notifications You must be signed in to change notification settings

kgosLj/cilikube

 
 

Repository files navigation

CiliKube Logo

CiliKube

中文纯净版 | English

Alt

License

🤔 What is CiliKube? | CiliKube 是什么?

CiliKube is an open-source, full-stack Kubernetes (k8s) resource management platform built with modern, mainstream technology stacks (Vue3, TypeScript, Go, Gin). It aims to provide a clean and elegant interface to simplify the daily management (CRUD operations) of Kubernetes resources and support feature expansion.

CiliKube 是一个使用现代主流技术栈(Vue3, TypeScript, Go, Gin)构建的开源全栈 Kubernetes (k8s) 资源管理平台。它致力于提供一个简洁、优雅的界面,来简化 Kubernetes 资源的日常管理(增删改查)并支持功能拓展。 alt text

✨ What Makes CiliKube Special? | CiliKube 的特色

Unlike complex systems pursuing "large and comprehensive" features, CiliKube focuses on being "small and beautiful." Its core goals are:

  1. Core Functionality: Offers a clear, intuitive interface for managing common K8s resources.
  2. Learning-Friendly: Features clean code structure and a modern tech stack, making it an excellent starting point for learning Vue3/Go Web Development and custom Kubernetes tooling/development.
  3. Easy to Extend: Designed with extensibility in mind, allowing users to easily add custom features based on their needs.

与追求“大而全”的复杂系统不同,CiliKube 专注于“小而美”。它的核心目标是:

  1. 核心功能: 提供清晰、直观的界面来管理常用的 K8s 资源。
  2. 学习友好: 代码结构清晰,技术栈现代,非常适合作为学习 Vue3/Go Web 开发Kubernetes 二次开发 的入门项目。
  3. 易于拓展: 预留了自定义功能的空间,方便用户根据自身需求进行扩展。

🎯 Target Users | 目标用户

  • Developers looking to learn Vue3 + TypeScript + ElementPlus frontend development.
  • Developers looking to learn Go + Gin backend development.
  • Cloud-native enthusiasts interested in using the Kubernetes API and client-go.
  • Teams or individuals needing a concise K8s management dashboard with the potential for customization.
  • 希望学习 Vue3 + TypeScript + ElementPlus 前端开发的开发者。
  • 希望学习 Go + Gin 后端开发的开发者。
  • Kubernetes APIclient-go 使用感兴趣的云原生爱好者。
  • 需要一个简洁 K8s 管理面板,并可能进行二次开发的团队或个人。

💡 Project Background | 项目背景

CiliKube originated from the author's practical project while learning full-stack web development. During the learning process, the author delved deep into Kubernetes and obtained relevant certifications. This project is not just a demonstration of learning outcomes but also aims to be a "Key," helping more learners like the author open the door to the open-source world, contribute, and grow together.

CiliKube 起源于作者学习 Web 全栈开发的实践项目。在学习过程中,作者深入探索了 Kubernetes,并获得了相关认证。这个项目不仅是学习成果的体现,更希望成为一把“钥匙 (Key)”,帮助更多像作者一样的学习者打开开源世界的大门,参与贡献,共同成长。

📚 Documentation | 文档

alt text

🌐 Online Demo | 在线预览

  • An online demo site is being deployed, stay tuned!
  • 在线演示站点正在部署中,敬请期待!

🚀 Tech Stack | 技术栈

This project utilizes popular frontend and backend technology stacks, ensuring developers can engage with the latest tools and libraries.

  • Environment Requirements (Recommended):

    • Node.js >= 18.0.0 (Project developed with v22.14.0)
    • Go >= 1.20 (Project developed with v1.24.2)
    • PNPM >= 8.x
  • Frontend: Vue3 TypeScript Vite Element Plus Pinia Vue Router Axios UnoCSS Scss ESlint Prettier

    • Developed based on the excellent v3-admin-vite template, thanks to the original author un-pany.
  • Backend: Go Gin Kubernetes client-go JWT (dgrijalva/jwt-go) Gorilla Websocket Logger (wonderivan/logger)

本项目采用了当前流行的前后端技术栈,确保开发者能够接触和使用最新的工具和库。

  • 环境要求 (推荐):

    • Node.js >= 18.0.0 (项目当前使用 v22.14.0 开发)
    • Go >= 1.20 (项目当前使用 v1.24.2 开发)
    • PNPM >= 8.x
  • 前端: Vue3 TypeScript Vite Element Plus Pinia Vue Router Axios UnoCSS Scss ESlint Prettier

    • 基于优秀的 v3-admin-vite 模板进行开发,感谢原作者 un-pany。
  • 后端: Go Gin Kubernetes client-go JWT (dgrijalva/jwt-go) Gorilla Websocket Logger (wonderivan/logger)

✨ Main Features (See Detailed Roadmap) | 主要功能 (查看详细开发计划)

  • User Authentication: JWT-based login and authorization.

  • Dashboard: Cluster resource overview.

  • Cluster Management:

    • Node Management
    • Namespace Management
    • Pod Management (List, Details, Logs, Terminal)
    • Volume Management (PV/PVC)
    • Configuration Management (ConfigMap/Secret)
    • Network Management (Service/Ingress)
    • Workload Management (Deployment/StatefulSet/DaemonSet) (Partially implemented)
  • System Settings: Theme switching, Internationalization (i18n) support (Planned).

  • 用户认证: 基于 JWT 的登录和权限验证。

  • 仪表盘: 集群资源概览。

  • 集群管理:

    • 节点 (Node) 管理
    • 命名空间 (Namespace) 管理
    • Pod 管理 (列表、详情、日志、终端)
    • 存储卷 (PV/PVC) 管理
    • 配置 (ConfigMap/Secret) 管理
    • 网络 (Service/Ingress) 管理
    • 工作负载 (Deployment/StatefulSet/DaemonSet) 管理 (部分实现)
  • 系统设置: 主题切换、国际化支持 (计划中)。

🛠️ Roadmap | 开发计划

Frontend

  • Login Page
  • Basic Layout (Sidebar, Topbar, Tabs)
  • Notifications
  • Workload Resource Pages (Deployment, StatefulSet, DaemonSet, etc.)
  • Configuration Management Pages (ConfigMap, Secret)
  • Network Resource Pages (Service, Ingress)
  • Storage Resource Pages (StorageClass, PV, PVC) - PV/PVC partially done
  • Access Control Pages (RBAC - ServiceAccount, Role, ClusterRoleBinding, etc.)
  • Events Viewer
  • Basic CRD Resource Management
  • Monitoring Integration (Display data from Prometheus/Grafana)
  • Log Viewer Enhancements
  • Web Shell Terminal Integration

Backend

  • Kubernetes Client Initialization
  • Basic Routing Setup (Gin)
  • CORS Configuration
  • JWT Authentication Middleware
  • WebSocket Endpoint (for Logs and Web Shell)
  • Node Resource API
  • Pod Resource API (List, Get, Delete, Logs, Exec)
  • PV/PVC Resource API
  • Namespace Resource API
  • Deployment / StatefulSet / DaemonSet Resource API
  • Service / Ingress Resource API
  • ConfigMap / Secret Resource API
  • RBAC Related Resource API
  • Event Resource API

前端

  • 登录界面
  • 基础布局 (侧边栏, 顶部导航, 标签栏)
  • 消息通知
  • 工作负载资源页面 (Deployment, StatefulSet, DaemonSet 等)
  • 配置管理页面 (ConfigMap, Secret)
  • 网络资源页面 (Service, Ingress)
  • 存储资源页面 (StorageClass, PV, PVC) - PV/PVC 部分完成
  • 访问控制页面 (RBAC - ServiceAccount, Role, ClusterRoleBinding 等)
  • 事件 (Events) 查看
  • CRD 资源管理 (基础)
  • 监控集成 (集成 Prometheus/Grafana 数据展示)
  • 日志查看页面优化
  • Web Shell 终端集成

后端

  • Kubernetes 客户端初始化
  • 基础路由设置 (Gin)
  • CORS 跨域配置
  • Node (节点) 资源接口
  • Pod 资源接口 (列表, 详情, 删除, 日志, Exec)
  • PV/PVC 资源接口
  • Namespace 资源接口
  • Deployment / StatefulSet / DaemonSet 资源接口
  • Service / Ingress 资源接口
  • ConfigMap / Secret 资源接口
  • RBAC 相关资源接口
  • Event 资源接口
  • JWT 认证中间件
  • WebSocket 接口 (用于日志和 Web Shell)

💻 Local Development | 本地开发

Prerequisites

  1. Install Node.js (>=18) and pnpm
  2. Install Go (>=1.20)
  3. Have a Kubernetes cluster and configure your kubeconfig file (reads ~/.kube/config by default)

Helm Deployment

># Add the Ciliverse Charts repository
helm repo add ciliverse https://charts.cillian.website

# Update your Helm repositories
helm repo update

# Install the cilikube Chart
helm install cilikube ciliverse/cilikube --namespace cilikube --create-namespace
# Uninstall the cilikube Chart
helm uninstall cilikube --namespace cilikube

Run Frontend

# Enter frontend directory
cd ui

# Install dependencies
pnpm install

# Start development server
pnpm dev

Run Backend

# Enter backend directory
cd cmd/server/

# (Optional) Update Go dependencies
# go mod tidy

# Run backend service (listens on port 8081 by default)
go run main.go

Build Project

# Build frontend for production (output to ui/dist)
cd ui
pnpm build

# Build backend executable
cd ../server
go build -o cilikube-server main.go

Run Tests (Frontend)

cd ui
pnpm test:unit

Lint Code (Frontend)

cd ui
pnpm lint

环境准备

  1. 安装 Node.js (>=18) 和 pnpm
  2. 安装 Go (>=1.20)
  3. 拥有一个 Kubernetes 集群,并配置好 kubeconfig 文件 (默认读取 ~/.kube/config)

Helm部署

# 添加 Ciliverse Charts 仓库
helm repo add ciliverse https://charts.cillian.website
# 更新 Helm 仓库
helm repo update
# 安装 cilikube Chart
helm install cilikube ciliverse/cilikube --namespace cilikube --create-namespace
# 卸载 cilikube Chart
helm uninstall cilikube --namespace cilikube

运行前端

# 进入前端目录
cd ui
# 安装依赖
pnpm install
# 启动开发服务器
pnpm dev

运行后端

# 进入后端目录
cd cmd/server
# (可选) 更新 Go 依赖
go mod tidy
# 运行后端服务 (默认监听 8081 端口)
go run main.go

Docker 部署

docker run -d --name cilikube-server -p 8080:8080 cilliantech/cilikube:v0.1.0

构建项目

# 构建前端生产环境包 (输出到 ui/dist)
cd ui
pnpm build
# 构建后端可执行文件
cd ../server
go build -o cilikube-server main.go

运行测试 (前端)

cd ui
pnpm test:unit

代码规范检查 (前端)

cd ui
pnpm lint

🎨 Feature Preview | 功能预览

alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text alt text

🤝 Contribution Guide | 贡献指南

We welcome contributions of all forms! If you'd like to help improve CiliKube, please:

Fork this repository

Create your feature branch (git checkout -b feature/AmazingFeature)

Commit your changes (git commit -m 'feat: Add some AmazingFeature') - Please follow the Git Commit Guidelines

Push your branch to your fork (git push origin feature/AmazingFeature)

Submit a Pull Request

我们欢迎各种形式的贡献!如果您想参与改进 CiliKube,请:

  • Fork 本仓库

  • 创建您的特性分支 (git checkout -b feature/AmazingFeature)

  • 提交您的更改 (git commit -m 'feat: Add some AmazingFeature') - 请遵循 Git 提交规范

  • 将您的分支推送到 Github (git push origin feature/AmazingFeature)

  • 提交 Pull Request

🤝 Git Commit Guidelines | Git 提交规范

Please follow the Conventional Commits specification:

  • feat: Add new features

  • fix: Fix issues/bugs

  • perf: Optimize performance

  • style: Change the code style without affecting the running result

  • refactor: Refactor code

  • revert: Revert changes

  • test: Test related, does not involve changes to business code

  • docs: Documentation and Annotation

  • chore: Updating dependencies/modifying scaffolding configuration, etc.

  • workflow: Workflow Improvements

  • ci: CICD related changes

  • types: Type definition changes

  • wip: Work in progress (should generally not be merged)

请遵循 Conventional Commits 规范:

  • feat: 新增功能

  • fix: 修复 Bug

  • perf: 性能优化

  • style: 代码样式调整(不影响逻辑)

  • refactor: 代码重构

  • revert: 撤销更改

  • test: 添加或修改测试

  • docs: 文档或注释修改

  • chore: 构建流程、依赖管理等杂项更改

  • workflow: 工作流改进

  • ci: CI/CD 配置相关

  • types: 类型定义修改

  • wip: 开发中的提交(不建议合入主分支)

❤️ Support the Project | 支持项目

Open source is not easy. If you find CiliKube helpful or inspiring, please consider giving it a Star ⭐! Your encouragement is the primary motivation for the author to maintain and update the project regularly.

Follow the WeChat Official Account 希里安 (cilliantech) to get the latest project updates and tech sharing!

开源不易,如果您觉得 CiliKube 对您有帮助或启发,请不吝点亮 Star ⭐!这是对作者持续维护和更新的最大鼓励。

关注公众号 希里安,获取项目最新动态和技术分享!

📞 Contact | 联系方式

Email: cilliantech@gmail.com

Website: https://www.cillian.website

WeChat

alt text

📜 License | 许可证

This project is open-sourced under the Apache 2.0 License.

本项目基于 Apache 2.0 License 开源。License

🌟 Star History

Star History Chart

About

cilikube is a Kubernetes resource management platform that is suitable for learning web development technologies such as Vue.js and Go.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 99.0%
  • Dockerfile 1.0%
0