/cloudpods

A cloud-native open-source unified multi-cloud and hybrid-cloud platform. 开源、云原生的多云管理及混合云融合平台

Primary LanguageGoApache License 2.0Apache-2.0

Cloudpods

CircleCI Build Status Go Report Card

English | 简体中文

What is Cloudpods?

Cloudpods

Cloudpods is a cloud-native open source unified multi/hybrid-cloud platform developed with Golang, i.e. Cloudpods is a cloud on clouds. Cloudpods is able to manage not only on-premise KVM/baremetals, but also resources from many cloud accounts across many cloud providers. It hides the differences of underlying cloud providers and exposes one set of APIs that allow programatically interacting with these many clouds.

Who needs Cloudpods?

  • Those who need a simple solution to virtualize a few physical servers into a private cloud
  • Those who need a compact and fully automatic baremetal lift-cycle management solution
  • Those who want to turn a VMware vSphere virtualization cluster into a private cloud
  • Those who need a cohesive view of both public and private cloud in a hybrid cloud setup
  • Those who need a centric portal to access multiple acccounts from multiple public clouds
  • Those who is currently using a single cloud account, but will not lose the possibility to adopt multicloud strategy

Features

Summary & UI

Multi-cloud management that is able to manage a wide range of cloud providers, including private cloud, such as OpenStack, and public clouds, such as AWS, Azure, Google Cloud, Alibaba Cloud, Tencent Cloud, Huawei Cloud, etc.
  • Cloud account create form

    multi cloud management
  • Cloud accounts list

    cloud account list
  • Multi public cloud VM list

A light-weight private cloud that manages KVM hypervisor in scale
  • VM instances list

  • Create VM instance form

  • VNC and SSH login page

  • Host list

  • Image template list

  • VPC list

  • Wire list (Classic Network)

  • IPsubnet list

  • Eip list (VPC Network)

  • LB list

A BareMetal cloud that automates the full life-cycle management of baremetal physical machines
  • BareMetal list

  • Baremetal Management

  • Create OS on BareMetal

  • ARM64 baremetal supported
A complete multi-tenancy RBAC-enabled IAM (identity and access management) system
  • sql, LDAP supported

  • Multi-tenancy system, include domain, project, group, user, role, policy

VMware vSphere management that enables self-service and automation
  • Add VMware account

  • VMware account list

  • Automatic creation of wire

  • Automatic creation of ipsubnet

  • Create a VMware VM instance

Cloud SSO that allows accessing native webconsole of cloud providers with unified federated identities
  • Enable the SSO login function of the cloud account (aliyun as an example)

  • create saml users

  • Cloud SSO entry

  • Cloud SSO - SSO login user

  • Sign in to the public cloud platform with SSO

One set of feature-rich APIs to access a wide range of resources from cloud providers above with consistent models and APIs
Multi-cloud image management system that automates image conversion between different cloud providers

Supported cloud providers

  • Public Clouds:
    • AWS
    • Azure
    • Google Cloud Platform
    • Alibaba Cloud
    • Huawei Cloud
    • Tencent Cloud
    • UCloud
    • Ctyun (China Telecom)
    • ECloud (China Mobile)
    • JDCloud
  • Private Clouds:
    • OpenStack
    • ZStack
    • Alibaba Cloud Aspara
    • Huawei HCSO
    • Nutanix
  • On-premise resources:
    • KVM
    • VMWare vSphere vCenter/ESXi
    • Baremetals (IPMI, Redfish API)
    • Object storages (Minio, Ceph, XSky)
    • NAS (Ceph)

Supported resources

  • 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

Quick start

You may install Cloudpods in a Linux box (currently CentOS 7 and Debian 10 are fully tested) with at least 8GiB RAM and 100GB storage by following three steps.

(Assuming that you install Cloudpods on a Linux box with IP 10.168.26.216):

1. Prepare passwordless SSH login

# Generate a local ssh keypair
# (SKIP this step if you already have ~/.ssh/id_rsa.pub locally. Make sure generating key WIHOUT passphrase)
$ ssh-keygen -t rsa -N ''

# Copy the generated ~/.ssh/id_rsa.pub public key to the machine to be deployed
$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.168.26.216

# Try to login to the machine to be deployed without password,
# should be able to get the hostname of the deployed machine
# without entering the login password
$ ssh root@10.168.26.216 "hostname"

2. Install git and relevant tools

For CentOS 7

yum install -y git epel-release ansible

For Debian 10

apt install -y git ansible

3. Install Cloudpods

Run the following commands to start installing Cloudpods.

# Git clone the ocboot installation tool locally
$ git clone -b release/3.8 https://github.com/yunionio/ocboot && cd ./ocboot && ./run.py 10.168.26.216

It takes 10-30 minutes to finish the installation. You may visit the webconsole of Cloudpods at https://10.168.26.216. The initial login account is admin and password is admin@123.

For more detailed instructions, please refers to quick start.

Documentations

Who is using Cloudpods?

Please check this issue for the user list of Cloudpods. If you are using Cloudpods, you are welcome to leave your information by responding the issue. Thank you for your support.

Contact

You may contact us by:

WeChat QRCode

Changelog

See Cloudpods Changelog for details.

Roadmap

See Cloudpods Roadmap for details.

Contribution

You are welcome to do any kind of contribution to the project. Please refer to CONTRIBUTING for guidelines.

License

Apache License 2.0. See LICENSE.