Skip to content

Commit f374bfb

Browse files
samjkonSamuel Konat
and
Samuel Konat
authored
Implement regular ENI and branch ENI configuration (#3972)
This PR implements regular ENI and branch ENI configuration for the containerd platform including network namespace setup, DNS config file creation and CNI plugin execution. Additionally it includes many additional wrapper utilities and their corresponding mock files. --------- Co-authored-by: Samuel Konat <[email protected]>
1 parent 62bea80 commit f374bfb

File tree

139 files changed

+26803
-258
lines changed

Some content is hidden

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

139 files changed

+26803
-258
lines changed

agent/vendor/github.com/aws/amazon-ecs-agent/ecs-agent/data/client.go

+32-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

agent/vendor/github.com/aws/amazon-ecs-agent/ecs-agent/metrics/constants.go

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

agent/vendor/github.com/aws/amazon-ecs-agent/ecs-agent/netlib/model/networkinterface/errors.go

+13
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

agent/vendor/github.com/aws/amazon-ecs-agent/ecs-agent/netlib/model/networkinterface/networkinterface.go

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

agent/vendor/github.com/aws/amazon-ecs-agent/ecs-agent/netlib/model/status/network_status.go

+13
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ecs-agent/data/client.go

+32-4
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,14 @@
1414
package data
1515

1616
import (
17+
"bytes"
1718
"encoding/json"
1819

1920
"github.com/aws/amazon-ecs-agent/ecs-agent/modeltransformer"
20-
2121
"github.com/pkg/errors"
2222
bolt "go.etcd.io/bbolt"
2323
)
2424

25-
type NetworkDataClient interface {
26-
}
27-
2825
type Client struct {
2926
Accessor DBAccessor
3027
DB *bolt.DB
@@ -74,3 +71,34 @@ func (DBAccessor) Walk(bucket *bolt.Bucket, callback func(id string, data []byte
7471

7572
return nil
7673
}
74+
75+
func (DBAccessor) WalkPrefix(bucket *bolt.Bucket, prefix string, callback func(id string, data []byte) error) error {
76+
var (
77+
cursor = bucket.Cursor()
78+
search = []byte(prefix)
79+
)
80+
81+
for id, data := cursor.Seek(search); id != nil && bytes.HasPrefix(id, search); id, data = cursor.Next() {
82+
if err := callback(string(id), data); err != nil {
83+
return err
84+
}
85+
}
86+
87+
return nil
88+
}
89+
90+
func (DBAccessor) GetBucket(tx *bolt.Tx, name string, nested ...string) (*bolt.Bucket, error) {
91+
bucket := tx.Bucket([]byte(name))
92+
if bucket == nil {
93+
return nil, errors.New("bucket does not exist: " + name)
94+
}
95+
96+
for _, n := range nested {
97+
bucket = bucket.Bucket([]byte(n))
98+
if bucket == nil {
99+
return nil, errors.New("bucket does not exist: " + name)
100+
}
101+
}
102+
103+
return bucket, nil
104+
}

ecs-agent/go.mod

+2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ require (
2020
github.com/prometheus/client_model v0.2.0
2121
github.com/prometheus/common v0.26.0
2222
github.com/stretchr/testify v1.8.2
23+
github.com/vishvananda/netlink v1.2.1-beta.2
2324
go.etcd.io/bbolt v1.3.6
2425
golang.org/x/net v0.13.0
2526
golang.org/x/sys v0.10.0
@@ -49,6 +50,7 @@ require (
4950
github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
5051
github.com/pmezard/go-difflib v1.0.0 // indirect
5152
github.com/sirupsen/logrus v1.9.0 // indirect
53+
github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f // indirect
5254
go.opencensus.io v0.24.0 // indirect
5355
golang.org/x/mod v0.10.0 // indirect
5456
golang.org/x/text v0.11.0 // indirect

ecs-agent/go.sum

+4
Original file line numberDiff line numberDiff line change
@@ -684,9 +684,13 @@ github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtX
684684
github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk=
685685
github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE=
686686
github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=
687+
github.com/vishvananda/netlink v1.2.1-beta.2 h1:Llsql0lnQEbHj0I1OuKyp8otXp0r3q0mPkuhwHfStVs=
688+
github.com/vishvananda/netlink v1.2.1-beta.2/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=
687689
github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI=
688690
github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU=
689691
github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
692+
github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f h1:p4VB7kIXpOQvVn1ZaTIVp+3vuYAXFe3OJEvjbUYJLaA=
693+
github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
690694
github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
691695
github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI=
692696
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=

ecs-agent/metrics/constants.go

+8
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,12 @@ const (
4545
agentAvailabilityNamespace = "Availability"
4646
ACSDisconnectTimeoutMetricName = agentAvailabilityNamespace + ".ACSDisconnectTimeout"
4747
TCSDisconnectTimeoutMetricName = agentAvailabilityNamespace + ".TCSDisconnectTimeout"
48+
49+
dbClientMetricNamespace = "Data"
50+
GetNetworkConfigurationByTaskMetricName = dbClientMetricNamespace + ".GetNetworkConfigurationByTask"
51+
SaveNetworkNamespaceMetricName = dbClientMetricNamespace + ".SaveNetworkNamespace"
52+
GetNetworkNamespaceMetricName = dbClientMetricNamespace + ".GetNetworkNamespace"
53+
54+
networkBuilderNamespace = "NetworkBuilder"
55+
BuildNetworkNamespaceMetricName = networkBuilderNamespace + ".BuildNetworkNamespace"
4856
)

0 commit comments

Comments
 (0)