OpenStack Skyline APIServer
Project description
English | 简体中文
Skyline is an OpenStack dashboard optimized by UI and UE, support OpenStack Train+. It has a modern technology stack and ecology, is easier for developers to maintain and operate by users, and has higher concurrency performance.
Skyline’s mascot is the nine-color deer. The nine-color deer comes from Dunhuang mural “the nine-color king deer”, whose moral is Buddhist cause-effect and gratefulness, which is consistent with 99cloud’s philosophy of embracing and feedback community since its inception. We also hope Skyline can keep light, elegant and powerful as the nine-color deer, to provide a better dashboard for the openstack community and users.
Table of contents
Resources
Quick Start
Prerequisites
Configure
Edit the /etc/skyline/skyline.yaml file in linux server
You can refer to the sample file, and modify the following parameters according to the actual environment
database_url
keystone_url
default_region
interface_type
system_project_domain
system_project
system_user_domain
system_user_name
system_user_password
Deployment with Sqlite
Run the skyline_bootstrap container to bootstrap
rm -rf /tmp/skyline && mkdir /tmp/skyline docker run -d --name skyline_bootstrap -e KOLLA_BOOTSTRAP="" -v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml -v /tmp/skyline:/tmp --net=host 99cloud/skyline:latest # Check bootstrap is normal `exit 0` docker logs skyline_bootstrap
Run the skyline service after bootstrap is complete
docker rm -f skyline_bootstrap
If you need to modify skyline port, add -e LISTEN_ADDRESS=<ip:port> in the following command
LISTEN_ADDRESS defaults to 0.0.0.0:9999
docker run -d --name skyline --restart=always -v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml -v /tmp/skyline:/tmp --net=host 99cloud/skyline:latest
Deployment with MariaDB
Connect to database of the OpenStack environment and create the skyline database
$ mysql -u root -p MariaDB [(none)]> CREATE DATABASE IF NOT EXISTS skyline DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; Query OK, 1 row affected (0.001 sec)
Grant proper access to the databases
Replace SKYLINE_DBPASS with a suitable password.
MariaDB [(none)]> GRANT ALL PRIVILEGES ON skyline.* TO 'skyline'@'localhost' IDENTIFIED BY 'SKYLINE_DBPASS'; Query OK, 0 rows affected (0.001 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON skyline.* TO 'skyline'@'%' IDENTIFIED BY 'SKYLINE_DBPASS'; Query OK, 0 rows affected (0.001 sec)
Create skyline service credentials
# Source the admin credentials $ source admin-openrc # Create the skyline user $ openstack user create --domain default --password-prompt skyline User Password: Repeat User Password: +---------------------+----------------------------------+ | Field | Value | +---------------------+----------------------------------+ | domain_id | default | | enabled | True | | id | 1qaz2wsx3edc4rfv5tgb6yhn7ujm8ikl | | name | skyline | | options | {} | | password_expires_at | 2020-08-08T08:08:08.123456 | +---------------------+----------------------------------+ # Add the admin role to the skyline user: $ openstack role add --project service --user skyline admin
Run the skyline_bootstrap container to bootstrap
docker run -d --name skyline_bootstrap -e KOLLA_BOOTSTRAP="" -v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml --net=host 99cloud/skyline:latest # Check bootstrap is normal `exit 0` docker logs skyline_bootstrap
Run the skyline service after bootstrap is complete
docker rm -f skyline_bootstrap
If you need to modify skyline port, add -e LISTEN_ADDRESS=<ip:port> in the following command
LISTEN_ADDRESS defaults to 0.0.0.0:9999
docker run -d --name skyline --restart=always -v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml --net=host 99cloud/skyline:latest
Test Access
You can now access the dashboard: https://<ip_address>:9999
Develop Skyline-apiserver
Support Linux & Mac OS (Recommend Linux OS) (Because uvloop & cython)
Dependent tools
Use the new feature Context Variables of python37 & uvloop(0.15.0+ requires python37). Considering that most systems do not support python37, we choose to support python38 at least.
make >= 3.82
python >= 3.8
node >= 10.22.0 (Optional if you only develop with apiserver)
yarn >= 1.22.4 (Optional if you only develop with apiserver)
Install & Run
Installing dependency packages
tox -e venv
Set skyline.yaml config file
cp etc/skyline.yaml.sample etc/skyline.yaml export OS_CONFIG_DIR=$(pwd)/etc
Maybe you should change the params with your real environment as followed:
- database_url - keystone_url - default_region - interface_type - system_project_domain - system_project - system_user_domain - system_user_name - system_user_password
If you set such as sqlite:////tmp/skyline.db for database_url , just do as followed. If you set such as mysql://root:root@localhost:3306/skyline for database_url , you should refer to steps 1 and 2 of the chapter Deployment with MariaDB at first.
Init skyline database
source .tox/venv/bin/activate make db_sync deactivate
Run skyline-apiserver
$ source .tox/venv/bin/activate $ uvicorn --reload --reload-dir skyline_apiserver --port 28000 --log-level debug skyline_apiserver.main:app INFO: Uvicorn running on http://127.0.0.1:28000 (Press CTRL+C to quit) INFO: Started reloader process [154033] using statreload INFO: Started server process [154037] INFO: Waiting for application startup. INFO: Application startup complete.
You can now access the online API documentation: http://127.0.0.1:28000/docs.
Or, you can launch debugger with .vscode/lauch.json with vscode.
Build Image
make build
Devstack Integration
Kolla Ansible Deployment
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for skyline-apiserver-1.0.0.0b2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | e529b61f006857e6b3bf6a8e52f412351655d31725df6a95b38d4844caaa48ec |
|
MD5 | a77302343308fdf0614f83ccd954e7ba |
|
BLAKE2b-256 | 6365ab93edb19ba9fc0ad3c73caed967178f916030bc7adbe4c6c620f07a2865 |
Hashes for skyline_apiserver-1.0.0.0b2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c69dbe180f904faa91332dc1d2251e14c4929507b53fa270330c5d60a8eade4e |
|
MD5 | 592c261cc462e31575cff53ec61ccda8 |
|
BLAKE2b-256 | 7f12901b156a328d9cd3d2e2abb4a4858325efd3fb6dc13844e32061bd40a423 |