@@ -21,83 +21,100 @@ import (
2121 "fmt"
2222
2323 "github.com/ferryproxy/api/apis/traffic/v1alpha2"
24- versioned "github.com/ferryproxy/client-go/generated/clientset/versioned"
24+ ferryversioned "github.com/ferryproxy/client-go/generated/clientset/versioned"
2525 "github.com/ferryproxy/ferry/pkg/utils/objref"
26+ "github.com/go-logr/logr"
2627 corev1 "k8s.io/api/core/v1"
2728 "k8s.io/client-go/kubernetes"
2829 "k8s.io/client-go/rest"
30+ mcsversioned "sigs.k8s.io/mcs-api/pkg/client/clientset/versioned"
2931)
3032
3133type clientset struct {
3234 kubeClientset kubernetes.Interface
33- ferryClientset versioned.Interface
35+ ferryClientset ferryversioned.Interface
36+ mcsClientset mcsversioned.Interface
3437}
3538
3639type Interface interface {
3740 Kubernetes () kubernetes.Interface
38- Ferry () versioned.Interface
41+ Ferry () ferryversioned.Interface
42+ MCS () mcsversioned.Interface
3943}
4044
4145func NewForConfig (conf * rest.Config ) (Interface , error ) {
4246 kubeClientset , err := kubernetes .NewForConfig (conf )
4347 if err != nil {
4448 return nil , err
4549 }
46- ferryClientset , err := versioned .NewForConfig (conf )
50+ _ , err = kubeClientset .ServerVersion ()
51+ if err != nil {
52+ return nil , err
53+ }
54+ ferryClientset , err := ferryversioned .NewForConfig (conf )
55+ if err != nil {
56+ return nil , err
57+ }
58+ mcsClientset , err := mcsversioned .NewForConfig (conf )
4759 if err != nil {
4860 return nil , err
4961 }
5062 return & clientset {
5163 kubeClientset : kubeClientset ,
5264 ferryClientset : ferryClientset ,
65+ mcsClientset : mcsClientset ,
5366 }, nil
5467}
5568
5669func (c * clientset ) Kubernetes () kubernetes.Interface {
5770 return c .kubeClientset
5871}
5972
60- func (c * clientset ) Ferry () versioned .Interface {
73+ func (c * clientset ) Ferry () ferryversioned .Interface {
6174 return c .ferryClientset
6275}
6376
64- func Apply (ctx context.Context , c Interface , obj objref.KMetadata ) error {
77+ func (c * clientset ) MCS () mcsversioned.Interface {
78+ return c .mcsClientset
79+ }
80+
81+ func Apply (ctx context.Context , logger logr.Logger , c Interface , obj objref.KMetadata ) error {
6582 switch o := obj .(type ) {
6683 case * corev1.ConfigMap :
67- return configMap {o }.Apply (ctx , c )
84+ return configMap {o }.Apply (ctx , logger , c )
6885 case * corev1.Secret :
69- return secret {o }.Apply (ctx , c )
86+ return secret {o }.Apply (ctx , logger , c )
7087 case * corev1.Service :
71- return service {o }.Apply (ctx , c )
88+ return service {o }.Apply (ctx , logger , c )
7289 case * corev1.Endpoints :
73- return endpoints {o }.Apply (ctx , c )
90+ return endpoints {o }.Apply (ctx , logger , c )
7491 case * v1alpha2.Hub :
75- return hub {o }.Apply (ctx , c )
92+ return hub {o }.Apply (ctx , logger , c )
7693 case * v1alpha2.RoutePolicy :
77- return routePolicy {o }.Apply (ctx , c )
94+ return routePolicy {o }.Apply (ctx , logger , c )
7895 case * v1alpha2.Route :
79- return route {o }.Apply (ctx , c )
96+ return route {o }.Apply (ctx , logger , c )
8097 default :
8198 return fmt .Errorf ("unsupport type" )
8299 }
83100}
84101
85- func Delete (ctx context.Context , c Interface , obj objref.KMetadata ) error {
102+ func Delete (ctx context.Context , logger logr. Logger , c Interface , obj objref.KMetadata ) error {
86103 switch o := obj .(type ) {
87104 case * corev1.ConfigMap :
88- return configMap {o }.Delete (ctx , c )
105+ return configMap {o }.Delete (ctx , logger , c )
89106 case * corev1.Secret :
90- return secret {o }.Delete (ctx , c )
107+ return secret {o }.Delete (ctx , logger , c )
91108 case * corev1.Service :
92- return service {o }.Delete (ctx , c )
109+ return service {o }.Delete (ctx , logger , c )
93110 case * corev1.Endpoints :
94- return endpoints {o }.Delete (ctx , c )
111+ return endpoints {o }.Delete (ctx , logger , c )
95112 case * v1alpha2.Hub :
96- return hub {o }.Delete (ctx , c )
113+ return hub {o }.Delete (ctx , logger , c )
97114 case * v1alpha2.RoutePolicy :
98- return routePolicy {o }.Delete (ctx , c )
115+ return routePolicy {o }.Delete (ctx , logger , c )
99116 case * v1alpha2.Route :
100- return route {o }.Delete (ctx , c )
117+ return route {o }.Delete (ctx , logger , c )
101118 default :
102119 return fmt .Errorf ("unsupport type" )
103120 }
0 commit comments