Go to file
resitdemir a2f32fc234 Updating Target Attributes For Barbican Policy
Barbican policy contains target attributes which need to be updated in request context
like "target.secret.project.id". Otherwise certificate menu throws permission denied errors.
Also we need to set "target.secret.read" and "target.secret.read_project_access"
but i did not find a way how to set them.

Change-Id: I51631d0be023fc091b32aaeb71145c2893454bba
2023-09-28 08:15:10 +00: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: Add GLOBAL_VENV into skyline devstack plugin script 2023-08-18 13:12:31 +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 Update master for stable/2023.2 2023-09-14 08:58:16 +00:00
skyline_apiserver Updating Target Attributes For Barbican Policy 2023-09-28 08:15:10 +00:00
spec docs: add spec for feat 'Multi Region & Domain Switch' 2023-06-02 10:18:24 +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 docs: Add docker image address 2023-01-18 18:36:29 +08:00
README.rst feat: Add API docs 2022-11-02 17:31:04 +08:00
requirements.txt Update requirements and test-requirements 2023-03-27 13:12:25 +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 Update requirements and test-requirements 2023-03-27 13:12:25 +08:00
tox.ini fix: eliminate whitespace in passenv values 2023-01-03 17:03:32 +08:00

==================
Skyline API Server
==================

English \| `简体中文 <./README-zh_CN.rst>`__

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**

-  `Skyline API Server <#skyline-api-server>`__

   -  `Resources <#resources>`__
   -  `Quick Start <#quick-start>`__

      -  `Prerequisites <#prerequisites>`__
      -  `Configure <#configure>`__
      -  `Deployment with Sqlite <#deployment-with-sqlite>`__
      -  `Deployment with MariaDB <#deployment-with-mariadb>`__
      -  `Test Access <#test-access>`__

   -  `Develop Skyline-apiserver <#develop-skyline-apiserver>`__

      -  `Dependent tools <#dependent-tools>`__
      -  `Install & Run <#install--run>`__

   -  `Devstack Integration <#devstack-integration>`__
   -  `Kolla Ansible Deployment <#kolla-ansible-deployment>`__

Resources
---------

-  `Developer Docs <https://docs.openstack.org/skyline-apiserver/latest/>`__
-  `Release notes <https://docs.openstack.org/releasenotes/skyline-apiserver/>`__
-  `Wiki <https://wiki.openstack.org/wiki/Skyline>`__
-  `Bug Tracker <https://launchpad.net/skyline-apiserver>`__

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 <https://docs.docker.com/engine/install/>`__ or
   `podman <https://podman.io/getting-started/installation>`__)
   installed

Configure
~~~~~~~~~

1. Edit the ``/etc/skyline/skyline.yaml`` file in linux server

   You can refer to the `sample file <etc/skyline.yaml.sample>`__, 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

   .. code:: bash

      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

   .. code:: bash

      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``

   .. code:: bash

      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

   .. code:: bash

      tox -e venv

2. Set skyline.yaml config file

   .. code:: bash

      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:

   .. code:: yaml

      - 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

   .. code:: bash

      source .tox/venv/bin/activate
      make db_sync
      deactivate

4. Run skyline-apiserver

   .. code:: console

      $ 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

   .. code:: bash

      make build

Devstack Integration
--------------------

`Fast integration with Devstack to build an
environment. <./devstack/README.rst>`__

Kolla Ansible Deployment
------------------------

`Kolla Ansible to build an environment. <./kolla/README.md>`__

|image1|

.. |image0| image:: doc/source/images/logo/OpenStack_Project_Skyline_horizontal.png
.. |image1| image:: doc/source/images/logo/nine-color-deer-64.png