Skip to content

Commit aee36bc

Browse files
authored
Merge branch 'main' into main
2 parents 16ca440 + 4948895 commit aee36bc

File tree

58 files changed

+895
-1244
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+895
-1244
lines changed

.golangci.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ linters:
3333
- godot
3434
- gofumpt
3535
- goimports
36-
- gomoddirectives
3736
- gosec
3837
- gosimple
3938
- govet

CODEOWNERS

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
# the repo. Unless a later match takes precedence,
33
# Order is important; the last matching pattern takes the most
44
# precedence.
5-
* @elevran
6-
cmd/ @kfirtoledo @orozery
7-
demos/ @kfirtoledo
8-
pkg/ @elevran @kfirtoledo @orozery
9-
pkg/dataplane/go @praveingk @orozery
10-
pkg/policyengine/ @zivnevo
11-
website/ @elevran @michalmalka
5+
* @elevran
6+
cmd/ @kfirtoledo @orozery
7+
demos/ @kfirtoledo
8+
pkg/ @elevran @kfirtoledo @orozery
9+
pkg/dataplane/go @praveingk @orozery
10+
pkg/controlplane/authz/ @zivnevo
11+
website/ @elevran @michalmalka
1212

cmd/cl-controlplane/app/server.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ func (o *Options) Run() error {
189189
httpServer := utilrest.NewServer("controlplane-http", parsedCertData.ServerConfig())
190190
grpcServer := grpc.NewServer("controlplane-grpc", parsedCertData.ServerConfig())
191191

192-
authzManager, err := authz.NewManager(parsedCertData)
192+
authzManager, err := authz.NewManager(parsedCertData, mgr.GetClient(), namespace)
193193
if err != nil {
194194
return fmt.Errorf("cannot create authorization manager: %w", err)
195195
}
@@ -240,10 +240,16 @@ func (o *Options) Run() error {
240240

241241
cprest.RegisterHandlers(restManager, httpServer)
242242

243-
controlManager.SetGetMergeImportListCallback(restManager.GetMergeImportList)
243+
authzManager.SetGetImportCallback(restManager.GetK8sImport)
244+
authzManager.SetGetExportCallback(restManager.GetK8sExport)
245+
authzManager.SetGetPeerCallback(restManager.GetK8sPeer)
244246
controlManager.SetGetImportCallback(restManager.GetK8sImport)
245-
controlManager.SetStatusCallback(func(pr *v1alpha1.Peer) {
246-
authzManager.AddPeer(pr)
247+
controlManager.SetGetMergeImportListCallback(restManager.GetMergeImportList)
248+
controlManager.SetPeerStatusCallback(func(pr *v1alpha1.Peer) {
249+
restManager.UpdatePeerStatus(pr.Name, &pr.Status)
250+
})
251+
controlManager.SetExportStatusCallback(func(export *v1alpha1.Export) {
252+
restManager.UpdateExportStatus(export.Name, &export.Status)
247253
})
248254
}
249255

demos/iperf3/kind/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -164,16 +164,16 @@ When running Kind cluster on macOS run instead the following:
164164
### Step 7: Create access policy
165165
In this step, we create a policy that allow to all traffic from peer1 and peer2:
166166

167-
gwctl --myid peer1 create policy --type access --policyFile $PROJECT_DIR/pkg/policyengine/examples/allowAll.json
168-
gwctl --myid peer2 create policy --type access --policyFile $PROJECT_DIR/pkg/policyengine/examples/allowAll.json
167+
gwctl --myid peer1 create policy --type access --policyFile $PROJECT_DIR/examples/policies/allowAll.json
168+
gwctl --myid peer2 create policy --type access --policyFile $PROJECT_DIR/examples/policies/allowAll.json
169169

170170
When running Kind cluster on macOS run instead the following:
171171

172172
kubectl config use-context kind-peer1
173-
kubectl cp $PROJECT_DIR/pkg/policyengine/examples/allowAll.json gwctl:/tmp/allowAll.json
173+
kubectl cp $PROJECT_DIR/examples/policies/allowAll.json gwctl:/tmp/allowAll.json
174174
kubectl exec -i $GWCTL1 -- gwctl create policy --type access --policyFile /tmp/allowAll.json
175175
kubectl config use-context kind-peer2
176-
kubectl cp $PROJECT_DIR/pkg/policyengine/examples/allowAll.json gwctl:/tmp/allowAll.json
176+
kubectl cp $PROJECT_DIR/examples/policies//allowAll.json gwctl:/tmp/allowAll.json
177177
kubectl exec -i $GWCTL2 -- gwctl create policy --type access --policyFile /tmp/allowAll.json
178178

179179
### Final Step : Test Service connectivity
File renamed without changes.
File renamed without changes.

go.mod

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ require (
1616
github.com/spf13/pflag v1.0.5
1717
github.com/stretchr/testify v1.9.0
1818
go.etcd.io/bbolt v1.3.9
19-
golang.org/x/net v0.24.0
19+
golang.org/x/net v0.25.0
2020
google.golang.org/grpc v1.63.2
21-
google.golang.org/protobuf v1.34.0
21+
google.golang.org/protobuf v1.34.1
2222
k8s.io/api v0.30.0
2323
k8s.io/apimachinery v0.30.0
2424
k8s.io/client-go v0.30.0
2525
k8s.io/utils v0.0.0-20230726121419-3b25d923346b
26-
sigs.k8s.io/controller-runtime v0.18.1
26+
sigs.k8s.io/controller-runtime v0.18.2
2727
sigs.k8s.io/e2e-framework v0.3.0
2828
)
2929

@@ -77,12 +77,12 @@ require (
7777
github.com/vladimirvivien/gexe v0.2.0 // indirect
7878
go.uber.org/multierr v1.11.0 // indirect
7979
go.uber.org/zap v1.26.0 // indirect
80-
golang.org/x/crypto v0.22.0 // indirect
80+
golang.org/x/crypto v0.23.0 // indirect
8181
golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect
8282
golang.org/x/oauth2 v0.17.0 // indirect
83-
golang.org/x/sys v0.19.0 // indirect
84-
golang.org/x/term v0.19.0 // indirect
85-
golang.org/x/text v0.14.0 // indirect
83+
golang.org/x/sys v0.20.0 // indirect
84+
golang.org/x/term v0.20.0 // indirect
85+
golang.org/x/text v0.15.0 // indirect
8686
golang.org/x/time v0.3.0 // indirect
8787
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
8888
google.golang.org/appengine v1.6.8 // indirect

go.sum

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh
175175
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
176176
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
177177
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
178-
golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30=
179-
golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M=
178+
golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI=
179+
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
180180
golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug=
181181
golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
182182
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
@@ -192,8 +192,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug
192192
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
193193
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
194194
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
195-
golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w=
196-
golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8=
195+
golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=
196+
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
197197
golang.org/x/oauth2 v0.17.0 h1:6m3ZPmLEFdVxKKWnKq4VqZ60gutO35zm+zrAHVmHyDQ=
198198
golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA=
199199
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -215,24 +215,25 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
215215
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
216216
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
217217
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
218-
golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
219-
golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
218+
golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
219+
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
220220
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
221221
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
222222
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
223223
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
224224
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
225225
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
226-
golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q=
227-
golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk=
226+
golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw=
227+
golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
228228
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
229229
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
230230
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
231231
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
232232
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
233233
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
234-
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
235234
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
235+
golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
236+
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
236237
golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4=
237238
golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
238239
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -261,8 +262,8 @@ google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM=
261262
google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA=
262263
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
263264
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
264-
google.golang.org/protobuf v1.34.0 h1:Qo/qEd2RZPCf2nKuorzksSknv0d3ERwp1vFG38gSmH4=
265-
google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
265+
google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg=
266+
google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
266267
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
267268
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
268269
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
@@ -288,8 +289,8 @@ k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7F
288289
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98=
289290
k8s.io/utils v0.0.0-20230726121419-3b25d923346b h1:sgn3ZU783SCgtaSJjpcVVlRqd6GSnlTLKgpAAttJvpI=
290291
k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
291-
sigs.k8s.io/controller-runtime v0.18.1 h1:RpWbigmuiylbxOCLy0tGnq1cU1qWPwNIQzoJk+QeJx4=
292-
sigs.k8s.io/controller-runtime v0.18.1/go.mod h1:tuAt1+wbVsXIT8lPtk5RURxqAnq7xkpv2Mhttslg7Hw=
292+
sigs.k8s.io/controller-runtime v0.18.2 h1:RqVW6Kpeaji67CY5nPEfRz6ZfFMk0lWQlNrLqlNpx+Q=
293+
sigs.k8s.io/controller-runtime v0.18.2/go.mod h1:tuAt1+wbVsXIT8lPtk5RURxqAnq7xkpv2Mhttslg7Hw=
293294
sigs.k8s.io/e2e-framework v0.3.0 h1:eqQALBtPCth8+ulTs6lcPK7ytV5rZSSHJzQHZph4O7U=
294295
sigs.k8s.io/e2e-framework v0.3.0/go.mod h1:C+ef37/D90Dc7Xq1jQnNbJYscrUGpxrWog9bx2KIa+c=
295296
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=

pkg/apis/clusterlink.net/v1alpha1/import.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,17 @@ type ImportSource struct {
4242
ExportNamespace string `json:"exportNamespace"`
4343
}
4444

45+
// LBScheme represents a load balancing scheme.
46+
type LBScheme string
47+
48+
const (
49+
LBSchemeRandom LBScheme = "random"
50+
LBSchemeRoundRobin LBScheme = "round-robin"
51+
LBSchemeStatic LBScheme = "static"
52+
53+
LBSchemeDefault = LBSchemeRoundRobin
54+
)
55+
4556
// ImportSpec contains all attributes of an imported service.
4657
type ImportSpec struct {
4758
// Port of the imported service.
@@ -53,8 +64,7 @@ type ImportSpec struct {
5364
Sources []ImportSource `json:"sources"`
5465
// +kubebuilder:default="round-robin"
5566
// LBScheme is the load-balancing scheme to use (e.g., random, static, round-robin)
56-
LBScheme string `json:"lbScheme"`
57-
// TODO: Make LBScheme a proper type (when backwards compatibility is no longer needed)
67+
LBScheme LBScheme `json:"lbScheme"`
5868
}
5969

6070
const (

0 commit comments

Comments
 (0)