Add new crd to convert kubesphere network policy to k8s network policy, and then other network plugin will do the rest work. Use cache.go from calico project's kube-controller, it aim to sync nsnp with k8s np, delete unused np, and relieve the pressure on k8s restful client. If you want higher performance, you can implement interface NsNetworkPolicyProvider in pkg/controller/provider/namespace_np.go. Signed-off-by: Duan Jiong <djduanjiong@gmail.com>
12 lines
314 B
Go
12 lines
314 B
Go
package provider
|
|
|
|
import netv1 "k8s.io/api/networking/v1"
|
|
|
|
// NsNetworkPolicyProvider is a interface to let different cnis to implement our api
|
|
type NsNetworkPolicyProvider interface {
|
|
Delete(key string)
|
|
Set(policy *netv1.NetworkPolicy) error
|
|
Start(stopCh <-chan struct{})
|
|
GetKey(name, nsname string) string
|
|
}
|