MCPcopy
hub / github.com/yunionio/cloudpods

github.com/yunionio/cloudpods @master-20230911.0 sqlite

repository ↗ · DeepWiki ↗ · release master-20230911.0 ↗
37,660 symbols 135,363 edges 3,836 files 2,140 documented · 6%
README

Cloudpods

CircleCI Build Status Go Report Card

Cloudpods是什么?

Cloudpods

Cloudpods是一个开源的Golang实现的云原生的融合多云/混合云的云平台,也就是一个“云上之云”。Cloudpods不仅可以管理本地的虚拟机和物理机资源,还可以管理多个云平台和云账号。Cloudpods隐藏了这些异构基础设施资源的数据模型和API的差异,对外暴露了一套统一的API,允许用户就像用一个云一样地访问多云。从而大大降低了访问多云的复杂度,提升了管理多云的效率。

谁需要Cloudpods?

  • 将几台物理服务器虚拟化成一个私有云平台
  • 需要一个紧凑而且功能相对完整的物理机全生命周期管理工具
  • 将VMware vSphere虚拟化集群转换为一个可以自服务的私有云平台
  • 在混合云的场景,能够在一个界面访问私有云和公有云
  • 通过一个集中的入口访问分布在多个公有云平台上的多个账号
  • 当前只使用一个云公有云账号但希望将来使用多云的用户

功能

概览 & UI 展示

管理多云资源的功能,可以管理大多数的主流云,包括私有云,例如OpenStack,以及公有云,例如AWS,Azure,GCP,阿里云,华为云和腾讯云等

  • 云帐号纳管 multi cloud management
  • 云帐号列表 cloud account list
  • 公有云虚拟机列表

一个可以管理海量KVM虚拟机的轻量级私有云

  • 虚拟机列表
  • 虚拟机创建页面
  • 虚拟机可通过 VNC 或者 SSH 登录
  • 宿主机列表
  • 镜像模板列表
  • VPC列表
  • 二层网络列表(经典网络)
  • IP子网列表
  • 弹性公网IP列表(VPC网络)
  • LB列表

一个能进行物理机全生命周期管理的裸机云

  • 物理机列表
  • 物理机纳管
  • 安装操作系统
  • 支持 ARM64 的物理机服务器

一套完整的多租户认证和访问控制体系

  • 支持本地sql、LDAP 等认证源
  • 多租户系统,包括域,项目,组,用户,角色和权限等

实现了VMware vSphere虚拟化集群的自助服务和自动化

  • 添加VMware云账号
  • VMware云账号列表
  • 自动创建二层网络
  • 自动创建IP子网
  • 新建VMware虚拟机

允许以统一的联邦身份访问各个云平台的原生控制台的SSO

  • 为云账号开启免密登录(以阿里云为例)
  • 将Cloudpods平台用户添加为免密登录用户
  • 多云统一登录入口
  • 多云统一登录-免密登录用户列表
  • Cloudpods平台用户免密登录阿里云

一套功能丰富、统一一致的RESTAPI和模型访问以上的云资源和功能

自动将镜像转换为不同云平台需要的格式的多云镜像服务

支持的云平台

  • 公有云:
  • AWS
  • Azure
  • Google Cloud Platform
  • 阿里云
  • 华为云
  • 腾讯云
  • UCloud
  • 天翼云
  • 移动云
  • 京东云
  • 私有云:
  • OpenStack
  • ZStack
  • Alibaba Cloud Aspara (阿里飞天)
  • Huawei HCSO (华为HCSO)
  • Nutanix
  • 本地基础设施资源:
  • 基于 KVM 实现的轻量级私有云
  • VMWare vSphere vCenter/ESXi
  • Baremetals (IPMI, Redfish API)
  • Object storages (Minio, Ceph, XSky)
  • NAS (Ceph)

支持的云资源

  • Servers: instances, disks, network interfaces, networks, vpcs, storages, hosts, wires, snapshots, snapshot policies, security groups, elastic IPs, SSH keypairs, images
  • Load Balancers: instances, listeners, backend groups, backends, TSL certificates, ACLs
  • Object Storage: buckets, objects
  • NAS: file_systems, access_groups, mount_targets
  • RDS: instances, accounts, backups, databases, parameters, privileges
  • Elastic Cache: instances, accounts, backups, parameters
  • DNS: DNS zones, DNS records
  • VPC: VPCs, VPC peering, inter-VPC network, NAT gateway, DNAT/SNAT rules, route tables, route entries

安装部署

  • All in One 安装:在 CentOS 7 或 Debian 10 等发行版里搭建全功能 Cloudpods 服务,可以快速体验内置私有云多云管理的功能。
  • Kubernetes Helm 安装:在已有 Kubernetes 集群上通过 Helm 部署一套 Cloudpods CMP 服务,可以体验多云管理的功能。
  • Docker Compose 安装:通过 Docker Compose 部署 Cloudpods CMP 服务,可以迅速体验多云管理的功能。
  • 高可用安装:在生产环境中使用高可用的方式部署 Cloudpods 服务,包括内置私有云多云管理的功能。

文档

谁在使用Cloudpods?

请在这里查看Cloudpods用户列表。如果你正在使用Cloudpods,欢迎回复留下你的信息。谢谢对Cloudpods的支持!

联系我们

您可以通过如下方式联系我们:

WeChat QRCode

版本历史

请访问Cloudpods Changelog.

开发规划

请访问Cloudpods Roadmap.

贡献

欢迎和感谢任何形式的贡献,不局限于贡献代码,流程细节请查看 CONTRIBUTING

License

Apache license 2.0,详情请看 LICENSE

Extension points exported contracts — how you extend this code

IIdentityProvider (Interface)
interface for owner [6 implementers]
pkg/mcclient/token.go
Service (Interface)
Service interface is the lowest common shape that services are expected to forfill to be started within monitor. [10 implementers]
pkg/monitor/registry/registry.go
IRaidDriver (Interface)
(no doc) [6 implementers]
pkg/baremetal/utils/raid/interface.go
FitPredicate (Interface)
(no doc) [16 implementers]
pkg/scheduler/core/types.go
IWorkerTask (Interface)
(no doc) [30 implementers]
pkg/appsrv/workers.go
ICloudSAMLLoginDriver (Interface)
(no doc) [7 implementers]
pkg/cloudid/models/samldriver.go
IWorker (Interface)
(no doc) [53 implementers]
pkg/vpcagent/worker/worker.go
IHandler (Interface)
(no doc) [9 implementers]
pkg/apigateway/handler/dispatcher.go

Core symbols most depended-on inside this repo

Wrap
called by 5988
pkg/scheduler/cache/candidate/hosts.go
Query
called by 2717
pkg/cloudcommon/db/interface.go
Equals
called by 2649
pkg/compute/models/snapshotpolicy.go
Add
called by 2117
pkg/scheduler/cache/interface.go
GetString
called by 1334
pkg/monitor/influxdbsubscribe/point.go
Set
called by 1139
pkg/monitor/notifydrivers/feishu/cache.go
Error
called by 1124
pkg/cloudcommon/validators/errors.go
Marshal
called by 1045
pkg/util/dhcp/packet.go

Shape

Method 23,489
Struct 6,969
Function 6,477
Interface 367
TypeAlias 249
FuncType 102
Class 7

Languages

Go100%
Python1%

Modules by API surface

pkg/compute/models/hosts.go284 symbols
pkg/compute/models/guests.go256 symbols
pkg/hostman/hostdeployer/apis/deploy.pb.go253 symbols
pkg/compute/models/guest_actions.go227 symbols
pkg/apis/compute/zz_generated.model.go214 symbols
pkg/hostman/guestman/guesttasks.go212 symbols
pkg/baremetal/manager.go205 symbols
pkg/mcclient/options/cloudaccounts.go199 symbols
pkg/hostman/guestman/qemu-kvm.go185 symbols
pkg/compute/models/regiondrivers.go176 symbols
pkg/hostman/guestfs/fsdriver/linux.go170 symbols
pkg/mcclient/options/compute/servers.go165 symbols

Dependencies from manifests, versioned

bazil.org/fusev0.0.0-2018042115315 · 1×
cloud.google.com/gov0.65.0 · 1×
cloud.google.com/go/storagev1.10.0 · 1×
github.com/360EntSecGroup-Skylar/excelizev1.4.0 · 1×
github.com/Azure/azure-sdk-for-gov36.1.0+incompatible · 1×
github.com/Azure/go-autorestv14.2.0+incompatible · 1×
github.com/Azure/go-autorest/autorestv0.9.6 · 1×
github.com/Azure/go-autorest/autorest/adalv0.8.2 · 1×
github.com/Azure/go-autorest/autorest/azure/authv0.4.2 · 1×
github.com/Azure/go-autorest/autorest/azure/cliv0.3.1 · 1×
github.com/Azure/go-autorest/autorest/datev0.2.0 · 1×
github.com/Azure/go-autorest/loggerv0.1.0 · 1×

For agents

$ claude mcp add cloudpods \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact