Go to file
zhu.boxiang 7a9b11a6a2 Fix: Only keep one tar.gz and whl package under dist
1. Add all tar.gz packages into one tar.gz package.
2. Keep one whl package under dist. Be carefull, we
should not use the whl package, because it is only for
the zuul job to publish.
3. Remove post and pre yaml files

Change-Id: I6d59bd5d6e4fd62f0b2f9c8d40d634e0ee01e327
2021-10-09 12:07:57 +08:00
container fix: Fix make build failed 2021-08-25 04:54:43 -04:00
devstack refactor: Change the way to install nodejs and yarn 2021-10-08 11:47:54 +08:00
docs docs: add mascot description 2021-08-05 18:05:11 +08:00
etc feat: Add ironic and octavia into service_mapping 2021-09-24 16:39:49 +08:00
libs Fix: Fail to publish package to tarballs 2021-10-08 16:15:44 +08:00
playbooks Fix: Only keep one tar.gz and whl package under dist 2021-10-09 12:07:57 +08:00
skyline refactor: Move skyline-apiserver to libs 2021-07-26 03:48:54 +00:00
tools/git_config feat: Add initial code of skyline-apiserver 2021-06-01 23:39:57 +08:00
.dockerignore chore: Add make clean to clean up project directory 2021-07-26 14:35:55 +00:00
.flake8 feat: Add initial code of skyline-apiserver 2021-06-01 23:39:57 +08:00
.gitignore feat: Add initial code of skyline-apiserver 2021-06-01 23:39:57 +08:00
.gitmodules feat: Add skyline-console to submodule 2021-07-19 02:46:39 +00:00
.gitreview Added .gitreview 2021-05-08 17:14:30 +00:00
.zuul.yaml Fix: Only keep one tar.gz and whl package under dist 2021-10-09 12:07:57 +08:00
bindep.txt feature: Add ZUUL JOBs 2021-08-25 15:01:17 +08:00
LICENSE feat: Add initial code of skyline-apiserver 2021-06-01 23:39:57 +08:00
Makefile refactor: Remove -f of poetry build command 2021-09-29 14:10:13 +08:00
mypy.ini chore: Add make clean to clean up project directory 2021-07-26 14:35:55 +00:00
poetry.lock chore: Update dependencies 2021-09-23 12:33:16 -04:00
poetry.toml feat: Add initial code of skyline-apiserver 2021-06-01 23:39:57 +08:00
pyproject.toml refactor: Move skyline-apiserver to libs 2021-07-26 03:48:54 +00:00
README-zh_CN.md feat: Support devstack integrated functional test 2021-09-16 13:31:55 +08:00
README.md feat: Support devstack integrated functional test 2021-09-16 13:31:55 +08:00
tox.ini Fix: Fail to publish package to tarballs 2021-10-08 16:15:44 +08:00

Skyline API

English | 简体中文

Skyline is an OpenStack dashboard optimized by UI and UE. 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

  • An OpenStack environment that runs at least core components and can access OpenStack components through Keystone endpoints
  • A Linux server with container engine (docker or podman) installed

Configure

  1. 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

  1. 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
    
  2. Run the skyline service after bootstrap is complete

    docker rm -f skyline_bootstrap
    
    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

  1. 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)
    
  2. 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)
    
  3. 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
    
  4. 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
    
  5. Run the skyline service after bootstrap is complete

    docker rm -f skyline_bootstrap
    
    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

  • make >= 3.82
  • python >= 3.8
  • poetry >= 1.1.0 (Installation Guide)
  • node >= 10.22.0 (Optional if you only develop with apiserver)
  • yarn >= 1.22.4 (Optional if you only develop with apiserver)

Install & Run

  1. Installing dependency packages

    # You can export IGNORE_JS=True to skip skyline-console if only develop with apiserver
    export IGNORE_JS=True
    
    make install
    
  2. 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.

  3. Init skyline database

    pushd libs/skyline-apiserver/
    make db_sync
    popd
    
  4. Run skyline-apiserver

    $ poetry run uvicorn --reload --reload-dir libs/skyline-apiserver/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

  5. Build Image

    make build
    

Devstack Integration

Fast integration with Devstack to build an environment.