A modern dashboard for OpenStack - API server
Go to file
Boxiang Zhu 7292b43c60 fix: eliminate whitespace in passenv values
eliminate whitespace in passenv values

Change-Id: I295aa812235894056d6c8472ef6979621ae6ffb2
2023-01-03 17:03:32 +08:00
.vscode chore: Remove poetry 2022-05-25 22:26:42 +08:00
container feat: Support both http and https for nginx.conf.j2 template 2022-10-21 14:59:23 +08:00
devstack fix: Fix the devstack for python3.8 and version in requirements 2022-11-22 13:41:58 +08:00
doc fix: Fix keystone_url default sample 2022-12-15 15:20:06 +08:00
etc fix: Fix keystone_url default sample 2022-12-15 15:20:06 +08:00
kolla fix: Update .zuul.yaml 2022-03-10 19:10:57 +08:00
playbooks/devstack chore: Remove poetry 2022-05-25 22:26:42 +08:00
releasenotes feat: Add cafile conf 2022-12-15 18:20:49 +08:00
skyline_apiserver fix: prometheus response 500 2022-12-20 11:46:10 +08:00
tools fix: Remove invalid panko policy 2022-08-17 14:05:06 +08:00
.dockerignore feat: Add doc base frame 2022-07-29 14:31:57 +08:00
.gitignore feat: Add doc base frame 2022-07-29 14:31:57 +08:00
.gitreview fix: update skyline nginx log file address 2022-02-09 16:42:42 +08:00
.isort.cfg chore: Remove poetry 2022-05-25 22:26:42 +08:00
.zuul.yaml feat: Add doc base frame 2022-07-29 14:31: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 fix: Fix the folder name of skyline-console 2022-05-27 20:00:57 +08:00
MANIFEST.in fix: Add MANIFEST.in and remove templates from packages 2022-07-21 13:42:09 +08:00
mypy.ini feat: Support mypy check 2022-07-28 16:09:31 +08:00
pytest.ini chore: Remove poetry 2022-05-25 22:26:42 +08:00
README-zh_CN.rst feat: Add API docs 2022-11-02 17:31:04 +08:00
README.rst feat: Add API docs 2022-11-02 17:31:04 +08:00
requirements.txt refactor: Remove invalid codes for volumes and snapshots 2022-08-23 16:03:38 +08:00
setup.cfg fix: Add MANIFEST.in and remove templates from packages 2022-07-21 13:42:09 +08:00
setup.py chore: Remove poetry 2022-05-25 22:26:42 +08:00
swagger.json fix: Lack of Octavia device owner of port 2022-09-14 15:53:23 +08:00
test-requirements.txt fix: Fix test requirement 2022-12-14 09:02:18 +00:00
tox.ini fix: eliminate whitespace in passenv values 2023-01-03 17:03:32 +08:00

Skyline API Server

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.

image0

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 && mkdir /var/log/skyline
    
    docker run -d --name skyline_bootstrap -e KOLLA_BOOTSTRAP="" -v /var/log/skyline:/var/log/skyline -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

    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 /var/log/skyline:/var/log/skyline -v /etc/skyline/skyline.yaml:/etc/skyline/skyline.yaml -v /tmp/skyline:/tmp --net=host 99cloud/skyline:latest

Deployment with MariaDB

https://docs.openstack.org/skyline-apiserver/latest/install/docker-install-ubuntu.html

API Doc

You can visit the API doc https://<ip_address>:9999/api/openstack/skyline/docs

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

  1. Installing dependency packages

    tox -e venv
  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

    source .tox/venv/bin/activate
    make db_sync
    deactivate
  4. 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.

  5. Build Image

    make build

Devstack Integration

Fast integration with Devstack to build an environment.

Kolla Ansible Deployment

Kolla Ansible to build an environment.

image1