kubesync
Getting Started
1. Deploy controller
kubectl apply -k config/default
2. Deploy test manager and first mirror job
kubectl apply -k config/samples
3. Deploy more mirror jobs
For detailed configuration and examples, see the config
directory
You can find most of the CQUPT OpenSource Mirror's configuration files in the docs/examples
directory
Design
+-------------------------------------------------------------------------+
| API Server |
+---+--^------------------------------------------------+-^---------------+
| | Resources Info | | Update Status
| | +--------------------------+-+---------------------------------------------------------------+
| | | Namespace #1 | | |
| | | | | Change Resources |
| | | +----v-+----+ |
| | | +--------->| +------------------------------------------------+ |
| | | Update | | Manager | | |
| | | Status | +--------+ +--------------------------------+ | |
| | Manage | | |Control +-----------+ | | |
Handle | | Resources | | |Command | Status | REST |
CRDs | | (Deploy/CM/PVC/...) | +--------+-+---------------------------------------------+ | API | API |
(Manager/ | | | | Job #1 | | | | | |
Worker/ | | Update | | +------+-v-+ +----------------+ +--------------------+ | +-----v-------+ +-----v-------+ |
Announce/ | | Deploy | | | Worker | | Rsync Server | | HTTP File Server | | | Home Page | | Dashboard | |
File) | | Status | | +----------+ +--+-------------+ +-+-------------+----+ | +-----+-------+ +-----+-------+ |
| | | | | | | | | | |
+---v--+-------+ | +-----------------+-----------------+-------------+------+ | | |
| Controller | | | | | | | |
+--------------+ +-------------------+-----------------+-------------+--------------+---------------+---------+
| | metrics | | |
+------------v--+ +---------v----+ +---v--------------v---------------v---------+
| Rsync Proxy | | Prometheus |<---+ Ingress |
+---------------+ +--------------+ +--------------------------------------------+
For Chinese design documents, see docs/design.md
Credits
- tunasync: The foundation and inspiration of this project, most of the code of managers and workers is copied or modified from the project.
- Kubebuilder: The controller framework used in this project
License
Copyright (C) 2023 CQUPTMirror
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see https://www.gnu.org/licenses/.