Skip to content
This repository was archived by the owner on Oct 14, 2025. It is now read-only.

Commit a5d8254

Browse files
committed
allow to disable src dst check on AWS
1 parent 7277831 commit a5d8254

File tree

4 files changed

+66
-1
lines changed

4 files changed

+66
-1
lines changed

go.mod

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ module github.com/aojea/kindnet
33
go 1.23.0
44

55
require (
6+
github.com/aws/aws-sdk-go v1.55.5
67
github.com/containerd/nri v0.9.0
78
github.com/prometheus/client_golang v1.20.5
89
github.com/vishvananda/netlink v1.3.0
@@ -37,6 +38,7 @@ require (
3738
github.com/google/uuid v1.6.0 // indirect
3839
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect
3940
github.com/inconshreveable/mousetrap v1.1.0 // indirect
41+
github.com/jmespath/go-jmespath v0.4.0 // indirect
4042
github.com/josharian/native v1.1.0 // indirect
4143
github.com/klauspost/compress v1.17.11 // indirect
4244
github.com/knqyf263/go-plugin v0.8.1-0.20240827022226-114c6257e441 // indirect

go.sum

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
22
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
3+
github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU=
4+
github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU=
35
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
46
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
57
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
@@ -62,6 +64,10 @@ github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1
6264
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k=
6365
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
6466
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
67+
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
68+
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
69+
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
70+
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
6571
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
6672
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
6773
github.com/josharian/native v1.0.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w=
@@ -238,6 +244,9 @@ gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSP
238244
gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
239245
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
240246
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
247+
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
248+
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
249+
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
241250
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
242251
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
243252
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

pkg/node/aws.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
// SPDX-License-Identifier: APACHE-2.0
2+
3+
package node
4+
5+
import (
6+
"fmt"
7+
8+
"github.com/aws/aws-sdk-go/aws"
9+
"github.com/aws/aws-sdk-go/aws/ec2metadata"
10+
"github.com/aws/aws-sdk-go/aws/session"
11+
"github.com/aws/aws-sdk-go/service/ec2"
12+
)
13+
14+
func disableAWSSrcDstCheck() error {
15+
sess, err := session.NewSession()
16+
if err != nil {
17+
return fmt.Errorf("fail to create session: %w", err)
18+
}
19+
metadataClient := ec2metadata.New(sess)
20+
region, err := metadataClient.Region()
21+
if err != nil {
22+
return fmt.Errorf("fail to get EC2 region name: %v", err)
23+
}
24+
sess.Config.Region = aws.String(region)
25+
26+
instanceID, err := metadataClient.GetMetadata("instance-id")
27+
if err != nil {
28+
return fmt.Errorf("fail to get EC2 instance ID: %v", err)
29+
}
30+
31+
// Create new EC2 client
32+
client := ec2.New(sess)
33+
attr := &ec2.ModifyInstanceAttributeInput{
34+
InstanceId: &instanceID,
35+
SourceDestCheck: &ec2.AttributeBooleanValue{Value: aws.Bool(false)},
36+
}
37+
38+
_, err = client.ModifyInstanceAttribute(attr)
39+
if err != nil {
40+
return fmt.Errorf("fail to disable src check on AWS instance %s: %v", instanceID, err)
41+
}
42+
return nil
43+
}

pkg/node/nodes.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"context"
77
"fmt"
88
"net"
9+
"strings"
910
"time"
1011

1112
v1 "k8s.io/api/core/v1"
@@ -148,7 +149,7 @@ func (c *NodeController) handleErr(err error, key string) {
148149
return
149150
}
150151

151-
if c.workqueue.NumRequeues(key) < 5 {
152+
if c.workqueue.NumRequeues(key) < 15 {
152153
klog.Infof("Error syncing node %s, retrying: %v", key, err)
153154
c.workqueue.AddRateLimited(key)
154155
return
@@ -181,6 +182,16 @@ func (c *NodeController) syncNode(ctx context.Context, key string) error {
181182
}
182183
c.cniDone = true
183184
}
185+
// cloud provider specific changes required to the node
186+
187+
// AWS requires to disable the source destination check
188+
// to allow traffic between Pods
189+
if strings.Contains(node.Spec.ProviderID, "aws") {
190+
err := disableAWSSrcDstCheck()
191+
if err != nil {
192+
return err
193+
}
194+
}
184195
return nil
185196
}
186197

0 commit comments

Comments
 (0)