docs(aio): adds quick start guide

This puts in a quick start guide for the all-in-one setup.
Removed unused indexes on Welcome page.
Fixed nit.

Signed-off-by: Tin Lam <tin@irrational.io>
Change-Id: Icd1e47157c7a60d85655baf4b7fcd6089766dd33
This commit is contained in:
Tin Lam 2020-12-18 11:26:30 -06:00 committed by Stacey Fletcher
parent cdb1710729
commit a46dfcaaec
9 changed files with 249 additions and 11 deletions

View File

@ -3,18 +3,11 @@
You can adapt this file completely to your liking, but it should at least You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive. contain the root `toctree` directive.
Welcome to airship-charts's documentation! Welcome to Airship Chart's documentation!
========================================== =========================================
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
:caption: Contents: :caption: Contents:
install/index
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

View File

@ -0,0 +1,37 @@
==================
All-In-One Details
==================
Override-able Variables
=======================
The all-in-one script provides a number of environment variables that users
can alter the behavior.
- ``DEPLOY_K8S``. Default value: ``true``. Setting this value to ``false`` will
cause the script to not execute the Kubernetes deployment script. User is
expected to have a Kubernetes cluster running, with ``kubectl`` and ``helm``
(version 3) available that interact with said cluster.
- **Namespaces**: the Kubernetes and helm namespaces the charts will deploy to.
- ``TEKTON_NS``. Default value: ``tekton-pipelines``.
- ``HARBOR_NS``. Default value: ``harbor``.
- ``LOKI_NS``. Default value: ``loki-stack``.
- ``GRAFANA_NS``. Default value: ``grafana``.
- ``NFS_NS``. Default value: ``nfs``.
- ``HARBOR_VERSION``. Default value: ``1.5.2``. The version of the upstream
goharbor helm chart is pinned to a specific version to avoid unintended
upgrade conflict.
- ``CHART_ROOT_PATH``. Default value: ``./charts`` This specify the path
of the charts. If this path is relative, it is relative the root
of the cloned repository.
- Chart installation override variables. The following are provided:
- ``EXTRA_HELM_ARGS_NFS``
- ``EXTRA_HELM_ARGS_HARBOR``
- ``EXTRA_HELM_ARGS_TEKTON_PIPELINES``
- ``EXTRA_HELM_ARGS_TEKTON_TRIGGERS``
- ``EXTRA_HELM_ARGS_TEKTON_DASHBOARD``
- ``EXTRA_HELM_ARGS_GRAFANA``
- ``EXTRA_HELM_ARGS_LOKI_STACK``

View File

@ -0,0 +1,38 @@
===============================
All-In-One Behind HTTP(S) Proxy
===============================
.. note::
If you are **not** deploying the All-In-One (AIO) behind a proxy, you
can skip this page.
.. hint::
Set the environment variables: ``HTTP_PROXY``, ``HTTPS_PROXY``, and ``NO_PROXY``.
By default, AIO will use Google DNS Server IPs (``8.8.8.8`` and ``8.8.4.4``)
and will update ``/etc/resolv.conf`` as a result. If those IPs are blocked by
your proxy, running the AIO script will result in the inability to connect to
anything on the network.
.. literalinclude:: ../../../../tools/gate/deploy-k8s.sh
:language: shell
:lines: 33-43
:caption: ``resolv.conf`` setting
In the case this is run behind a proxy, specifying the proxy informatin
in the environment variable ``$HTTP_PROXY`` will reserve the nameserver
in ``/etc/resolv.conf``.
To ensure minikube has the appropriate proxy information, set the environment
variables: ``HTTP_PROXY``, ``HTTPS_PROXY``, and ``NO_PROXY`` with the
appropriate strings. Minikube would be started with the correct docker
environment variable set.
.. literalinclude:: ../../../../tools/gate/deploy-k8s.sh
:language: shell
:lines: 112-118
:caption: minikube proxy setting
.. note::
Depending on your specific proxy, ``https_proxy`` may be the same as ``http_proxy``.
Refer to your specific proxy documentation.

View File

@ -0,0 +1,115 @@
======================
All-In-One Quick Start
======================
Initial Setup
=============
It is strongly recommended that the following be performed in a virtual
machine (VM).
Run AIO Setup Script
====================
Clone the `Airship Charts repository <https://opendev.org/airship/charts>`_ by:
.. code:: bash
git clone https://opendev.org/airship/charts.git airship-charts
Go into the directory and run:
.. code:: bash
./tools/utils/aio-setup.sh
.. note:: You can set ``DEPLOY_K8S`` environment variable to ``false`` if you
have a Kubernetes cluster and do not wish to deploy a new cluster when
running the script.
.. note:: The script sets up a ``none``-driver minikube Kubernetes cluster and
installs a version 3 ``helm`` executable. If you want to use your own cluster
by setting ``DEPLOY_K8S`` to ``false``, you will need to ensure ``kubectl``
and ``helm`` are available.
Script Completion
=================
The script should deploy a minikube Kubernetes node with Calico support enabled.
Further, it should deploy the following charts into its respective namespace:
+------------------------+-----------------------------+
| Chart | Namespace |
+========================+=============================+
| ``harbor`` | harbor |
+------------------------+-----------------------------+
| ``tekton-pipelines`` | tekton-pipelines |
+------------------------+-----------------------------+
| ``tekton-dashboard`` | tekton-pipelines |
+------------------------+-----------------------------+
| ``tekton-triggers`` | tekton-pipelines |
+------------------------+-----------------------------+
| ``nfs-provisioner`` | nfs |
+------------------------+-----------------------------+
| ``grafana`` | grafana |
+------------------------+-----------------------------+
| ``loki`` | loki-stack |
+------------------------+-----------------------------+
.. code:: bash
$ helm ls -A
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
grafana grafana 1 2020-12-18 10:05:44.266366139 -0600 CST deployed grafana-6.1.15 7.3.3
harbor harbor 1 2020-12-17 16:22:37.606705989 -0600 CST deployed harbor-1.5.2 2.1.2
loki loki-stack 1 2020-12-18 10:04:17.473045347 -0600 CST deployed loki-stack-2.2.0 v2.0.0
nfs-provisioner nfs 1 2020-12-17 16:22:34.450821264 -0600 CST deployed nfs-provisioner-0.1.1 v2.2.1
tekton-dashboard tekton-pipelines 1 2020-12-17 16:22:42.038851986 -0600 CST deployed tekton-dashboard-0.1.0 v0.10.1
tekton-pipelines tekton-pipelines 1 2020-12-17 16:22:39.78742555 -0600 CST deployed tekton-pipelines-0.1.0 v0.16.3
tekton-triggers tekton-pipelines 1 2020-12-17 16:22:40.750189048 -0600 CST deployed tekton-triggers-0.1.0 v0.9.1
You can also inspect the pods and ensure they are all running:
.. code:: bash
$ kubectl get pod -A
NAMESPACE NAME READY STATUS RESTARTS AGE
grafana grafana-58485fc6d5-s45d6 1/1 Running 0 74s
harbor harbor-harbor-chartmuseum-5f7dccc958-kqq6n 1/1 Running 0 17h
harbor harbor-harbor-clair-b56498fcd-2tfl4 2/2 Running 4 17h
harbor harbor-harbor-core-7ccc475687-n9cbh 1/1 Running 0 17h
harbor harbor-harbor-database-0 1/1 Running 0 17h
harbor harbor-harbor-jobservice-ddc4f6b49-c9cdz 1/1 Running 0 17h
harbor harbor-harbor-notary-server-6fd6567fc8-nb7zf 1/1 Running 1 17h
harbor harbor-harbor-notary-signer-7895b57c78-gw2tm 1/1 Running 1 17h
harbor harbor-harbor-portal-7d69b5598f-mj99d 1/1 Running 0 17h
harbor harbor-harbor-redis-0 1/1 Running 0 17h
harbor harbor-harbor-registry-6755d8586b-p5mtp 2/2 Running 0 17h
harbor harbor-harbor-trivy-0 1/1 Running 0 17h
kube-system calico-kube-controllers-675b7c9569-lntn4 1/1 Running 0 3d19h
kube-system calico-node-kpt5k 1/1 Running 0 3d19h
kube-system coredns-f9fd979d6-zl5gp 1/1 Running 0 3d19h
kube-system etcd-minikube 1/1 Running 0 3d19h
kube-system kube-apiserver-minikube 1/1 Running 0 3d19h
kube-system kube-controller-manager-minikube 1/1 Running 0 3d19h
kube-system kube-proxy-pdpd9 1/1 Running 0 3d19h
kube-system kube-scheduler-minikube 1/1 Running 0 3d19h
kube-system storage-provisioner 1/1 Running 0 3d19h
loki-stack loki-0 1/1 Running 0 2m41s
loki-stack loki-promtail-lmh7s 1/1 Running 0 2m41s
nfs nfs-provisioner-7d749795c6-nbdzj 1/1 Running 0 17h
tekton-pipelines tekton-dashboard-5f8947b4cc-xhq4l 1/1 Running 0 17h
tekton-pipelines tekton-pipelines-controller-57866c7f56-4wkzt 1/1 Running 0 17h
tekton-pipelines tekton-pipelines-webhook-84c5494b44-cwmjx 1/1 Running 0 17h
tekton-pipelines tekton-triggers-controller-5f5dd8c885-jsv9k 1/1 Running 0 17h
tekton-pipelines tekton-triggers-webhook-55c6579868-8gcbf 1/1 Running 0 17h
Testing
=======
A basic suite of tests and helm tests can be executed by running:
.. code:: bash
./tools/gate/pipelines/run-test.sh

View File

@ -0,0 +1,12 @@
CICD (Harbor, Tekton, Loki-Stack)
=================================
Contents:
.. toctree::
:maxdepth: 2
aio-quick-start
aio-detail
aio-proxy
terms-and-def

View File

@ -0,0 +1,18 @@
===========================
Terminology and Definitions
===========================
This page defines terms and their definitions used in this document.
.. list-table::
:widths: 10 20
:header-rows: 1
* - Term
- Definition
* - CI
- **Continuous Integration**.
* - Gerrit
- Gerrit is a free, web-based team code collaboration tool. Developers can review each
other's modifications on their source code using a Web browser and approve or reject those
changes. It integrates closely with Git.

View File

@ -0,0 +1,9 @@
============
Installation
============
.. toctree::
:maxdepth: 2
:caption: Contents:
cicd/index

View File

@ -9,6 +9,7 @@ set -ex
: "${HTTP_PROXY:=""}" : "${HTTP_PROXY:=""}"
: "${HTTPS_PROXY:=""}" : "${HTTPS_PROXY:=""}"
: "${NO_PROXY:=""}"
export DEBCONF_NONINTERACTIVE_SEEN=true export DEBCONF_NONINTERACTIVE_SEEN=true
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive

17
tox.ini
View File

@ -10,9 +10,24 @@ passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY
[testenv:docs] [testenv:docs]
basepython = python3 basepython = python3
whitelist_externals = rm whitelist_externals =
rm
deps = deps =
-r{toxinidir}/doc/requirements.txt -r{toxinidir}/doc/requirements.txt
commands = commands =
rm -rf doc/build rm -rf doc/build
sphinx-build -W -b html doc/source doc/build/html sphinx-build -W -b html doc/source doc/build/html
[testenv:pdf-docs]
envdir = {toxworkdir}/doc
whitelist_externals =
rm
make
mkdir
deps =
-r{toxinidir}/doc/requirements.txt
commands =
rm -rf doc/build/pdf
mkdir -p doc/build/pdf/_static
sphinx-build -W -b latex doc/source doc/build/pdf
make -C doc/build/pdf