45 Commits

Author SHA1 Message Date
Jian Li
93ba759bbc Bumpup fabric8 kubernetes clients to 5.6.0
Change-Id: I4b6665da030834125ed80b3f0ea2715603eedf71
2022-01-25 02:30:09 +00:00
Jian Li
7edfb38506 Bumpup fabric8 kubernetes client deps to 5.1.0
Change-Id: I9439d72b9bc1bda82d4960c524e215031bef751d
2021-02-19 14:31:27 +09:00
Chris Aslanoglou
1d72e1784d k8s-networking apps: include jsr310 runtime dependency
The bump to kubernetes-client 5.0.0 introduced a new runtime dependency
requirement, which was introduced in kubevirt* apps.
Without this patch, k8s-networking was crashing with a NoClassDefFound
exception, after it tried to instantiate a kubernetes-client.

Change-Id: Ic57cb6040fc54bc4299034c931d8f3adeede09ff
2021-01-22 13:48:24 +02:00
Jian Li
9ac73958a0 Bumpup kubernetes client from 4.7.1 to 5.0.0 (support up to kubernetes 1.19)
Change-Id: I7555325fd5eee5bbbb7a0a7a5c27bfc2c333fc7f
2021-01-20 10:55:52 +00:00
Jian Li
8fa74cfaa2 Remove bridges and associated flow rules when removing k8s nodes
Change-Id: Iab54503a4bb75874f69e8e1623bb11c66cad9eee
(cherry picked from commit dc1df642f320123f8b31d6f2a62e7ac6498c87d0)
2020-11-30 13:02:55 +00:00
Jian Li
f4818b0863 Support NodePort communication model at k8s passthrough mode
Change-Id: I2179ebc9a4812493619c56aa270d8fc4821efbb2
2020-11-14 22:11:45 +09:00
Jian Li
07c27f33e0 Initial support VM and container communication via POD and service IP
Change-Id: Ic87beee6ed122ec5551370c2b6a2789edf8fba5b
2020-10-11 01:24:48 +09:00
Jian Li
426cfbee37 Support inter-node routing for k8s passthrough use case
Change-Id: I64411d8b20c7d501603eda5cd44d0aa7c47c99c7
(cherry picked from commit c9d0d7088439fedac8c255172a321f323433bcfc)
2020-10-07 14:48:00 +00:00
Jian Li
4860e37b2b Inter-connect k8s and openstack intg bridge, kbr-ex and kbr-router
Change-Id: Id7d3c874e8b267252ca387b1ca6f67b9f9bc5116
(cherry picked from commit 019ce6a7143620fab32b7b0579aa7381aa102af2)
2020-09-10 07:23:11 +00:00
Jian Li
3cb86e3cfd Listen on k8s port event to create instance port and host
Change-Id: I59ab1f5f422ce2ba8f5432279ceec6d77cd96f06
2020-09-08 17:17:14 +09:00
Jian Li
1ecfbb7565 Split tunneling behavior into a separated tunnel bridge
Change-Id: I4de5f21ac9eaf286479f619c960a2319b597a819
2020-09-05 03:09:37 +00:00
Jian Li
c51f1872e3 Fix: do not install k8s ns ACL rules if cluster IP has invalid value
Change-Id: I18cc9351f953444d1ec48e0042e1556f0115a8dc
2019-12-24 06:28:24 +00:00
Jian Li
dad2343d07 Refactor k8s-node and k8s-networking command line interfaces
Change-Id: I1eb20ccea5238893a1c58e7faeb4c3a06accd2a9
2019-12-16 22:31:52 +09:00
Jian Li
121ddfe9d5 Fix: allow to invoke service IP from local k8s node
Change-Id: I8c39703f35319bb51bbd175e7ff717d5e6ec5250
2019-08-30 10:59:42 +09:00
Jian Li
5a9c2bbe30 Fix: retrieve port bridge port MAC from deviceService rather via ovsdb
1. Derive gateway IP address from POD subnet CIDR.
2. Remove the logic of injecting gateway IP address.

Change-Id: Ice44c1c4b41bc1689954041aee6441a379e5bacd
2019-08-29 14:28:09 +09:00
Jian Li
e1a5b8f742 Isolate the PODs traffic for each namespace using segment ID
Change-Id: Icb3e4379c3b211678d56e1eeee4ff70a2b02fba0
2019-07-29 20:17:36 +00:00
Jian Li
b7dfb5bd25 Support string formated target port of k8s service resource
Change-Id: I429702548281bf28624e2c4debe20133dee2ee03
2019-07-19 16:33:45 +09:00
Jian Li
0f459610df [ONOS-8013] Enhance network policy enforcement by considering namespace
Change-Id: I14c2c6718358a85bd554ded143eb6b50e5d626bf
2019-07-19 16:22:44 +09:00
Jian Li
bc4dd93bb7 [ONOS-8014] Add a set of interfaces for Kubernetes namespace
Change-Id: I2448e8ccd1bf3608710404fe8e9146ee1dfb6f9e
2019-07-19 15:49:43 +09:00
Jian Li
73d3b6acf7 [ONOS-8013] Initial implementation of kubernetes network policy
Change-Id: Ifad61a8327e926623e9040e4c16c86e66096c69e
2019-07-19 15:49:11 +09:00
Jian Li
af1af44225 [ONOS-8012] Add a set of interface for Kubernetes network policy
Change-Id: I5610def14c064cec1230594278081ad1d13a8a0e
2019-07-19 15:41:27 +09:00
Jian Li
7970b7133f Reserve POD IP address to avoid allocating duplicated IP addresses
Change-Id: I0fa42d0d17a35184730e797e394502dfceae7525
2019-05-31 10:46:17 +00:00
Jian Li
44c2b12fd7 Support to resolve external hosts' MAC address from k8s POD
1. Do not remove flow rules if we receive invalid service IP.

Change-Id: I88319f1b10c25b68271e6dcd01ea384c191c3224
2019-05-31 10:46:17 +00:00
Jian Li
140d8a29e3 Implement NodeIP to ServiceIP translation feature
Change-Id: I49bda2cddfb1c22b362b4b48105efd316c3dad36
2019-05-31 10:46:17 +00:00
Jian Li
eb488eab81 Support internal to external communication for k8s POD using SNAT
Change-Id: I8da79d2728fc40b886e44ba4f5ea81d248e33fc2
2019-05-31 10:46:17 +00:00
Jian Li
bf562c2c9c Support to inject external bridge into k8s node for external routing
1. Add group bucket related rules on receiving endpoint events
   rather than POD events.

Change-Id: I1152343cf8ff6bbccaed3dc34908a3affbc70980
2019-05-31 10:46:17 +00:00
Jian Li
f5da78a4bc Fix: inject correct default k8s service CIDR with minor refactoring
Change-Id: I1a402e11c8455d4d5a2a03845df9f4e48897efb7
2019-05-31 10:46:17 +00:00
Jian Li
7d111d7a41 Install rules for handling traffic destined to gateway at k8s node
Change-Id: I3a3ce8ecc581aee7e8e70e338dbf7bf4a6c518db
2019-05-31 10:46:17 +00:00
Jian Li
5c75583b9a Add k8s POD events, trigger svc rule on receiving annotation event
Change-Id: I7fbbd071a9b078337c028791b7441603ae1e7473
2019-05-31 10:46:17 +00:00
Jian Li
4a7ce67f41 Fix: register a set of Affinity classes into distributed store
1. Purge group rules when issue k8s purge rules command.
2. Remove k8s port when remove OVS port.
3. Re-install group rules during sync rules.
4. Install: 1) install group rule; 2) install flow rule
   Uninstall: 1) uninstall flow rule; 2) uninstall group rule
5. Add/remove group buckets when receiving POD update/remove
   events.
6. Lower down the endpoint update logging level

Change-Id: Ib50e359a9b2c0cd9cb1490c6172864ad118b2247
2019-04-11 22:39:37 +09:00
Jian Li
5e8a22a987 Enforce to use unique group Id for k8s svc IP, port, proto combination
Change-Id: I6cad3b9ffac86ee0818e6317443c80f5791a9e74
2019-03-06 05:28:38 +00:00
Jian Li
1cf5188e7f [ONOS-7942] Implement k8s ingress service and watcher with unit tests
Change-Id: I8089336916e882bd31b40facf73c46c5ee541718
2019-03-06 05:28:38 +00:00
Jian Li
004526d223 Implement k8s service IP to pod IP translation using Nicira load ext
Change-Id: I147a9adb68b2bf597c1876a64bf77dedca9698b3
2019-03-06 05:28:38 +00:00
Jian Li
2cc2b631f3 Initial implementation of svc IP to pod IP translation using DNAT
Change-Id: I6e2f6936636e929ad60150cc67aa6316eef32911
2019-03-06 05:28:38 +00:00
Jian Li
747e136c95 [ONOS-7935] Add k8s pod store and manager with unit tests
Change-Id: If4104a2800556bf9777c159eb3b5bd175bc141ae
2019-03-06 05:28:38 +00:00
Jian Li
d893a66459 Add a set of interfaces for k8s pod, service, endpoint
Change-Id: Ie67c5d1a0678bdd651dac24363ab3feab5098919
2019-03-06 05:28:38 +00:00
Jian Li
9b1991696b [ONOS-7926] Implement IPAM service to allocate IP for Kubernetes POD
Change-Id: I32fd1fffb41ec728d0be092ac5a8f555179e7a9e
2019-03-06 05:28:38 +00:00
Jian Li
d89db46e2f Add Kubernetes API server invocation proxy handler
Change-Id: Iadcbe4c2969e36e1f7bf10caff4926c5662d0df6
2019-03-06 05:28:38 +00:00
Jian Li
4aa1764d35 Implement east-west communication for k8s network
Change-Id: Ibac91b7a856e35a26cf0e0f23d6d01f65197625d
2019-03-06 05:28:38 +00:00
Jian Li
bde20bfb14 [ONOS-7914] Hostprovider support for kubernetes network
Change-Id: I1bbc08b7c819875932d0b72fa4bdee4de47c35dd
2019-03-06 05:28:38 +00:00
Jian Li
a80b158430 Initial implementation of k8s networking REST API with unit tests
Change-Id: Ifb11204edb3c1e75b26810c0b104423941b0801d
2019-03-06 05:28:38 +00:00
Jian Li
66f6e3c263 [ONOS-7910] Add initial implementation for k8s flow rule manager
Change-Id: I4a419194b9e626d15be5c93b70af0d4c5005d814
2019-03-06 05:28:38 +00:00
Jian Li
7e8f57e1d6 [ONOS-7905] Add manager and store for k8s network and ports with unit tests
Change-Id: Idd7a8762edbc4bc6d14fd7b22d2218897e7ea0c0
2019-02-17 18:47:25 +09:00
Jian Li
9ee9c8b104 [ONOS-7905] Add default implementation for kubernetes data model
Change-Id: I08e9266dec2050e8299e4189745608a6e03fd06e
2019-02-17 18:47:25 +09:00
Jian Li
fc55e422c6 [ONOS-7905] Add a set of interfaces for k8s-networking data model
Change-Id: I18b2e718705999da61f26e1c482942d424c7c1c0
2019-02-17 18:47:25 +09:00