PEP8 needs upgrade of hacking version and lower-constraints require us
to start having stuff supporting Python 3.8 in lower-constraints.txt.
Both are fixed by this commit.
Change-Id: I1d0b244f98dbe2228edfcc0caae70b43013a18ad
This adds basic framework for kuryr-status upgrade
check commands. For now it has only "check_placeholder"
check implemented.
Real checks can be added to this tool in the future.
Change-Id: I8af38f087672a390ec8b2b78916315b5a646fcbb
Story: 2003657
Task: 26137
Pyroute2 was updated, its change make some testcases failed.
This patch fix the problem with pyroute2 update.
Change-Id: I300f9830927a8babf9112f9aff265ef4b2e5e03e
Closes-Bug: #1700469
Python3.3 introduced a very nice standard library called ipaddress that
serves for a very similar purpose to netaddr. By moving to it, we are
future proofing our code and making Python3 users of kuryr-lib not have
to install an external library.
Change-Id: I9e995b3804e60bea199e150e70f828d5f6e2bed4
Implements: blueprint netaddr-to-ipaddress
Signed-off-by: Antoni Segura Puimedon <antonisp@celebdor.com>
This patch moves, as was discussed in the weekly IRC meeting,
[keystone] and [neutron] options, that were just for talking to
Neutron, inside [neutron].
The new organization is consistent with how Nova talks to Neutron
and how Neutron notifies nova. In doing so, we also reduce our codebase
since we can leverage the nice things offered by keystoneauth1.
Closes-bug: #1563011
Change-Id: Ia56b22963f5a2130a722403a14ee1a233ac6cff9
Signed-off-by: Antoni Segura Puimedon <antonisp@celebdor.com>
Somehow we were missing this dep. I suspect that another oslo dep was
pulling it anyway, but the policy is that any module that we import
directly should be in our requirements.txt even if it is being pulled
by another dependency (as that dependency could drop the sub dep and
we'd break).
Change-Id: I5d5ee420273d87c73c5c6c8ac806eaea2ce18c2b
Signed-off-by: Antoni Segura Puimedon <antonisp@celebdor.com>
In the split we forgot to drop some requirementes that belong only to
kuryr-libnetwork. This patch removes all the requirementes that are not
explicitly used in the kuryr.lib namespace.
Change-Id: Ia31c402e90e92802b5f096072799eacfa122aaca
Signed-off-by: Antoni Segura Puimedon <antonisp@celebdor.com>
Pyroute2 had bug with older kernels in 3.16 branch that was being
exposed in fullstack tests:
htps://github.com/svinota/pyroute2/issues/259
It was patched in the 0.4.3 release with
https://github.com/svinota/pyroute2/commit/22a2a06c0
Change-Id: I7833dee8129aa4557d9cde1e95aca6e9e55a9bc4
Signed-off-by: Lenka Segura <lenka@sepu.cz>
This patch introduces oslo.log as the new dependency and modifies the
configuration to use its options by default. Options can be configured
through the generated config file.
Change-Id: Iad9ccc5a521ffc49fe813a90ab0ce4997db707d1
Signed-off-by: Taku Fukushima <f.tac.mac@gmail.com>
Closes-Bug: #1569672
tox is not part of global requirements and thus the sync with
requirements repository fails. Remove tox, it's wrong to mention it, we
expect tox to be installed.
Change-Id: I562456af72fb5336789b9ca5837574712e788ab9
The support for the subnetpool APIs was added by commit
b978f909014cbc398c21bfae917fcece89a36e38
that first appears in the tag 2.4.0.
Change-Id: I41e454d10110c386562ccde9a0c9c59f6848ae5a
Probably we didn't notice it in devstack since other software pulls
it first. Maybe to avoid these sort of things devstack should run
each piece in a different virtual environment.
Change-Id: I4f24b680d15d0da2347ba5996a1708649985f2bc
This patch implements /NetworkDriver.Join, which goes through the
following steps:
1. Find the Neutron port associated with the given EndpointID
2. Create the veth pair based on the info of the retrieved port
3. Bind the port to the veth endpoint
4. Construct the response with the port and return it
In the process 3, Kuryr executes the binding script specified in the
binding:vif_type attribute of the retrieved Neutron port. Although
Neutron plugin can put arbitrary types in that attribute, if the
attribute was not specified it defaults to "unbound" and Kuryr invokes
"unbound" executable, which always fails with the status code 1.
This patch also includes the unit tests cover the successful case and
the failures.
Change-Id: Id3a8288199975d86812c7c1d210c7e11ae58d7b8
Signed-off-by: Taku Fukushima <f.tac.mac@gmail.com>
This patch adds the validation for /NetworkDriver.CreateNetwork with
the JSON schema.
This patch also introdueces the basic foundation for the following
validations with JSON schemata. The common part of the scheamta is
separated in commons.py and it's injected into each schema.
Change-Id: I1cd849db2eeadb03b4488e1842fbd22e62fff169
Signed-off-by: Taku Fukushima <f.tac.mac@gmail.com>
This patch replaces the mocked version of /NetworkDriver.CreateEndpoint
with the actual Neutron call. This unit test for the endpoint is also
implemented.
libnetwork's Endpoint is mapped into Neutron's subnets and port. The
request to create an Endpoint contains the information of libnetwork's
Interfaces to be managed, however in Neutron there's no single resource
corresponds to the Endpoint.
Therefore Kuryr breaks the Endpoint into the following three pieces.
1. Subnet for Address property in the request
- Kuryr passes the given Address property to CIDR for the request
against Neutron API as it is
2. Subnet for AddressIPv6 property in the request
- Kuryr passes the given AddressIPv6 property to CIDR for the request
against Neutron API as it is
3. Port which MAC address is the same as MacAddress property in the
request
To distinguish Neutorn subnets created in 1. and 2., Kuryr names them by
the given EndpointId with the their subnet addresses as the postfixes.
For the Neutron port, Kuryr gives the EndpointID with the index of the
interface and the postfix, "port". For instance, if Address, i.e.,
10.0.1.1/24, and AddressIPV6, i.e., fe80::f816:3eff:fe20:57c4/64, which
corresponding Neutron subnets don't exist are given in a request against
/NetworkDriver.CreateEndpoint, the following subnets and a port will be
created.
* 98953db3f8e6628caf4a7cad3c866cb090654e3dee3e37206ad8c0a81355f1b7-10.0.1.0
* 98953db3f8e6628caf4a7cad3c866cb090654e3dee3e37206ad8c0a81355f1b7-fe80::
* 98953db3f8e6628caf4a7cad3c866cb090654e3dee3e37206ad8c0a81355f1b7-0-port
In the process 1. and 2., Kuryr doesn't specify the allocation list for
the addresses and it's the responsibility of Neutron to allocate an
appropriate set of the addresses.
In the latter workflow, where a container joins the network and be
assinged for the specific address, Kuryr binds the container with the
created port which IP address that is allocated in this phase.
This patch implements the following IPAM blueprint in Kuryr partially
except for retrieving the names of the default subnets from the config
file:
https://blueprints.launchpad.net/kuryr/+spec/ipam
Change-Id: I1798b3baff56e285059435f2b8620f36811b580f
Signed-off-by: Taku Fukushima <f.tac.mac@gmail.com>
This patch adds unit tests for Kuryr and examine if it satisfies
libnetwork's remote driver specifications.
Change-Id: Ic8ab9944a5ed884db518c840b75917261583e53e
Signed-off-by: Taku Fukushima <f.tac.mac@gmail.com>
This patch adds some primary dependencies, Flask to
requirements.txt.
Change-Id: I1c285c1f91539403441ba200b58423e3dfc28988
Signed-off-by: Taku Fukushima <f.tac.mac@gmail.com>