Cosmic is open source software designed to deploy and manage large networks of virtual machines, as a highly available, highly scalable Infrastructure as a Service (IaaS) cloud computing platform. Cosmic provides an on-premises (private) cloud offering, or as part of a hybrid cloud solution.
Cosmic is a turnkey solution that includes the entire "stack" of features most organizations want with an cloud: compute orchestration, Network-as-a-Service, user and account management, a full and open native API, resource accounting, and a first-class User Interface (UI).
Cosmic currently supports the following hypervisors: KVM and XenServer. Support for other hypervisors can be added if contributors can provide the infrastructure to test against.
Users can manage their cloud via Web interface, command line tools, and/or a full-featured query based API.
Cosmic officials Git repository is located at:
https://github.com/MissionCriticalCloud/cosmic
Cosmic requires:
- Java 8
- Maven settings configured to use Cosmic's Nexus repository (see Maven settings below)
In order to build Cosmic, you have to follow these steps:
git clone https://github.com/MissionCriticalCloud/cosmic.git
cd cosmic
mvn clean install -P developer,systemvm
The steps above will build the essentials to get Cosmic management server working. Besides that, you will also need a hypervisor. See our build stream configuration for more details.
This will run the UI and API:
cd cosmic-client
mvn -pl :cloud-client-ui jetty:run
Go to your brouwser and type: [http://localhost:8080/client] (http://localhost:8080/client)
Configure maven to look for artefacts in Cosmic's Nexus repository:
vim ~/.m2/settings.xml
<settings>
<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>beta-nexus</id>
<mirrorOf>*</mirrorOf>
<url>https://nexus.mcc.schubergphilis.com/content/groups/public</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>beta-nexus</id>
<!--Enable snapshots for the built in central repo to direct -->
<!--all requests to nexus via the mirror -->
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
</settings>
Either enable the beta-nexus
profile on the command line, or make it enabled by default in your settings file.
...
<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>beta-nexus</activeProfile>
</activeProfiles>
...
Cosmic is a fork of Apache CloudStack and its API is mostly backwards compatible with CloudStack's API. So, all the documentation can be accessed from http://docs.cloudstack.apache.org.
API documentation for Cosmic is on a separate page.
Please, join our Slack channel for more details:
If you want an invite, please e-mail [email protected]
and we'll welcome you on Slack soon.
For ease of development, testing and evaluating we created a project called The Bubble. The Bubble is a single host or VM, that hosts all the VMs to build a Cosmic Cloud. A special Bubble Toolkit project exists to automate common tasks. This is also where our CI scripts live.
Feel free to open a Pull Request. Our CI system will automatically kick-in and build a real cloud based on your branch. The test results will be reported on the Gighub Pull Request. Our policy is to only merge when Pull Requests builds are green. After merge, another build is started to verify it once in master.
If you've found an issue that you believe is a security vulnerability in a
released version of Cosmic, please report it to [email protected]
with details about the vulnerability, how it
might be exploited, and any additional information that might be useful.
The Cosmic team would like to recognize and thank the contributions of the following entities to the success of this project and resulting system:
- Schuberg Philis: who is responsible for the birth of the Cosmic project (and all other related projects, see vagrant-cloudstack or bubble-blueprint for some examples) and resulting systems, and is relentlessly supporting all the development costs of Cosmic.
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Please see the LICENSE file included in the root directory of the source tree for extended license details.