Skip to content

scfalswal/demo

Repository files navigation

CCP - Cirrus Cloud Platform

CCP is a cloud aggregator application that connects with OpenStack, AWS, GCP, and other cloud platforms. The application allows users to perform cloud-related operations such as managing virtual machines, storage and networks.

Requirements

  • Python version 3.10
  • Pip version 22.2
  • Docker and Docker Compose
  • Environment variables (listed in the next section)

Running the Application

To run the application, you need to start the required services such as MongoDB and Redis. You can use the provided docker-compose.yml file to start these services with the following command:

sudo docker-compose up -d mongo redis

To run the CCP application in a container run the following command

sudo docker-compose up -d

Install the dependencies for the application by running the following pip command:

pip install -r requirements.txt

Start the server by running the following command:

uvicorn ccp_server.main:app --reload

Run the application using Makfile

make run

The application is built using FastAPI and the Swagger UI for API documentation is available here.

Clouds Credentials

The cloud credentials are stored in the clouds.yaml file, which is provided with the project. If not found in /etc/ccp/, the application will pick the project's clouds.yaml. The file can be accessed at clouds.yaml.

It is important to keep the cloud credentials secure and to not share them with unauthorized users.

Environment Variables

There are some environment variables required to run the project. These environment variables can be found in the env_variables.py file.

KEYCLOAK_HOST
KEYCLOAK_HOST_PROTOCOL
KEYCLOAK_CLIENT_ID
KEYCLOAK_REALM
KEYCLOAK_CLIENT_SECRET
MONGO_DB_URL
REDIS_URL
LOG_FILE_PATH

The default values for these variables are already set in the env_variables.py file and you are good to go to run it on your local machine.

OpenStack and Keycloak Link

The link for the OpenStack and Keycloak service used by the CCP application can be found here.

File Structure

The file structure for the CCP application is as follows:

.
├── ccp_server
│   ├── api
│   │   └── v1
│   │       ├── admin
│   │       ├── compute
│   │       ├── networks
│   │       ├── schema
│   │       └── storage
│   ├── config
│   ├── db
│   ├── decorators
│   ├── files
│   ├── kc
│   │   └── schemas
│   ├── provider
│   │   ├── aws
│   │   ├── gcp
│   │   └── openstack
│   │       ├── compute
│   │       ├── mapper
│   │       │   └── clouds
│   │       ├── network
│   │       └── storage
│   ├── service
│   │   ├── compute
│   │   ├── network
│   │   ├── networks
│   │   └── storage
│   └── util
├── ccp_syncer
├── documentation
└── tests
    ├── compute
    │   └── data
    ├── data
    ├── network
    │   └── data
    └── util

Conclusion

For more documentation, please refer Documentation folder which contains documentation(Readme) about other flows and functionalities of ccp. onboarding.md

CCP is a powerful cloud aggregator application that allows you to manage multiple cloud platforms from a single interface. With its FastAPI-based API, you can automate and integrate your cloud operations with ease.

For more information about the API and its functionality, please refer to the Confluence page

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages