Skip to content

Commit 5e908a1

Browse files
authored
Merge pull request #137 from ferryproxy/clean/hub
Cleanup
2 parents 9d1ff6c + a2f66cf commit 5e908a1

File tree

33 files changed

+869
-918
lines changed

33 files changed

+869
-918
lines changed

.github/workflows/test.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,16 @@ jobs:
142142
TARGET_1: web-1
143143
TARGET_2: web-0
144144

145+
- name: Test chaotic control-plane and cluster-1
146+
run: ./test/test/test-in-both-chaotic.sh
147+
env:
148+
ROUTE_NAME: ferry-test
149+
CONTROL_PLANE: control-plane
150+
CLUSTER_1: cluster-1
151+
CLUSTER_2: control-plane
152+
TARGET_1: web-1
153+
TARGET_2: web-0
154+
145155
test-3-cluster-cases:
146156
continue-on-error: true
147157
strategy:

cmd/ferry-controller/main.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"context"
2121
"os"
2222

23+
"github.com/ferryproxy/ferry/pkg/client"
2324
"github.com/ferryproxy/ferry/pkg/consts"
2425
"github.com/ferryproxy/ferry/pkg/controllers"
2526
"github.com/ferryproxy/ferry/pkg/utils/env"
@@ -49,9 +50,15 @@ func main() {
4950
os.Exit(1)
5051
}
5152

53+
clientset, err := client.NewForConfig(restConfig)
54+
if err != nil {
55+
log.Error(err, "failed to create kubernetes clientset")
56+
os.Exit(1)
57+
}
58+
5259
control := controllers.NewController(&controllers.ControllerConfig{
5360
Logger: log.WithName("controller"),
54-
Config: restConfig,
61+
Clientset: clientset,
5562
Namespace: namespace,
5663
})
5764

go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ require (
1717
go.uber.org/zap v1.21.0
1818
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d
1919
k8s.io/api v0.24.2
20-
k8s.io/apiextensions-apiserver v0.24.2
2120
k8s.io/apimachinery v0.24.2
2221
k8s.io/client-go v0.24.2
2322
sigs.k8s.io/mcs-api v0.1.0

go.sum

Lines changed: 0 additions & 167 deletions
Large diffs are not rendered by default.

pkg/client/clientset.go

Lines changed: 38 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -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

3133
type clientset struct {
3234
kubeClientset kubernetes.Interface
33-
ferryClientset versioned.Interface
35+
ferryClientset ferryversioned.Interface
36+
mcsClientset mcsversioned.Interface
3437
}
3538

3639
type Interface interface {
3740
Kubernetes() kubernetes.Interface
38-
Ferry() versioned.Interface
41+
Ferry() ferryversioned.Interface
42+
MCS() mcsversioned.Interface
3943
}
4044

4145
func 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

5669
func (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

Comments
 (0)