64 Commits

Author SHA1 Message Date
Jian Li
232a32c5cb Fix: configure the correct ethernet address of ARP reply for k8s
Change-Id: Ia217ab5250a498ae83b32388d2db56941f0e6f01
2020-02-04 01:06:08 +09:00
Jian Li
1449389b87 Fix: add missing PodIP class into kryo register
Change-Id: I63cc273c5d63429497a4ac0c701392e062c74fe6
2020-01-20 15:12:56 +09:00
Thomas Vachuska
654f994dee Eliminate redundant catch clauses.
Change-Id: I791b7b14fa72ecda5532f003ca06741e049e91f7
2020-01-08 18:54:26 +00:00
Jian Li
970c6e5ff1 Fix: do not propagate PORT_REMOVED event if the event has null value
Change-Id: I0cfe520a8910e7aea6b182836deb6dc8469c8e7c
2019-12-24 23:10:24 +09:00
Jian Li
8143c3b746 Fix: double check resource existence at receiving addition event
Change-Id: I80fb2b30201e3e770eb5384ecee2b78b32502936
2019-12-24 17:06:39 +09: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
a5c80c6905 Fix: guarantee to reserve an IP address from IPAM pool for k8s POD
Returns port number as zero in case pod has null spec value.
Also return null group bucket when we have zero port number returned.

Change-Id: Iad6f307e950e263732db5f6349c83a60a194cb23
2019-09-01 23:30:49 +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
1ea0271488 Fix: correct logging paramters and adjust logging level for k8s app
Change-Id: I5882a73420986827921411c8d3cc95d79cd8184a
2019-08-30 10:59:42 +09:00
Jian Li
186fde552d Add CLI for querying available and allocated IP addresses for k8s
Change-Id: Id50ff4b155f613845aa5130adf4b98216200bb2b
2019-08-30 10:59:42 +09:00
Jian Li
c886b648cc Fix: remove flow rules when removing POD and namespace
Change-Id: Iec3e48e0f2f14a024c7984ed36659a9aa3e4e9ab
2019-08-29 16:28:58 +09:00
Jian Li
6b9bf566fc Fix: handle POD IP query service IP scenario for policy enforcement
Change-Id: I834f72e5f7bd9f41a47aed8d6997dfecc05be8b5
2019-08-29 16:28:51 +09:00
Jian Li
cd93415b93 Fix: refactor network policy handler remove code duplication
Change-Id: I2980bb16aa2c80d7484f0b0f4e39df6b5e9bf886
2019-08-29 16:28:47 +09:00
Jian Li
8938b3cc95 Add kubernetes state and rule synchronization REST API
Change-Id: I636ebdcf2f97a4d447397159bddaf6d395437b2a
2019-08-29 07:14:24 +00:00
Jian Li
c4d7e87441 Fix: handle GRE and GENEVE net type for handling node port service
Change-Id: I2aa91361521384761db4e1ca59ef2c71711a02a4
2019-08-29 07:13:58 +00:00
Jian Li
7709eb4334 Refer to external bridge and gateway IP from k8s node store
Change-Id: I7dab97ead59e3746b67e6e3bedc3a2c6fea41bf1
2019-08-29 16:10:32 +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
4bd6f2b69f Refactor: remove some code duplication on k8s sync state
Change-Id: I39d07eb23287e68eb089d48be615d3fe99b6c728
2019-08-22 01:48:36 +00: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
324d6dc322 [ONOS-8014] Implement kubernetes namespace store and manager
Change-Id: I86200d9a49a7935738e6599829d297196ab50131
2019-07-19 16:17:18 +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
f4523d8284 [ONOS-8012] Implement kubernetes network policy store and manager
Change-Id: I0386f1103046f69f5f06586229fb2ac5a0926c15
2019-07-19 15:42:00 +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
af08152824 Fix: store and watch k8s resources from all namespaces
Change-Id: I4e42f8014e7a344a280e24d3ea0b10ae33258878
2019-06-19 21:31:35 +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
1b08d650d0 Support to learn external gateway MAC at controller
Change-Id: I72c13133708de1ac86e26160397233518489d46b
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
7b63fe6440 Fix: set dummy group rules on receiving service add/remove events
Change-Id: I5e33bfaedc827b9563d08f60adf73ddf4de8ca73
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
e8a89b89c3 Fix: resolve the critical issues reported by sonarcube
Change-Id: I4b9d6bd1d4b947609575a82eea445aa6922a6fe4
2019-03-07 00:58:05 +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
ca34c673c6 Support to print out k8s pod, service and endpoints in JSON format
Change-Id: I7f66fae528165e0570e416f6bdb75715cf0d38ab
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
3d1111e2a8 Add a kubernetes port and pod mapper with sync/purge rules CLIs
Change-Id: I89ed29e4357b84345f95fddf81ab7156715d7c82
2019-03-06 05:28:38 +00:00
Jian Li
b1cd0b028f Add CLIs for k8s endpoins, pods and services, sync & purge states
Change-Id: I931ad76077639e80045f106c0014f113c76354d6
2019-03-06 05:28:38 +00:00
Jian Li
853877327a Implement kubernetes pod, service and endpoints watcher
Change-Id: I0c364f370de9599b124f0e85f093099e8b4d97f3
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
3e1b887797 [ONOS-7934] Add k8s endpoints store and manager with unit tests
Change-Id: I4e67f5fd7d9859339b92f1816f52a092063dc2e4
2019-03-06 05:28:38 +00:00