kubesync

module
v0.0.0-...-e397795 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 6, 2024 License: GPL-3.0

README

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/.

Directories

Path Synopsis
api
v1beta1
Package v1beta1 contains API Schema definitions for the mirror v1beta1 API group +kubebuilder:object:generate=true +groupName=mirror.redrock.team
Package v1beta1 contains API Schema definitions for the mirror v1beta1 API group +kubebuilder:object:generate=true +groupName=mirror.redrock.team
cmd
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL