Update kubernetes client to v26.1.0
Updating armada to focal base image
Remove xenial and opensuse dockerfiles
Update tox python from py35 to py38
Add apparmor for docker build
Uplift HTK chart version 0.2.52
Bumping up some python dependencies to get in sync with shipyard
Added clear-firewall role for airskiff-deploy playbook
Change-Id: If06a3f60466702d05a21c24a7cb8041bed41507a
Moving to falcon 3.0.0+ brings in some changes to the response
object. One of those is the deprecation of the "body" response
field. This PS attempts to get ahead and make the necessary
changes to no longer use deprecated fields.
Change-Id: Iac5d8cd2c658c337dfe7937db8124f3107d77e91
From recently merged document updates in [0] there is a desire to
standardize the Airship project python codebase. This is the effort
to do so for the Armada project.
[0] https://review.opendev.org/#/c/671291/
Change-Id: I4fe916d6e330618ea3a1fccfa4bdfdfabb9ffcb2
We have seen issues with dangling threads in Armada. This is likely due to
a bug [0] in the version of gRPC that we were pinned to.
This patchset:
- moves us to the latest versions of the gRPC python libraries which add
a new `channel.close()` method to cleanup channels.
- implements the python context manager api in the tiller handler
- uses the context manager api to explicitly scope tiller channel creation
and cleanup to each Armada API and CLI call.
This also fixes a couples issues with error handling introduced in [1].
[0]: https://github.com/grpc/grpc/issues/14338
[1]: https://review.openstack.org/#/c/610384
Change-Id: I2577a20fc76c397aa33157dc12a0e1d36f49733e
This patch set consolidates two distinct/disparate base exception
classes together. Currently, Armada has base exceptions in
armada/errors.py and armada/exceptions/base_exceptions.py --
the former of which is a port from Shipyard and the latter of
which is "old-school" Armada code.
The problem is that the two implementations are completely
separate and different. Not only that, but Armada doesn't even
appear to be using armada.errors which it should be as it implements
the canonical UCP standard around error handling.
So this patch set merges the two implementations together. Note,
however, that Armada still doesn't use the same base exception
for all its exceptions which is not ideal because -- again --
Armada should be making use of the UCP error handling logic. This
is seen in the inheritance differentiation between `ArmadaBaseException`
which inherits from Exception and `ArmadaAPIException` which inherits
from `falcon.HTTPError`.
More work is needed to ensure that each exception actually has
an appropriate status code and that said status code is getting
bubbled up to the end user/client/other server as appropriate.
Change-Id: I7cf22fcbba4164f11fb01d9445ac575a14a5c3ab
- Adding yapf diff to pep8 target
- Adding yapf tox target to do actual format
** The rest of this PS contains formatted code only, no other changes
Change-Id: Idfef60f53565add2d0cf65bb8e5b91072cf0aded
Enhance request logging (and scrub sensitive headers)
Enhance Tiller logging
Update grpcio, unpin from 1.6.0rc1
Plus a couple typo fixes
Plus a couple unused vars
Change-Id: I8afd679f6716c6e1af234a59ac44ba1fdc73cdc8
This PS adds validation logic recently implemented in
armada.utils.validate [0] for validating documents and
Armada-generated Manifests to the Test and Tests controller classes.
Also refactors some exception handling for both controller classes to
better bubble up the appropriate exception.
Finally unit tests have been added for the Armada Test controller
to verify above changes work.
[0] https://review.gerrithub.io/#/c/378700/
Change-Id: I01f73c1778bf7c2e38032d5fddabd327c013edbb
ARMADA-239: Documentation for validation error codes for Armada
2 of 3 commits (Inital Setup and Remaining Exceptions are in seperate commits)
-guide-exceptions.rst contains the files to include in the documentation.
-docs/.../exceptions files contains the format and content of the documenation.
-armada/exceptions files were modified in their comments in order to utilize the
sphinx-directed method.
-conf.py was modified to indicate the full path for the autoexpection to work
when merged.
Please Note: If the exception is not raised anywhere, it is not included in the
documentation.
Change-Id: I6ddd598bfbb26cdd6ff33682844b0739c440d662
This PS allows users to specify the manifest file to use
by the Armada handler by introducing a new flag called
`target_manifest`. This flag was added to the API and
CLI.
A foundation of unit tests for the manifest handler
is included in this PS. Most of the coverage is aimed
at checking the various success and failure cases
surrounding the new target_manifest feature.
Also updates documentation to convey information about
the new flag and clean up some documentation formatting
inconsistencies and typos.
Change-Id: I1d5a3ecc1e99b6479438d0ee5490610178be34fe
* Ensure that configurations are done via the global `cfg` object
* Ensure that the logger is configure through the global object
* Upload a configuration sample file with DEFAULT section having
the armada.conf and oslo_log namespace