From 857a170bd5b538cf03757cb7761ac08af62be1f1 Mon Sep 17 00:00:00 2001 From: Keane Lim Date: Tue, 30 Mar 2021 12:38:14 -0400 Subject: [PATCH] OpenStack Introduction Re-ordered topics Fixed content after feedback Added missing abbreviations Initial commit Added WRO Intro topics Change-Id: I0d099cec3520e4d74d4c41b45634f65e893b6766 Signed-off-by: Keane Lim --- .../introduction/deploy_config_overview.rst | 26 +++++ .../introduction/figures/eag1565612501060.png | Bin 0 -> 25599 bytes .../introduction/figures/vzz1565620523528.png | Bin 0 -> 43351 bytes .../introduction/functional_overview.rst | 89 ++++++++++++++++++ doc/source/introduction/index.rst | 4 +- doc/source/shared/abbrevs.txt | 1 + 6 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 doc/source/introduction/deploy_config_overview.rst create mode 100644 doc/source/introduction/figures/eag1565612501060.png create mode 100644 doc/source/introduction/figures/vzz1565620523528.png create mode 100644 doc/source/introduction/functional_overview.rst diff --git a/doc/source/introduction/deploy_config_overview.rst b/doc/source/introduction/deploy_config_overview.rst new file mode 100644 index 000000000..e54cdb77c --- /dev/null +++ b/doc/source/introduction/deploy_config_overview.rst @@ -0,0 +1,26 @@ + +.. pdk1580703255776 +.. _deploy_config_overview: + +================================== +Deployment Configurations Overview +================================== + +|prod-os| supports a variety of physical deployment options. + +It can scale very small with its |AIO| server solutions combining controller, +compute, and storage functions all on a single low-power / low-cost server. +|prod-os| can be deployed in both a single server |AIO|-Simplex solution as +well as an HA two server |AIO|-Duplex solution. The standard solution consists +of a two node HA Controller cluster, up to 9x node HA Storage Cluster and a +pool of up to 100 compute nodes. Finally, |prod-os| supports a +geographically-distributed multi-cloud solution for addressing cloud +requirements from the data center to the edge, with value-add cross-cloud +orchestration capabilities. In |prod|'s |prod-dc| deployment configuration, +|prod-os| is only supported on subclouds; there is no cross-subcloud +orchestration provided for |prod-os| on subclouds. + +.. image:: figures/eag1565612501060.png + + + diff --git a/doc/source/introduction/figures/eag1565612501060.png b/doc/source/introduction/figures/eag1565612501060.png new file mode 100644 index 0000000000000000000000000000000000000000..187f41d82436eefe92e3e22a69032c103fcd7eca GIT binary patch literal 25599 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 JF6*2UngAxE?r{JB literal 0 HcmV?d00001 diff --git a/doc/source/introduction/figures/vzz1565620523528.png b/doc/source/introduction/figures/vzz1565620523528.png new file mode 100644 index 0000000000000000000000000000000000000000..9139476193139fac4e2a2b6f05f6e2e3817be31d GIT binary patch literal 43351 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 literal 0 HcmV?d00001 diff --git a/doc/source/introduction/functional_overview.rst b/doc/source/introduction/functional_overview.rst new file mode 100644 index 000000000..1e7be9c36 --- /dev/null +++ b/doc/source/introduction/functional_overview.rst @@ -0,0 +1,89 @@ + +.. hos1565619043403 +.. _functional_overview: + +=================== +Functional Overview +=================== + +|prod| includes a rich functionality set from open source projects. + +The high-level functional diagram of |prod| is shown in the diagram below: + +.. image:: figures/vzz1565620523528.png + +Where: + +.. _functional_overview-ul-izt-blh-s3b: + +**Hardened Linux** + A CentOS Linux Kernel and OS, tuned for performance and maintained with + security |CVE| patches. + +**Variety of open-source software supporting StarlingX and/or Kubernetes** + This includes packages such as Apache, Ceph, PostgreSql, Etcd, |IPMI|, + |TPM|, etc., as well as some services from OpenStack such as the + OpenStack Horizon Web interface, Keystone and Barbican. + +**StarlingX** + Hardware and software infrastructure management. + + - Manages installation, maintenance and fault monitoring of dedicated + bare metal servers running the |org| solution. + + - Manages the configuration of hardware and software services running + on the host servers. + + - Provides the cluster management for services running on the HA + master/control nodes cluster, as well critical software monitoring and + recovery of services running on all nodes within the cluster. + + - Monitoring and reporting of faults and logs of both hardware and + software services. + + - Support for managing software updates to all layers of software in + the solution; this includes kernel, operating system, open-source + packages, StarlingX and Kubernetes. + +**Kubernetes** + - Kubernetes Container Orchestration Engine + + - Native Docker Runtime + + - Calico Container Networking + + - Accelerated Container Networking with multus and |SRIOV| |CNIs| + + - Persistent Volume Claims backed by Ceph + + - Local Docker Registry + + - Helm / Tiller – Kubernetes Package Manager, and + + - Armada \(Airship\) + +**OpenStack** + - Keystone - Identity management + + - Nova - compute management + + - Neutron - network management + + - Glance - image management + + - Cinder - block storage + + - OpenStack Horizon - dashboard + + - Telemetry \(OPTIONAL\) + + - Panko - Event storage + + - Gnocchi - Time series database + + - Aodh - alarming + + - Heat - Orchestration + + + diff --git a/doc/source/introduction/index.rst b/doc/source/introduction/index.rst index ce7e751ce..18806fc75 100644 --- a/doc/source/introduction/index.rst +++ b/doc/source/introduction/index.rst @@ -28,8 +28,10 @@ Learn more about StarlingX: .. toctree:: :maxdepth: 1 - terms + functional_overview + deploy_config_overview deploy_options + terms consuming StarlingX Project Overview (PDF) diff --git a/doc/source/shared/abbrevs.txt b/doc/source/shared/abbrevs.txt index 2ccc297fe..ff9e4124c 100755 --- a/doc/source/shared/abbrevs.txt +++ b/doc/source/shared/abbrevs.txt @@ -22,6 +22,7 @@ .. |CLIs| replace:: :abbr:`CLIs (Command Line Interfaces)` .. |CMK| replace:: :abbr:`CMK (CPU Manager for Kubernetes)` .. |CNI| replace:: :abbr:`CNI (Container Networking Interface)` +.. |CNIs| replace:: :abbr:`CNIs (Container Networking Interfaces)` .. |CoW| replace:: :abbr:`CoW (Copy on Write)` .. |CSK| replace:: :abbr:`CSK (Code Signing Key)` .. |CSKs| replace:: :abbr:`CSKs (Code Signing Keys)`