There was a bug[1] in diskimage-builder when using pypi mirrors
if the host doesn't have "python" available DIB will fail.
So, I am going to bump the requirements minimum in Octavia for
diskimage-builder to be the minimum version with this fix.
[1] https://bugs.launchpad.net/diskimage-builder/+bug/1577105
Change-Id: If0ff2a855ad5b9d9ef3742ad0596c97a6dbf81ed
This patch adds support for the octavia-lib to get objects by ID.
Change-Id: I98b399891488e5972ea4d332c06b55b34f20fb11
Story: 2005870
Task: 33680
Co-Authored-By: Adam Harwell <flux.adam@gmail.com>
Correct the inline comment to not include an empty new line at the start
of generated /var/lib/octavia/vrrp/check_script.sh that leads to this
kind of error:
> Aug 26 11:49:32 amphora-12184e15-1ec3-4d80-98a7-c7d1ddb6716f
> Keepalived_vrrp[15265]: Error exec-ing command
> '/var/lib/octavia/vrrp/check_script.sh', error 8: Exec format error
Change-Id: Icddd2873abeb56a389a35356995df6dde70872b2
This tasks removes the dns_name option from ports, so that they can be
plugged into a new amphora, which has a different name. This was lost in
change I04d267bd3cdedca11f0350c5255086233cba14ec.
Story: 2006205
Task: 35791
Change-Id: I4230feae5b6f0778b738bddbc69c5a0cd3e6930c
Signed-off-by: Sven Wegener <sven.wegener@inovex.de>
This addresses the potentially confusing use of two terms
(TERMINATED_TLS and TERMINATED_HTTPS) used to describe the same
behavior by standardizing on the term TERMINATED_HTTPS in the
parameters of the documentation.
Change-Id: I3f444ba8e68ba8fc692ba41eec1ad4672ba5a16b
Story: 2006405
Task: 36289
The default TaskFlow engine is now set to 'parallel' instead of
'serial'. The parallel engine schedules tasks onto different threads to
allow for running non-dependent tasks simultaneously. This has the
benefit of accelerating the execution of some Octavia Amphora flows such
as provisioning of active-standby amphora loadbalancers.
Change-Id: I108b7f629d39c40b60ddf4a1878631f32e37b357
This patch makes sure that the amphora service VMs have an rng
device available to them that by default sources from
/dev/urandom on the compute host.
Depends-On: https://review.opendev.org/675745
Change-Id: Ifc9ce78755b33b6ad88b1a0c4f100c27f35bd77e
The provider driver utils module converts Octavia data model objects
to provider driver objects.
This module had some bugs in the conversion that led to errors and
incomplete data.
Specifically the following conversions were fixed:
flavor_id in load balancer conversion
sni_refs and L7 policies in listener conversion
health monitors in pool conversion
This patch corrects those and updates the tests.
Story: 2006306
Task: 36022
Change-Id: Ia2570b929be1c9d89ca971fb37f036f104fb32f2
SQLAlchemy can get confused if the parent database objects are not
linked when creating new records using the repository.
For example, when creating an L7 policy, even if you specify the
listener_id, sqlalchemy will drop the ID from the final SQL INSERT
parameter.
This patch corrects the L7 policy and rule create methods to have
the required parent objects linked.
Story: 2006305
Task: 36021
Change-Id: I4380605bdb346eee824b2ce05fa25175c4cc3034
Currently the amphora agent will lookup interfaces using the
interface name determined earlier in the plug method. This can
lead to a race condition with the udev interface renaming rule.
This patch changes the interface lookup to use the MAC address
directly and not rely on the interface name.
Story: 2006300
Task: 36013
Change-Id: I5bc21d5abdeb67a3a8ae88456735643463f15694
Added 'protocol' name in the unique constraint list for listeners,
updated conflicting/duplicate entries detection in API.
Added alembic migration script.
Story: 2005070
Task: 29643
Change-Id: If85b59bddb8d6dc9916c3fef5155e838f1af63b6
This patch changes the devstack plugin to use the infra pypi
mirror if one is declared in the environment.
Depends-On: https://review.opendev.org/675468
Change-Id: Iae839b6e59c43bc4be1e12702b3e2197b038b4c2
The amphora-agent element installs a few build packages when installing
the agent from source. This patch removes those large in size packages
after they are no longer needed. This will reduce the
image size significantly.
Co-Authored-By: Michael Johnson <johnsomor@gmail.com>
Change-Id: I5d12b7a987f65013daa5298f5062c1f30db23f41
In some environments running older versions of gunicorn in the
amphora image, gunicorn can fail to start do to /dev/log socket
issues (timing, configuration, etc.).
This patch sets up a dedicated rsyslog socket /run/rsyslog/octavia/log
for gunicorn and haproxy to use. This should resolve any issues with
systemd overriding the /dev/log socket.
This also bumps the gunicorn minimum verison to 19.9.0.
Change-Id: I1e1ad8fde2ad8c1ffba95b1867afb130503b0a5b
A recent automated patch[1] removed py36 from the tox default
environment list. Since Ubuntu 18.04 includes python 3.6 and we
still include a functional-3.6 test, we should keep the py36
environment in the list.
[1] https://review.opendev.org/#/c/669440/
Change-Id: I2bab434523efee0ad755e794f00c3a1ca85ec68f
In the flavor documentation there is an example output of the provider
capabilities list output. It is only an example and not an actual list
of available capabilities (this is why the command and API exit).
This patch adds "..." to the example to indicate it's not a complete
list as the sentence above the example states.
Change-Id: Ic2367ffbe5f116b7e386552dfc1fd17aa8235883
Story: 2006340
Task: 36090
Some Python libraries were missing in requirements.txt. This patch adds
them to the list of dependencies.
Change-Id: I6dc4a7626cd5244b445893b96a7d7351ca528dc1
Since centos-minimal is used as base for centos image, dib installs
haproxy 1.5.x instead of haproxy 1.8.x, and dhcp client is missing
(dhclient package).
Depends-On: https://review.opendev.org/#/c/673172/
Story: 2006323
Task: 36056
Change-Id: I3be0fa18578c7c1552f24842a09e18c01e34358a
The 'rpm', 'yumdownloader' and 'bc' tools do not come installed in the
Ubuntu nodepool image. We need 'rpm' and 'yumdownloader' to build
centos-minimal amphora images and 'bc' for checking minimum supported
Ubuntu version in diskimage-create.sh
This patch also adds octavia-lib to the required projects.
Change-Id: Iaa0f763005529cc394d3b95ce07f2be71e9b3778
When removing listeners, listeners are removed from the load balancer's
listener list just before reconfiguring each amphora.
In case of ACTIVE/STANDBY topology, the code is performed on both
amphorae, so the listener is removed twice from the list.
This commit ensures that we don't remove an already removed listener.
Story: 2006329
Task: 36065
Change-Id: I426255f587f36b415eb999a9eb28cf0f91de94b0
This patch adds tox "tips" jobs to Octavia which checkout the master
branch of the dependent libraries (octavia-lib in the initial case).
Currently this runs the py37 unit tests and the py37 functional jobs.
Change-Id: Idc5dce9ed609e5bd268588f112637cab151c93bf
This patch adds the DIB_REPOLOCATION_amphora_agent and
DIB_REPOREF_amphora_agent optional environment variables to the
Octavia diskimage-create README.rst to clarify how to override the
amphora agent version in image builds.
Change-Id: Ic9beec74f84176d27fbefcc2fba281444ab02fa2
A patch[1] introduced a startup check for the socket paths that
impacted a unit test checking debtcollector is finding the new
octavia-lib location of the DriverLibrary.
This patch correctly mocks out this check for this unit test.
[1] https://review.opendev.org/#/c/665027/
Change-Id: Ife93834654385430d6a333d3d6ee67b719b6c37e