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
diff --git a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/DefaultK8sNode.java b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/DefaultK8sNode.java
index c7c08d3..e38d0a4 100644
--- a/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/DefaultK8sNode.java
+++ b/apps/k8s-node/api/src/main/java/org/onosproject/k8snode/api/DefaultK8sNode.java
@@ -49,6 +49,7 @@
private final String hostname;
private final Type type;
private final DeviceId intgBridge;
+ private final DeviceId extBridge;
private final IpAddress managementIp;
private final IpAddress dataIp;
private final K8sNodeState state;
@@ -63,16 +64,18 @@
* @param hostname hostname
* @param type node type
* @param intgBridge integration bridge
+ * @param extBridge external bridge
* @param managementIp management IP address
* @param dataIp data IP address
* @param state node state
*/
protected DefaultK8sNode(String hostname, Type type, DeviceId intgBridge,
- IpAddress managementIp, IpAddress dataIp,
- K8sNodeState state) {
+ DeviceId extBridge, IpAddress managementIp,
+ IpAddress dataIp, K8sNodeState state) {
this.hostname = hostname;
this.type = type;
this.intgBridge = intgBridge;
+ this.extBridge = extBridge;
this.managementIp = managementIp;
this.dataIp = dataIp;
this.state = state;
@@ -99,11 +102,30 @@
}
@Override
+ public DeviceId extBridge() {
+ return extBridge;
+ }
+
+ @Override
public K8sNode updateIntgBridge(DeviceId deviceId) {
return new Builder()
.hostname(hostname)
.type(type)
.intgBridge(deviceId)
+ .extBridge(extBridge)
+ .managementIp(managementIp)
+ .dataIp(dataIp)
+ .state(state)
+ .build();
+ }
+
+ @Override
+ public K8sNode updateExtBridge(DeviceId deviceId) {
+ return new Builder()
+ .hostname(hostname)
+ .type(type)
+ .intgBridge(intgBridge)
+ .extBridge(deviceId)
.managementIp(managementIp)
.dataIp(dataIp)
.state(state)
@@ -189,6 +211,7 @@
return hostname.equals(that.hostname) &&
type == that.type &&
intgBridge.equals(that.intgBridge) &&
+ extBridge.equals(that.extBridge) &&
managementIp.equals(that.managementIp) &&
dataIp.equals(that.dataIp) &&
state == that.state;
@@ -199,7 +222,8 @@
@Override
public int hashCode() {
- return Objects.hash(hostname, type, intgBridge, managementIp, dataIp, state);
+ return Objects.hash(hostname, type, intgBridge, extBridge,
+ managementIp, dataIp, state);
}
@Override
@@ -208,6 +232,7 @@
.add("hostname", hostname)
.add("type", type)
.add("intgBridge", intgBridge)
+ .add("extBridge", extBridge)
.add("managementIp", managementIp)
.add("dataIp", dataIp)
.add("state", state)
@@ -246,6 +271,7 @@
.hostname(node.hostname())
.type(node.type())
.intgBridge(node.intgBridge())
+ .extBridge(node.extBridge())
.managementIp(node.managementIp())
.dataIp(node.dataIp())
.state(node.state());
@@ -256,6 +282,7 @@
private String hostname;
private Type type;
private DeviceId intgBridge;
+ private DeviceId extBridge;
private IpAddress managementIp;
private IpAddress dataIp;
private K8sNodeState state;
@@ -275,6 +302,7 @@
return new DefaultK8sNode(hostname,
type,
intgBridge,
+ extBridge,
managementIp,
dataIp,
state);
@@ -299,6 +327,12 @@
}
@Override
+ public Builder extBridge(DeviceId deviceId) {
+ this.extBridge = deviceId;
+ return this;
+ }
+
+ @Override
public Builder managementIp(IpAddress managementIp) {
this.managementIp = managementIp;
return this;