Commit Graph

45 Commits

Author SHA1 Message Date
Takashi Kajinami fd1bacf738 Remove deprecated [pod_vif_nested] worker_nodes_subnet
This option was deprecated in 4.0.0[1] in favor of the new subnet"s"
option. The latest release is 9.0.0, so we can assume enough times has
been given to users so that they can switch to the new option.

[1] b3814a33d6

Change-Id: Ie86c019bbb560cca9b5a3a77319ed639a2245a2d
2024-02-28 18:25:54 +09:00
Michał Dulko 04d4439606 Remove SR-IOV support
This got decided at the PTG. The code is old, not maintained, not tested
and most likely doesn't work anymore. Moreover it gave us a hard
dependency on grpcio and protobuf, which is fairly problematic in Python
and gave us all sorts of headaches.

Change-Id: I0c8c91cdd3e1284e7a3c1e9fe04b4c0fbbde7e45
2022-06-29 12:49:37 +02:00
yangjianfeng 90088f3b0d Support specify project id by annotation
The implementation have some difference with the description of
blueprint. For more strict isolation, we only get project id from
namespace annotaion or configure option. The other resources's
project id inherit it's project or get from configiure option.

Implements: blueprint specify-project-by-annotation
Change-Id: Ia82cce6b211226599b4e1ca0d10416ed5e519ea2
2022-04-29 15:22:50 +08:00
Roman Dobosz c034b0060e Use kubeadm for installing Kubernetes on devstack.
Till now, for installing kuryr-kubernetes and one of the crucial service
- kubernetes, there has been used manual method for installing it in
specified version. Over time it became a burden to follow requirements
and constraints, therefore decision has been made to use recommended way
of installing Kubernetes - kubeadm. In this patch devstack installation
of the kuryr-kubernetes and its dependences has been heavily reworked.

Other than that, OpenShift related functions has been removed, since
they were all outdated and non-working for the long time.

Change-Id: Ife21874c0a71ba07723094c0f880aabcf5825b77
2021-05-21 13:07:21 +02:00
Zuul e21d2f3d8b Merge "Add option to set listener timeouts for lb created by Kuryr" 2021-03-25 16:58:26 +00:00
Tabitha Fasoyin 87f6c66d31 Add option to set listener timeouts for lb created by Kuryr
The timeout-client-data and timeout-member-data configurations
for Octavia listeners default to 50 seconds for load balancers
created by Kuryr. This patch allows the creation and modification
of load balancers handled by Kuryr with different timeouts values.

Implements: blueprint configure-lb-listeners-timeout
Change-Id: I99016001c2263023d1fa2637d7b5aeb23b3b2d9d
2021-03-17 14:58:37 +00:00
Maysa Macedo 5a08f265d4 Include release notes for Service without selectors
Add a release not for services without selectors feature.

Change-Id: I0572e03ee039aa3b927b4b1c7dd4575f9535bab1
2021-03-10 14:43:06 -03:00
Michał Dulko b3814a33d6 Multiple nodes subnets support
This commit deprecates `[pod_vif_nested]worker_nodes_subnet` in favor of
`[pod_vif_nested]worker_nodes_subnets` that will accept a list instead.
All the code using the deprecated options is updated to expect a list
and iterate over possible nodes subnets.

Change-Id: I7671fb06863d58b58905bec43555d8f21626f640
2021-01-22 13:41:39 +01:00
Maysa Macedo 525dc1521d Ensure egress NP works with Service without selectors
This commit ensures egress Network policy can also work with
services without selectors.

Change-Id: I26e1dce0b6e363f027ee6d4dfea99053ffe80bbe
2020-11-16 14:15:47 +01:00
Maysa Macedo a80c79168c Add release note about update of mtu config value
This commit adds a release note announcing the update
of the mtu config value and the reason behind it.

Change-Id: Ieeea42a49e358f48f0d567d9450dc9b2dcc14173
2020-10-29 18:15:29 +00:00
Maysa Macedo 213483fd09 Remove lb sg creation when octavia provider is ovn-octavia
When deleting services and the respective load balancer
with using ovn-octavia provider, the lb sg is not deleted.
This commit fixes the issue by removing the LB sg creation
when the octavia provider is ovn-octavia, as that sg is not
really enforced.

Closes-bug: 1880207
Change-Id: I2c77b1d0ac682008ff6c31781d6075c208c689d0
2020-05-28 08:08:16 +00:00
Danil Golov 8d162a3bd5 Remove excess physnet to device mapping
Since sriov binding driver uses pod resource
service and compute particular virtual function
which was returned by pod resource service, there
is no need to have physycal_device_mapping.

Also this commit fixes documentation and
adds release note regarding physical_device_mapping removal.

Change-Id: Ibf793b78727da40283b6221c6df0da969bf5e829
Signed-off-by: Danil Golov <d.golov@samsung.com>
2020-03-24 12:11:07 +03:00
ITD27M01 9cdd1c8112 Ensures accurate quota calculation during the readiness checks
Current deployments of OpenShift platform with Kuryr CNI
in real OpenStack installations (multi-projects environments)
are crashing because of kuryr-controller cannot come to
READY state.

This is due to inaccurate quota calculations in the readiness
process and an unscalable fetching of objects from Neutron API
to count and comparing with limits.

This commit ensures accurate quota calculation for installation
project during the readiness checks and removes the harsh
Neutron API calls. It will dramatically speedup readiness checks.

Change-Id: Ia5e90d6bd5a8d30d0596508abd541e1508dc23ec
Closes-Bug: 1864327
2020-02-25 16:58:02 +03:00
Michał Dulko d1a12bf27b Deprecate unmaintaned features
Support for OpenShift Routes (Ingress) is not maintained by anyone, not
really tested and there are better ways to do it, so let's remove that
code from Kuryr.

Support for namespace isolation was done to mimic one of the modes of
openshift-sdn. It doesn't seem to make any sense to keep supporting it
if Network Policy support can provide the same isolation.

Change-Id: I8cfb3c50f491a5dbbfe6fa20b81ee1d0f8c6b4a7
2020-02-01 16:18:02 +00:00
Luis Tomas Bolivar 0e581caa2d Add support to Octavia ACLs
Since Train, Octavia has a new API to restrict lbs access on
listeners. This is important when enforcing Network Policies
on services.

Before this patch, Kuryr required either admin priviledges to
change the security group rules associated to the loadbalancer,
or use the ovn-octavia loadbalancer that does not require those
rules as the source IP is not changed when passing through the
LoadBalancer VIP.

By adopting the new Octavia ACL API, there is no need for admin
priviledges to limit the access to the loadbalancers.

Implements: blueprint octavia-acls
Change-Id: I8f6bae00413aa181e9c2cac72c87bd93161796bc
2020-01-15 12:34:01 +01:00
Luis Tomas Bolivar 1e3ebc9783 Set defaults for certs and token on the k8s client
Change-Id: Id74eb4d8a7b1ea7ec97085de85f29244bbda25ea
2019-12-20 15:09:41 +01:00
Michał Dulko 28b27c5de2 Remove Python 2 support
Ussuri release is the one in which we drop Python 2 support, as its EOL
is pretty close now. This commit does so in kuryr-kubernetes by
removing Python 2 unit test jobs, switching all tempest jobs to Python
3, removing specific jobs for Python 3 and updating Dockerfiles to
centos:8 that includes Python 3 from the box.

Also CentOS 7 job is removed from check queue as it seems it doesn't
play well with Python 3. A CentOS 8 job will get created soon.

Change-Id: Id9983d2fd83cef89e3198b2760816cf4a851008b
2019-11-19 12:34:54 +01:00
Michał Dulko 3aa486d342 Add release note and docs about golang kuryr-cni
This is follow-up commit that adds documentation regarding golang
implementation of kuryr-cni.

Change-Id: I2a9488a59141016655e7a356722a1c012aa94aec
Implements: blueprint golang-kuryr-cni
2019-06-19 16:24:05 +02:00
Alexey Perevalov c8a87bf2fd Use non local port for CNI Daemon
This port 50036 can be already used in the system, due
to it's in range for egress ports.

Closes-Bug: 1829188

Change-Id: Ieee291893ca342867eb408d65402a8576327ac6d
Signed-off-by: Alexey Perevalov <a.perevalov@samsung.com>
2019-06-07 11:15:38 +02:00
Michał Dulko bee4997f4e Add option to tag Octavia resources created by us
This patch extends If75028e17d13ec62fb414fa9797ee7ac02d948d1 with
Octavia resources tagging.

Change-Id: I0a2f89007994fbd7696b0f487affc1b7b643be74
Implements: blueprint kuryr-resources-tagging
2019-03-18 17:27:59 +01:00
Zuul 53fba9a478 Merge "Use same pool_driver for different pod_vif_drivers" 2019-02-06 01:04:48 +00:00
Michał Dulko 3e3ed9dbb3 Remove way of running without kuryr-daemon
Deploying without kuryr-daemon is deprecated since Rocky and we
announced that it will be removed in the Rocky release notes. This
commit removes all the code that allows that, updates the documentation,
DevStack plugin and gates definitions.

Implements: blueprint remove-non-daemon

Change-Id: I65598d4a6ecb5c3dfde04dc5fefd7b02fc72a0cb
2019-02-04 12:53:00 +01:00
Yash Gupta b0dfd35d76 Use same pool_driver for different pod_vif_drivers
New config option vif_pool_mapping is added and pools_vif_drivers is
deprecated. The newer vif_pool_mapping is simply inverted mapping of
pools_vif_drivers.
Also, with the scoping ability added in cb2d308f84, independent
drv_pool instances can be acquired from base driver manager.

Earlier as a single instance of drv_pool was used by all
pod_drivers. This meant only the pod_driver which was
passed to drv_pool.set_vif_driver finally was used (for a given
drv_pool).

Please see release notes for further details.

Related-Bug: 1747406
Change-Id: Id0137f6b1a78e7aa3e3d3de639a5e989f4fd408c
Signed-off-by: Yash Gupta <y.gupta@samsung.com>
2019-02-04 11:44:02 +03:00
Michał Dulko eecd44d335 cri-o support
This commit adds support for cri-o by changing the binary initially used
to run CNI plugin to runc and falling back to docker only in case it's
not available.

Also DevStack support for installing and configuring Kubernetes with
cri-o is added.

Implements: blueprint crio-support
Depends-On: Ib049d66058429e499f5d0932c4a749820bec73ff
Depends-On: Ic3c7d355a455298f43e37fb2aceddfd1e7eefaf2
Change-Id: I081edf0dbd4eb57826399c4820376381950080ed
2018-12-03 19:31:11 +01:00
Daniel Mellado aa5ec451f7 Rename kuryr-status to kuryr-k8s-status
As there's another kuryr-status binary in kuryr repo this creates issues
when creating packags out of the repo and could get confusing, therefore
I'm renaming this one.

Change-Id: I4b958d53c6530dd5099b3ac1dbcde4648055ff38
2018-11-20 15:28:57 +01:00
Michał Dulko 5358702c26 Add kuryr-status utility for upgrade-checkers
This commit adds kuryr-status utility that can be used to check if
upgrade is possible, convert annotations to new format and rollback
those changes if needed.

Implements: blueprint upgrade-checkers

Change-Id: I7a40a68518d7fbba18146b64befb6f585176ec8d
2018-10-03 15:09:53 +02:00
Michał Dulko 8a38f84dd7 Add non-containerized Python 3.6 gate
Patch also changes the way we run kuryr-controller in the DevStack
plugin by removing the scripts/run_server.py and using the Python
executable in the system directly.

Implements: blueprint goal-python36

Change-Id: I1e1c62023b6018bf49163be12fdca5b42d5f46d6
2018-09-17 14:57:53 +02:00
Daniel Mellado e9fd1004ab Deprecate running Kuryr-Kubernetes with lbaasv2
This commit marks the deprecation of the support of neutron-lbaasv2 in
Kuryr-Kubernetes. It adds a deprecation message, release note and
removes the usage of lbaasv2 in the upstream gates.

From now on, the default option for lbaasv2 will always be octavia.

Change-Id: I528fc7c0462445c880d13268435c993c2e2ff00f
2018-07-01 09:04:31 +03:00
Yossi Boaron d5902e8fed OCP-Router: OCP-Route and Ingress LBaaS handlers
This is the third patch of the Ingress Controller capability.

This patch implements OCP-Route and Ingress LBaaS handlers.
Those handlers should retrieve the L7 LB details from the
Ingress controller and update L7 policy/rules and pool/members
upon changes in OCP-route and k8S-endpoint resources.

Please follow the instructions below to verify
OCP-Router functionality:

https://docs.google.com/document/d/1c3mfBToBbWlwFcw3S8fr7pQZb5_YZqFYdlG1HqaQPkQ/edit?usp=sharing

Implements: blueprint openshift-router-support

Change-Id: Ibfb6cda6dde9613ad31859d38235be031ade0639
2018-06-15 14:47:48 +00:00
Michał Dulko e416b2492a kuryr-controller A/P HA
This commit implements initial version of high availability support in
kuryr-controller - Active/Passive mode. In this mode only one instance
of controller is processing the resources while other ones are in
standby mode. If current leader dies, one of standbys is taking the
leader role and starts processing resources.

Please note that as leader election is based on Kubernetes mechanisms,
this is only supported when kuryr-controller is run as Pod on Kubernetes
cluster.

Implements: bp high-availability

Change-Id: I2c6c9315612d64158fb9f8284e0abb065aca7208
2018-06-14 10:25:34 +02:00
Luis Tomas Bolivar d5d4ef1f9d Add namespace subnet driver for namespace creation
This patch adds a new subnet driver that creates a new network
for each created k8s namespace. It makes use of K8s CRDs to store
the information about the network resources created for each
namespace

Partially Implements: blueprint network-namespace

Change-Id: I7988e1da7a9ed57f29c85ddcd99bb2c87808010e
2018-05-25 08:57:42 +02:00
Eunsoo Park 32cd153791 Make Neutron LBaaS Activation Timeout configurable
This changes _ACTIVATION_TIMEOUT of LBaaS driver from constant to
configurable value in order to make it flexible to production
environment.

This commit also increases the timeout value in DevStack plugin to make
sure Octavia has time to run Amphorae in the gate.

Co-Authored-By: Michał Dulko <mdulko@redhat.com>
Change-Id: I895d3e5af71ccc7219be422b9ca9e9f8833bad8f
Related-Bug: 1753653
Signed-off-by: Eunsoo Park <esevan.park@gmail.com>
2018-04-20 09:40:46 +02:00
Antoni Segura Puimedon d3a6cdcf99 Kuryr-Controller: make handlers pluggable
This patch introduces a new way for configuring which handlers the
Kuryr controller should be using. This will allow people to use
externally provided handlers as long as they are installed as
entrypoints of the right namespace.

Implements: blueprint kuryr-pluggable-handlers

Change-Id: I52ce0ef00771c8587d7f7113cc5eb4839d1309a5
Signed-off-by: Antoni Segura Puimedon <antonisp@celebdor.com>
2018-04-17 17:02:00 +03:00
Zuul d16cb7d8a5 Merge "Watcher restarts watching resources in failure" 2018-03-20 16:24:37 +00:00
Eunsoo Park 58e6b1914c Watcher restarts watching resources in failure
kuryr-kubernetes watcher watches k8s resources and trigger registered
pipeline.

This patch handles restarting watching when watch thread has failed.

Change-Id: I27a719a326dc37f97c46b88d0c171d0f12ded605
Closes-Bug: 1739776
Related-Bug: 1705429
Signed-off-by: Eunsoo Park <esevan.park@gmail.com>
2018-03-19 17:12:40 +09:00
Zuul 563ddbee3b Merge "Deprecate running kuryr-k8s without kuryr-daemon" 2018-03-16 10:58:39 +00:00
Michał Dulko 898abb4a75 Deprecate running kuryr-k8s without kuryr-daemon
This commit implements what was discussed on the PTG, i.e. deprecation
of running Kuryr-Kubernetes without kuryr-daemon services. This commit
includes changes in configuration defaults, sample local.conf files,
documentation, gates and a release note explaining the change.

Change-Id: I152c81797cb83237af4917a4487cb1f1918270aa
2018-03-14 15:44:16 +01:00
Maysa Macedo 22e8d98748 Add release note for cni health manager
This patch contains reno release note for the new feature added
regarding cni health manager.

Change-Id: I5681b980c40ff29f7cdfe0d7396e652a449d6c2e
2018-03-02 07:55:39 +00:00
Luis Tomas Bolivar a83eba5fa1 Add multi pools support
This patch adds support for nodes with different vif drivers as
well as different pool drivers for each vif driver type.

Closes-Bug: 1747406
Change-Id: I842fd4b513a5f325d598d677e5008f9ea51adab9
2018-03-07 13:06:56 +01:00
Zuul da611aef0a Merge "Refactor Kuryr-Kubernetes gates to Zuul-V3" 2018-02-22 06:39:57 +00:00
Daniel Mellado b0b961de4e
Refactor Kuryr-Kubernetes gates to Zuul-V3
This commit refactors the Kuryr-Kubernetes gates to Zuul-V3 native
format.

Depends-On: https://review.openstack.org/546120
Partially-Implements: blueprint zuulv3-native-gates
Change-Id: I597b1df228493b727eb2470213edb954a63ce0bf
2018-02-20 16:52:57 +01:00
Antoni Segura Puimedon 20bc89ff87 Make ext subnet config optional
It is common for Neutron deployment's policy to forbid GETs to the
public subnet, only allowing GETs for the public net. Since the only
required field of those two for creating a FIP is the public net, let's
change public net to be the only required config option and have the
subnet stick around as optional.

Change-Id: I31c3c51ad2dc12f8f560cbab01c86d04aabb754e
Closes-Bug: 1749921
Signed-off-by: Antoni Segura Puimedon <antonisp@celebdor.com>
2018-02-20 15:09:54 +02:00
Michał Dulko 83e6264b02 Add release notes for containerization and daemon
Change-Id: Ia0fe8bb7444d8d2dd145f132d83cf23bd27b5444
2018-01-04 12:04:32 +01:00
Luis Tomas Bolivar bcc851aacf Add oslo_cache to default_subnet driver
This patch adds oslo_cache to the default subnet driver to
avoid unneed calls to neutron when creating pods (or when
getting subnet information)

Change-Id: I93b6bed424757e4138ba656251ae5da46b857da1
2017-11-27 11:41:00 +01:00
Irena Berezovsky 9fb03707f5 Add Reno release notes support to Kuryr-Kubernetes
Add support for publishing release notes using Reno [1].

[1] http://docs.openstack.org/developer/reno/

closes-Bug: #1733344
Change-Id: I3fbb1cf2f7238c7edaa3137255e5af5ca29f1d89
2017-11-23 15:26:59 +02:00