Fix: Drydock Exceptions docs rendering on RTD

Readthedocs failed to render Drydock exceptions with error:
> WARNING: autodoc: failed to import exception xxx from module
> 'drydock_provisioner'; the following exception was raised: No module
> named 'drydock_provisioner'

Trying to add Drydock requirements to the installed requirements list,
so that Readthedocs has all modules, including those needed for the
Drydock itself.

Unify docs building by utilizing Zuul docs-on-readthedocs template job.

Cosmetic readability changes:
1. combined all Makefile .PHONY targets into one
2. merged multiple LABEL instructions in Dockerfile into one

Change-Id: I6a9b47cffc66d739968fa886c51e25b1e09ef124
This commit is contained in:
Roman Gorshunov 2019-08-26 19:27:03 +02:00
parent 2cf960f4fc
commit 161326fe06
41 changed files with 125 additions and 150 deletions

25
.readthedocs.yaml Normal file
View File

@ -0,0 +1,25 @@
# .readthedocs.yml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
# Build documentation in the doc/ directory with Sphinx
sphinx:
configuration: doc/source/conf.py
# Build documentation with MkDocs
#mkdocs:
# configuration: mkdocs.yml
# Optionally build your docs in additional formats such as PDF and ePub
formats:
- pdf
# Optionally set the version of Python and requirements required to build your docs
python:
version: 3.7
install:
- requirements: doc/requirements-doc.txt
- requirements: requirements-host.txt

View File

@ -11,6 +11,11 @@
# limitations under the License. # limitations under the License.
- project: - project:
templates:
- docs-on-readthedocs
vars:
rtd_webhook_id: '38809'
rtd_project_name: 'airship-drydock'
check: check:
jobs: jobs:
- airship-drydock-omni-test - airship-drydock-omni-test
@ -26,7 +31,6 @@
post: post:
jobs: jobs:
- airship-drydock-doc-publish
- airship-drydock-docker-publish - airship-drydock-docker-publish
- drydock-upload-git-mirror - drydock-upload-git-mirror
@ -70,7 +74,7 @@
run: tools/gate/playbooks/docker-image-build.yaml run: tools/gate/playbooks/docker-image-build.yaml
nodeset: airship-drydock-single-node nodeset: airship-drydock-single-node
irrelevant-files: irrelevant-files:
- '^docs/.*' - '^doc/.*'
- '^charts/.*' - '^charts/.*'
vars: vars:
publish: false publish: false
@ -86,7 +90,7 @@
secrets: secrets:
- airship_drydock_quay_creds - airship_drydock_quay_creds
irrelevant-files: irrelevant-files:
- '^docs/.*' - '^doc/.*'
- '^charts/.*' - '^charts/.*'
vars: vars:
publish: true publish: true
@ -97,16 +101,6 @@
static: static:
- latest - latest
- job:
name: airship-drydock-doc-publish
description: |
Publish documentation on airship-drydock.readthedocs.io
run: tools/gate/playbooks/doc-publish.yaml
secrets:
- airship_drydock_readthedocs
timeout: 300
nodeset: airship-drydock-single-node
- secret: - secret:
name: airship_drydock_quay_creds name: airship_drydock_quay_creds
data: data:
@ -133,32 +127,6 @@
B1qsfXoY9lVL59lCl4jYLqyGA99Oybi5YKTP8O+IH5Xo7XLOje7K0Vfvh7v8Mcja8pZRG B1qsfXoY9lVL59lCl4jYLqyGA99Oybi5YKTP8O+IH5Xo7XLOje7K0Vfvh7v8Mcja8pZRG
sgRbPr/10a2g6+s37XofkFEeba7B8fV5h6v/A3tMy7U01rZ2qLBC/4hxrikXT8= sgRbPr/10a2g6+s37XofkFEeba7B8fV5h6v/A3tMy7U01rZ2qLBC/4hxrikXT8=
- secret:
name: airship_drydock_readthedocs
data:
url: !encrypted/pkcs1-oaep
- dcOaNb6+3zCSp8rlmaA8U/v8kxzsB9MPqmbfbFSoyCsXOAMvluYSitmF7XpYdZLOXPOvm
+stE6m57dRBDlryymoLHVUxgeAkA/4YR1/78tF8vTLBDbWaLXVLTFBjx6jg17nS9X/UKs
W+UtSA1rVmeoaF8jrxO+c0IJjhgRDchFyPa9s7CnrxUn12IN6IDym0YcUQLxUOFzofm3F
fCtwFY84lRCJhB80jfXuYPlIdxTO3q245JlDvhRm4y6p/qCNljNm/Kw6o6ngKjh0f/CM6
7oFZPsE1XDYWGvR0msq8rjCST6k380vIBeroOqfwRhrjU5YCTgZy2kmw/veY3eGs5bEbb
OBZeIb6mk1+D9bmRbFaTmVns7E+a6Fdz/rrttebmak8aBATQD9sgBnvghFAAHibT4LNdn
ic+eEy/RXqyHqZuIPukQjAF0FgfK7jDqVzB/scx2tpw7lYwpDZM8bOHFNIAC4zRVg66O2
1HPo4egknU8MQRy1FwNm7A91AY2cKZSusfrQlND/vflK27/lxCdHoOYw8JVaGxe02Ac+n
XapfJuj7tAkFF+jeaWamB5CMiC+4M3zsrReB2/kqbxGFXC0nQ9q9AbVg48zCZFxNTVMLj
J5K79voMoMmFoP14trhneFDs1Ki8FOLU1fqU7KrBYrlixI4FJwJ6ljEM9C/OvU=
token: !encrypted/pkcs1-oaep
- i6Js243rxTsL0V1l5UWsJalCiRh3kYs54nBz0M9KKrE5YYdAYkD59jKSPncUeG7V+VTkr
LuwGpI837r/oaYqD7g4ZZhsE/X+xSE1PSdtsSY3t5GZZAPdKG4oSLxl0buTd23JsS6cU4
7IAh4Q28wtaIXg8fZ69KVkGm2f2nXPNKbUH/yPTjFW51yEXI55AClNKzv+mVKLd1PNdCN
USQkmF4fvgFreQym+NkZrUh78YMQI1uNT1e7rhD/jxYCjhZGAEr0Clxiu8UmLIRvxHgc2
2SM99xT8s0/dRudePkSz3zXSagwWvdat8bHqpGHJrakjZvePtGeZrdk20v7JQHt8T3XBp
InfWRB8ad/gDvgpstXiag4EHsJ7tnFuwsFDh+KSYySBjtkbYqY8Rx8lQ5qW/Qgk96LagJ
yzpin6EquBcnnPNTGTYLRF9jtowzbI8G9ItRRWdvkIQSlMQDxROI4bVEnfLHgRMbAKVjF
1oSaiEzMwMHj356qYBS06pBBF3Dr/OCIZNiBy3UU8J6OJt2XchMgy9TVhsGkj+HE092d+
mADSwkA5TpfWJCo8rqTDO8cCXIeiG8kBoxjph5m7YNWUcbuRDQdbga1FjV4lMe9bMyOo5
AJ6O8hl3q7CJElLw6Z7p9vW2wHUf/xr242pZnk70DiMkyXxzJFLLqvRsWctTDc=
- job: - job:
name: drydock-upload-git-mirror name: drydock-upload-git-mirror
parent: upload-git-mirror parent: upload-git-mirror

View File

@ -32,15 +32,12 @@ GO_BUILDER ?= docker.io/golang:1.10-stretch
export export
# Build all docker images for this project # Build all docker images for this project
.PHONY: images
images: build_drydock images: build_drydock
# Run an image locally and exercise simple tests # Run an image locally and exercise simple tests
.PHONY: run_images
run_images: run_drydock run_images: run_drydock
# Run tests # Run tests
.PHONY: tests
tests: pep8 security docs unit_tests test_baclient tests: pep8 security docs unit_tests test_baclient
# Install external (not managed by tox/pip) dependencies # Install external (not managed by tox/pip) dependencies
@ -49,63 +46,51 @@ external_dep: requirements-host.txt requirements-host-test.txt
touch external_dep touch external_dep
# Run unit and Postgres integration tests in coverage mode # Run unit and Postgres integration tests in coverage mode
.PHONY: coverage_test
coverage_test: build_drydock coverage_test: build_drydock
tox -re cover tox -re cover
# Run just unit tests # Run just unit tests
.PHONY: unit_tests
unit_tests: external_dep unit_tests: external_dep
tox -re py35 $(TESTS) tox -re py35 $(TESTS)
# Run just DB integration tests # Run just DB integration tests
.PHONY: db_integration_tests
db_integration_tests: external_dep db_integration_tests: external_dep
tox -re integration $(TESTS) tox -re integration $(TESTS)
# Freeze full set of Python requirements # Freeze full set of Python requirements
.PHONY: req_freeze
req_freeze: req_freeze:
tox -re freeze tox -re freeze
# Run the drydock container and exercise simple tests # Run the drydock container and exercise simple tests
.PHONY: run_drydock
run_drydock: build_drydock run_drydock: build_drydock
tools/drydock_image_run.sh tools/drydock_image_run.sh
# It seems CICD expects the target 'drydock' to # It seems CICD expects the target 'drydock' to
# build the chart # build the chart
.PHONY: drydock
drydock: charts drydock: charts
# Create tgz of the chart # Create tgz of the chart
.PHONY: charts
charts: helm-init charts: helm-init
$(HELM) dep up charts/drydock $(HELM) dep up charts/drydock
$(HELM) package charts/drydock $(HELM) package charts/drydock
# Perform Linting # Perform Linting
.PHONY: lint
lint: pep8 helm_lint lint: pep8 helm_lint
# Dry run templating of chart # Dry run templating of chart
.PHONY: dry-run
dry-run: helm-init dry-run: helm-init
$(HELM) template --set manifests.secret_ssh_key=true --set conf.ssh.private_key=foo charts/drydock $(HELM) template --set manifests.secret_ssh_key=true --set conf.ssh.private_key=foo charts/drydock
# Initialize local helm config # Initialize local helm config
.PHONY: helm-init
helm-init: helm-install helm-init: helm-install
tools/helm_tk.sh $(HELM) tools/helm_tk.sh $(HELM)
# Install helm binary # Install helm binary
.PHONY: helm-install
helm-install: helm-install:
tools/helm_install.sh $(HELM) tools/helm_install.sh $(HELM)
# Make targets intended for use by the primary targets above. # Make targets intended for use by the primary targets above.
.PHONY: build_drydock
build_drydock: external_dep build_baclient build_drydock: external_dep build_baclient
export; tools/drydock_image_build.sh export; tools/drydock_image_build.sh
ifeq ($(PUSH_IMAGE), true) ifeq ($(PUSH_IMAGE), true)
@ -113,49 +98,44 @@ ifeq ($(PUSH_IMAGE), true)
endif endif
# Make target for building bootaction signal client # Make target for building bootaction signal client
.PHONY: build_baclient
build_baclient: external_dep build_baclient: external_dep
docker run -tv $(shell realpath go):/work -v $(shell realpath $(BUILD_DIR)):/build -e GOPATH=/work $(GO_BUILDER) go build -o /build/baclient baclient docker run -tv $(shell realpath go):/work -v $(shell realpath $(BUILD_DIR)):/build -e GOPATH=/work $(GO_BUILDER) go build -o /build/baclient baclient
# Make target for testing bootaction signal client # Make target for testing bootaction signal client
.PHONY: test_baclient
test_baclient: external_dep test_baclient: external_dep
docker run -tv $(shell realpath go):/work -e GOPATH=/work $(GO_BUILDER) go test -v baclient docker run -tv $(shell realpath go):/work -e GOPATH=/work $(GO_BUILDER) go test -v baclient
.PHONY: docs
docs: clean drydock_docs docs: clean drydock_docs
.PHONY: security
security: external_dep security: external_dep
tox -e bandit tox -e bandit
.PHONY: drydock_docs
drydock_docs: external_dep render_diagrams genpolicy genconfig drydock_docs: external_dep render_diagrams genpolicy genconfig
tox -e docs tox -e docs
.PHONY: render_diagrams
render_diagrams: render_diagrams:
plantuml -v -tpng -o ../source/images docs/diagrams/*.uml plantuml -v -tpng -o ../source/images doc/diagrams/*.uml
.PHONY: genpolicy
genpolicy: genpolicy:
tox -e genpolicy tox -e genpolicy
.PHONY: genconfig
genconfig: genconfig:
tox -e genconfig tox -e genconfig
.PHONY: clean
clean: clean:
rm -rf build rm -rf build
rm -rf docs/build rm -rf doc/build
rm -rf charts/drydock/charts rm -rf charts/drydock/charts
rm -rf charts/drydock/requirements.lock rm -rf charts/drydock/requirements.lock
.PHONY: pep8
pep8: external_dep pep8: external_dep
tox -e pep8 tox -e pep8
.PHONY: helm_lint
helm_lint: helm-init helm_lint: helm-init
$(HELM) lint charts/drydock $(HELM) lint charts/drydock
.PHONY: build_baclient build_drydock charts clean coverage_test \
db_integration_tests docs drydock drydock_docs dry-run genconfig \
genpolicy helm-init helm-install helm_lint images lint pep8 \
render_diagrams req_freeze run_drydock run_images security \
test_baclient tests unit_tests

View File

@ -38,8 +38,8 @@ described by the following fields.
* Task - The Drydock Task ID that initiated the collection. * Task - The Drydock Task ID that initiated the collection.
* Node - The node on which the data is collected. * Node - The node on which the data is collected.
* Generator - A description of what generated the data. If it was a command line tool, * Generator - A description of what generated the data. If it was a command line tool,
the full command line. If it was something else, then a solid description the full command line. If it was something else, then a solid description
such as an API endpoint. such as an API endpoint.
* Format - The format that the collected data is being persisted as. * Format - The format that the collected data is being persisted as.
Post-collection, the build data will be accessible in two ways Post-collection, the build data will be accessible in two ways

View File

@ -141,8 +141,8 @@ a proxy or for geneting the Docker image with custom tags.
* ``IMAGE_PREFIX`` - Defaults to ``airshipit``, the registry organization to push images into * ``IMAGE_PREFIX`` - Defaults to ``airshipit``, the registry organization to push images into
* ``IMAGE_TAG`` - Defaults to ``dev``, a tag to apply to the image * ``IMAGE_TAG`` - Defaults to ``dev``, a tag to apply to the image
* ``PUSH_IMAGE`` - Defaults to ``false``, set to ``true`` if you want the build process to also * ``PUSH_IMAGE`` - Defaults to ``false``, set to ``true`` if you want the build process to also
push the image. Likely will require you have previously run ``docker login``. push the image. Likely will require you have previously run ``docker login``.
* ``PROXY`` - A HTTP/HTTPS proxy server to add to the image build environment. Required if you * ``PROXY`` - A HTTP/HTTPS proxy server to add to the image build environment. Required if you
are building the image behind a proxy. are building the image behind a proxy.
* ``USE_PROXY`` - Defaults to ``false``, set to ``true`` to include the ``PROXY`` configuration * ``USE_PROXY`` - Defaults to ``false``, set to ``true`` to include the ``PROXY`` configuration
above in the build. above in the build.

View File

@ -17,12 +17,14 @@
API Errors API Errors
---------- ----------
.. autoexception:: drydock_provisioner.error.ClientError .. currentmodule:: drydock_provisioner.error
.. autoexception:: ClientError
:members: :members:
:show-inheritance: :show-inheritance:
:undoc-members: :undoc-members:
.. autoexception:: drydock_provisioner.error.InvalidFormat .. autoexception:: InvalidFormat
:members: :members:
:show-inheritance: :show-inheritance:
:undoc-members: :undoc-members:

View File

@ -18,17 +18,19 @@
Bootaction Errors Bootaction Errors
----------------- -----------------
.. autoexception:: drydock_provisioner.error.InvalidAssetLocation .. currentmodule:: drydock_provisioner.error
.. autoexception:: InvalidAssetLocation
:members: :members:
:show-inheritance: :show-inheritance:
:undoc-members: :undoc-members:
.. autoexception:: drydock_provisioner.error.PipelineFailure .. autoexception:: PipelineFailure
:members: :members:
:show-inheritance: :show-inheritance:
:undoc-members: :undoc-members:
.. autoexception:: drydock_provisioner.error.UnknownPipelineSegment .. autoexception:: UnknownPipelineSegment
:members: :members:
:show-inheritance: :show-inheritance:
:undoc-members: :undoc-members:

View File

@ -18,7 +18,9 @@
BuildData Errors BuildData Errors
---------------- ----------------
.. autoexception:: drydock_provisioner.error.BuildDataError .. currentmodule:: drydock_provisioner.error
.. autoexception:: BuildDataError
:members: :members:
:show-inheritance: :show-inheritance:
:undoc-members: :undoc-members:

View File

@ -17,12 +17,14 @@
Client Errors Client Errors
------------- -------------
.. autoexception:: drydock_provisioner.error.ClientForbiddenError .. currentmodule:: drydock_provisioner.error
.. autoexception:: ClientForbiddenError
:members: :members:
:show-inheritance: :show-inheritance:
:undoc-members: :undoc-members:
.. autoexception:: drydock_provisioner.error.ClientUnauthorizedError .. autoexception:: ClientUnauthorizedError
:members: :members:
:show-inheritance: :show-inheritance:
:undoc-members: :undoc-members:

View File

@ -17,17 +17,19 @@
Design Errors Design Errors
------------- -------------
.. autoexception:: drydock_provisioner.error.DesignError .. currentmodule:: drydock_provisioner.error
.. autoexception:: DesignError
:members: :members:
:show-inheritance: :show-inheritance:
:undoc-members: :undoc-members:
.. autoexception:: drydock_provisioner.error.IngesterError .. autoexception:: IngesterError
:members: :members:
:show-inheritance: :show-inheritance:
:undoc-members: :undoc-members:
.. autoexception:: drydock_provisioner.error.InvalidDesignReference .. autoexception:: InvalidDesignReference
:members: :members:
:show-inheritance: :show-inheritance:
:undoc-members: :undoc-members:

View File

@ -17,27 +17,29 @@
Driver Errors Driver Errors
------------- -------------
.. autoexception:: drydock_provisioner.error.DriverError .. currentmodule:: drydock_provisioner.error
.. autoexception:: DriverError
:members: :members:
:show-inheritance: :show-inheritance:
:undoc-members: :undoc-members:
.. autoexception:: drydock_provisioner.error.InvalidSizeFormat .. autoexception:: InvalidSizeFormat
:members: :members:
:show-inheritance: :show-inheritance:
:undoc-members: :undoc-members:
.. autoexception:: drydock_provisioner.error.NotEnoughStorage .. autoexception:: NotEnoughStorage
:members: :members:
:show-inheritance: :show-inheritance:
:undoc-members: :undoc-members:
.. autoexception:: drydock_provisioner.error.PersistentDriverError .. autoexception:: PersistentDriverError
:members: :members:
:show-inheritance: :show-inheritance:
:undoc-members: :undoc-members:
.. autoexception:: drydock_provisioner.error.TransientDriverError .. autoexception:: TransientDriverError
:members: :members:
:show-inheritance: :show-inheritance:
:undoc-members: :undoc-members:

View File

@ -18,12 +18,14 @@
Orchestrator Errors Orchestrator Errors
------------------- -------------------
.. autoexception:: drydock_provisioner.error.MaxRetriesReached .. currentmodule:: drydock_provisioner.error
.. autoexception:: MaxRetriesReached
:members: :members:
:show-inheritance: :show-inheritance:
:undoc-members: :undoc-members:
.. autoexception:: drydock_provisioner.error.OrchestratorError .. autoexception:: OrchestratorError
:members: :members:
:show-inheritance: :show-inheritance:
:undoc-members: :undoc-members:

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -70,3 +70,11 @@ Topology Documentation
topology topology
troubleshooting/index troubleshooting/index
Blueprints
----------
.. toctree::
:maxdepth: 1
blueprints/index

View File

@ -181,7 +181,7 @@ defined.
* ``gateway``: The gateway IP on this Network to use for accessing the destination * ``gateway``: The gateway IP on this Network to use for accessing the destination
* ``metric``: The metric or weight for this route * ``metric``: The metric or weight for this route
* ``routedomain``: Use this route's gateway and metric for accessing networks in the * ``routedomain``: Use this route's gateway and metric for accessing networks in the
defined routedomain. defined routedomain.
``dns`` is used for specifying the list of DNS servers to use if this network ``dns`` is used for specifying the list of DNS servers to use if this network
is the primary network for the node. is the primary network for the node.
@ -191,7 +191,7 @@ is the primary network for the node.
addresses assigned from this Network addresses assigned from this Network
DHCP Relay DHCP Relay
~~~~~~~~~~ ^^^^^^^^^^
DHCP relaying is used when a DHCP server is not attached to the same layer 2 DHCP relaying is used when a DHCP server is not attached to the same layer 2
broadcast domain as nodes that are being PXE booted. The DHCP requests from the broadcast domain as nodes that are being PXE booted. The DHCP requests from the
@ -283,7 +283,7 @@ An example HardwareProfile document:
count: 530000 count: 530000
Device Aliases Device Aliases
~~~~~~~~~~~~~~ ^^^^^^^^^^^^^^
Device aliases are a way of mapping a particular device bus address Device aliases are a way of mapping a particular device bus address
to an alias. In the example above we map the PCI address ``0000:00:03.0`` to an alias. In the example above we map the PCI address ``0000:00:03.0``
@ -294,7 +294,7 @@ at PCI address ``0000.00.03.0``. Currently device aliases are supported
for network interface slave devices and storage physical devices. for network interface slave devices and storage physical devices.
Kernel Parameter References Kernel Parameter References
~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Some kernel parameters specified in a host profile rely on particular hardware Some kernel parameters specified in a host profile rely on particular hardware
builds, such as ``isolcpus``. To support the greatest flexibility in building builds, such as ``isolcpus``. To support the greatest flexibility in building
@ -358,7 +358,7 @@ adopted from *defaults*) and can then again override or append any
configuration that is specific to that node. configuration that is specific to that node.
Defining Node Out-Of-Band Management Defining Node Out-Of-Band Management
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Drydock supports plugin-based OOB management. At a minimum a Drydock supports plugin-based OOB management. At a minimum a
OOB driver supports configuring a node to PXE boot during the next OOB driver supports configuring a node to PXE boot during the next
@ -370,7 +370,7 @@ parameters are required for that type and what capabilities are available
via OOB driver tasks. via OOB driver tasks.
IPMI IPMI
**** """"
The ``ipmi`` OOB type requires additional configuration to allow OOB The ``ipmi`` OOB type requires additional configuration to allow OOB
management: management:
@ -386,7 +386,7 @@ Currently the IPMI driver supports only basic management by setting nodes to PXE
power-cycling the node. power-cycling the node.
Libvirt Libvirt
******* """""""
The ``libvirt`` OOB type requires additional configuration within the site definition The ``libvirt`` OOB type requires additional configuration within the site definition
as well as particular configuration in the deployment of Drydock (and likely the node as well as particular configuration in the deployment of Drydock (and likely the node
@ -407,7 +407,7 @@ Currently the Libvirt driver supports only basic management by setting nodes to
power-cycling the node. power-cycling the node.
Defining Node Interfaces and Network Addressing Defining Node Interfaces and Network Addressing
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Node network attachment can be described in a ``HostProfile`` or a Node network attachment can be described in a ``HostProfile`` or a
``BaremetalNode`` document. Node addressing is allowed only in a ``BaremetalNode`` document. Node addressing is allowed only in a
@ -420,7 +420,7 @@ Once the interface attachments to networks is defined, ``HostProfile`` and
which network the node should use as the primary route. which network the node should use as the primary route.
Interfaces Interfaces
********** """"""""""
Interfaces for a node can be described in either a ``HostProfile`` or Interfaces for a node can be described in either a ``HostProfile`` or
``BaremetalNode`` definition. This will attach a defined NetworkLink to a host ``BaremetalNode`` definition. This will attach a defined NetworkLink to a host
@ -467,7 +467,7 @@ that interface for an inherited configuration.
have trunking enabled or the design validation will fail. have trunking enabled or the design validation will fail.
Addressing Addressing
********** """"""""""
Addressing for a node can only be defined in a ``BaremetalNode`` definition. The Addressing for a node can only be defined in a ``BaremetalNode`` definition. The
``addressing`` stanza simply defines a static IP address or ``dhcp`` for each ``addressing`` stanza simply defines a static IP address or ``dhcp`` for each
@ -492,7 +492,7 @@ Example ``addressing`` YAML schema:
Defining Node Storage Defining Node Storage
~~~~~~~~~~~~~~~~~~~~~ ^^^^^^^^^^^^^^^^^^^^^
Storage can be defined in the ``storage`` stanza of either a HostProfile or Storage can be defined in the ``storage`` stanza of either a HostProfile or
BaremetalNode document. The storage configuration can describe the creation of BaremetalNode document. The storage configuration can describe the creation of
@ -539,13 +539,13 @@ Example YAML schema of the ``storage`` stanza:
mount_options: 'defaults' mount_options: 'defaults'
Schema Schema
****** """"""
The ``storage`` stanza can contain two top-level keys: ``physical_devices`` and The ``storage`` stanza can contain two top-level keys: ``physical_devices`` and
``volume_groups``. The latter is optional. ``volume_groups``. The latter is optional.
Physical Devices and Partitions Physical Devices and Partitions
******************************* """""""""""""""""""""""""""""""
A physical device can either be carved up in partitions (including a single A physical device can either be carved up in partitions (including a single
partition consuming the entire device) or added to a volume group as a physical partition consuming the entire device) or added to a volume group as a physical
@ -563,7 +563,7 @@ mapping with the following keys
volume. Incompatible with the ``partitions`` specification. volume. Incompatible with the ``partitions`` specification.
Partition Partition
^^^^^^^^^ """""""""
A partition mapping describes a GPT partition on a physical disk. It can be left A partition mapping describes a GPT partition on a physical disk. It can be left
as a raw block device or formatted and mounted as a filesystem. as a raw block device or formatted and mounted as a filesystem.
@ -585,7 +585,7 @@ as a raw block device or formatted and mounted as a filesystem.
* ``fs_label``: A filesystem label to assign to the filesystem. Optional. * ``fs_label``: A filesystem label to assign to the filesystem. Optional.
Size Format Size Format
^^^^^^^^^^^ """""""""""
The size specification for a partition or logical volume is formed from three The size specification for a partition or logical volume is formed from three
parts: parts:
@ -602,7 +602,7 @@ parts:
* %: The percentage of total device or volume group space * %: The percentage of total device or volume group space
Volume Groups and Logical Volumes Volume Groups and Logical Volumes
********************************* """""""""""""""""""""""""""""""""
Logical volumes can be used to create RAID-0 volumes spanning multiple physical Logical volumes can be used to create RAID-0 volumes spanning multiple physical
disks or partitions. Each key in the ``volume_groups`` mapping is a name disks or partitions. Each key in the ``volume_groups`` mapping is a name
@ -616,7 +616,7 @@ invalid. Each mapping value is another mapping describing the volume group.
created in the volume group created in the volume group
Logical Volume Logical Volume
^^^^^^^^^^^^^^ """"""""""""""
A logical volume is a RAID-0 volume. Using logical volumes for ``/`` and A logical volume is a RAID-0 volume. Using logical volumes for ``/`` and
``/boot`` is supported ``/boot`` is supported
@ -637,7 +637,7 @@ and ``kernel`` to use as well as customize the kernel configuration with
``kernel_params``. ``kernel_params``.
Image and Kernel Selection Image and Kernel Selection
************************** ^^^^^^^^^^^^^^^^^^^^^^^^^^
The valid ``image`` and ``kernel`` values are dependent on what is supported The valid ``image`` and ``kernel`` values are dependent on what is supported
by your node provisioner. In the example of Canonical MaaS using the 16.04 LTS by your node provisioner. In the example of Canonical MaaS using the 16.04 LTS
@ -645,7 +645,7 @@ image, the values would be ``image: 'xenial'`` and ``kernel: 'ga-16.04'`` for th
LTS kernel or ``kernel: hwe-16.04`` for the hardware-enablement kernel. LTS kernel or ``kernel: hwe-16.04`` for the hardware-enablement kernel.
Kernel Parameters Kernel Parameters
***************** ^^^^^^^^^^^^^^^^^
The ``kernel_params`` configuration is a mapping. Each key should either be a string The ``kernel_params`` configuration is a mapping. Each key should either be a string
or boolean value. For boolean ``true`` values, the key will be added to the kernel or boolean value. For boolean ``true`` values, the key will be added to the kernel
@ -653,7 +653,7 @@ parameter list as a flag. For string values, the key:value pair will be added to
kernel parameter list as ``key=value``. kernel parameter list as ``key=value``.
Parameter References Parameter References
^^^^^^^^^^^^^^^^^^^^ """"""""""""""""""""
One special case is supported for values that match a hardware profile reference. One special case is supported for values that match a hardware profile reference.
When the parameter is rendered for a particular node, the value included in the When the parameter is rendered for a particular node, the value included in the

View File

@ -14,17 +14,17 @@
License for the specific language governing permissions and limitations License for the specific language governing permissions and limitations
under the License. under the License.
============================= ===========================
Dryodck Topology Validation Drydock Topology Validation
============================= ===========================
DD1XXX - Storage Validations DD1XXX - Storage Validations
============================= ============================
To be continued To be continued
DD2XXX - Network Validations DD2XXX - Network Validations
============================= ============================
To be continued To be continued
@ -34,6 +34,6 @@ DD3XXX - Platform Validations
To be continued To be continued
DD4XXX - Bootaction Validations DD4XXX - Bootaction Validations
============================= ===============================
To be continued To be continued

View File

@ -27,5 +27,7 @@ Validation Checks
These checks are meant to check the business logic of documents sent to the validatedesign API. These checks are meant to check the business logic of documents sent to the validatedesign API.
.. autoclass:: drydock_provisioner.orchestrator.validations.validator.Validator .. currentmodule:: drydock_provisioner.orchestrator.validations.validator
.. autoclass:: Validator
:members: :members:

View File

@ -15,12 +15,12 @@
ARG FROM=ubuntu:16.04 ARG FROM=ubuntu:16.04
FROM ${FROM} FROM ${FROM}
LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc://#airshipit@freenode' LABEL org.opencontainers.image.authors='airship-discuss@lists.airshipit.org, irc://#airshipit@freenode' \
LABEL org.opencontainers.image.url='https://airshipit.org' org.opencontainers.image.url='https://airshipit.org' \
LABEL org.opencontainers.image.documentation='https://airship-drydock.readthedocs.org' org.opencontainers.image.documentation='https://airship-drydock.readthedocs.org' \
LABEL org.opencontainers.image.source='https://git.openstack.org/openstack/airship-drydock' org.opencontainers.image.source='https://git.openstack.org/openstack/airship-drydock' \
LABEL org.opencontainers.image.vendor='The Airship Authors' org.opencontainers.image.vendor='The Airship Authors' \
LABEL org.opencontainers.image.licenses='Apache-2.0' org.opencontainers.image.licenses='Apache-2.0'
ARG UBUNTU_REPO=http://archive.ubuntu.com/ubuntu ARG UBUNTU_REPO=http://archive.ubuntu.com/ubuntu
ARG TRUSTED_UBUNTU_REPO=no ARG TRUSTED_UBUNTU_REPO=no

View File

@ -1,17 +0,0 @@
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- hosts: primary
tasks:
- name: Publish current merged documents on readthedocs
shell: 'set -x && curl -X POST -d "token={{ airship_drydock_readthedocs.token | trim }}" "{{ airship_drydock_readthedocs.url | trim }}"'
register: result

View File

@ -25,11 +25,6 @@
chdir: "{{ zuul.project.src_dir }}" chdir: "{{ zuul.project.src_dir }}"
target: helm_lint target: helm_lint
register: result register: result
- name: Build documents locally
make:
chdir: "{{ zuul.project.src_dir }}"
target: docs
register: result
- name: Execute the make target for security scanning - name: Execute the make target for security scanning
make: make:
chdir: "{{ zuul.project.src_dir }}" chdir: "{{ zuul.project.src_dir }}"

10
tox.ini
View File

@ -72,13 +72,13 @@ commands=
basepython=python3 basepython=python3
whitelist_externals=tee whitelist_externals=tee
sh sh
commands = sh -c 'oslo-config-generator --config-file=etc/drydock/drydock-config-generator.conf | tee etc/drydock/drydock.conf.sample docs/source/_static/drydock.conf.sample' commands = sh -c 'oslo-config-generator --config-file=etc/drydock/drydock-config-generator.conf | tee etc/drydock/drydock.conf.sample doc/source/_static/drydock.conf.sample'
[testenv:genpolicy] [testenv:genpolicy]
basepython=python3 basepython=python3
whitelist_externals=tee whitelist_externals=tee
sh sh
commands = sh -c 'oslopolicy-sample-generator --config-file etc/drydock/drydock-policy-generator.conf | tee etc/drydock/policy.yaml.sample docs/source/_static/policy.yaml.sample' commands = sh -c 'oslopolicy-sample-generator --config-file etc/drydock/drydock-policy-generator.conf | tee etc/drydock/policy.yaml.sample doc/source/_static/policy.yaml.sample'
[testenv:pep8] [testenv:pep8]
basepython=python3 basepython=python3
@ -97,9 +97,9 @@ max-line-length=119
[testenv:docs] [testenv:docs]
basepython=python3 basepython=python3
deps= deps=
-rdocs/requirements-doc.txt -rdoc/requirements-doc.txt
whitelist_externals=rm whitelist_externals=rm
recreate=true recreate=true
commands = commands =
rm -rf docs/build rm -rf doc/build
sphinx-build -b html docs/source docs/build sphinx-build -b html doc/source doc/build/html