Skip to content

Commit 2e7a509

Browse files
committed
deprecated docker runtime adapt
1 parent 30a6f26 commit 2e7a509

3 files changed

Lines changed: 2 additions & 157 deletions

File tree

daemon/veth.go

Lines changed: 2 additions & 142 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,17 @@
11
package daemon
22

33
import (
4-
"bufio"
5-
"context"
6-
"fmt"
7-
"net"
8-
"os"
9-
"path/filepath"
10-
"strings"
11-
"time"
12-
134
"github.com/AliyunContainerService/terway/pkg/tracing"
145

15-
"github.com/containernetworking/plugins/plugins/ipam/host-local/backend/disk"
16-
dockerTypes "github.com/docker/docker/api/types"
17-
"github.com/docker/docker/api/types/filters"
18-
"github.com/docker/docker/client"
19-
log "github.com/sirupsen/logrus"
20-
216
"github.com/AliyunContainerService/terway/pkg/link"
227
"github.com/AliyunContainerService/terway/types"
238
)
249

2510
const (
26-
defaultPrefix = "cali"
27-
defaultIpamPath = "/var/lib/cni/networks/"
11+
defaultPrefix = "cali"
2812
)
2913

3014
type vethResourceManager struct {
31-
runtimeAPI containerRuntime
3215
}
3316

3417
func (*vethResourceManager) Allocate(context *networkContext, prefer string) (types.NetworkResource, error) {
@@ -43,72 +26,6 @@ func (*vethResourceManager) Release(context *networkContext, resItem types.Resou
4326
}
4427

4528
func (f *vethResourceManager) GarbageCollection(inUseResSet map[string]types.ResourceItem, expireResSet map[string]types.ResourceItem) error {
46-
// fixme do gc on cni binary
47-
lock, err := disk.NewFileLock(defaultIpamPath)
48-
if err != nil {
49-
return err
50-
}
51-
defer lock.Close()
52-
err = lock.Lock()
53-
if err != nil {
54-
return err
55-
}
56-
sandboxList, err := f.runtimeAPI.GetRunningSandbox()
57-
if err != nil {
58-
return err
59-
}
60-
61-
sandboxStubSet := make(map[string]interface{})
62-
for _, sandbox := range sandboxList {
63-
sandboxStubSet[sandbox] = struct{}{}
64-
}
65-
66-
files, err := os.ReadDir(defaultIpamPath)
67-
if err != nil {
68-
log.Errorf("Failed to list files in %q: %v", defaultIpamPath, err)
69-
return fmt.Errorf("failed to list files in %q: %v", defaultIpamPath, err)
70-
}
71-
72-
// gather containerIDs for allocated ips
73-
ipContainerIDMap := make(map[string]string)
74-
for _, file := range files {
75-
// skip non checkpoint file
76-
if ip := net.ParseIP(file.Name()); ip == nil {
77-
continue
78-
}
79-
80-
ipamFile, err := os.Open(filepath.Join(defaultIpamPath, file.Name()))
81-
if err != nil {
82-
log.Errorf("failed to open ipam file: %v, %v", file, err)
83-
continue
84-
}
85-
86-
r := bufio.NewReader(ipamFile)
87-
content, _, err := r.ReadLine()
88-
if err != nil {
89-
log.Errorf("Failed to read file %v: %v", file, err)
90-
err = ipamFile.Close()
91-
if err != nil {
92-
log.Errorf("Failed to close file %v: %v", file, err)
93-
}
94-
continue
95-
}
96-
err = ipamFile.Close()
97-
if err != nil {
98-
log.Errorf("Failed to close file %v: %v", file, err)
99-
}
100-
ipContainerIDMap[file.Name()] = strings.TrimSpace(string(content))
101-
}
102-
103-
for ip, containerID := range ipContainerIDMap {
104-
if _, ok := sandboxStubSet[containerID]; !ok && containerID != "" {
105-
log.Warnf("detect ip address leak: %s, removing", ip)
106-
err := os.Remove(filepath.Join(defaultIpamPath, ip))
107-
if err != nil {
108-
log.Errorf("error remove leak ip: %s, err: %v", ip, err)
109-
}
110-
}
111-
}
11229
return nil
11330
}
11431

@@ -124,63 +41,6 @@ func (f *vethResourceManager) Stat(context *networkContext, resID string) (types
12441
}
12542

12643
func newVPCResourceManager() (ResourceManager, error) {
127-
mgr := &vethResourceManager{
128-
runtimeAPI: dockerRuntime{},
129-
}
130-
44+
mgr := &vethResourceManager{}
13145
return mgr, nil
13246
}
133-
134-
type containerRuntime interface {
135-
GetRunningSandbox() ([]string, error)
136-
}
137-
138-
type dockerRuntime struct{}
139-
140-
func (dockerRuntime) GetRunningSandbox() ([]string, error) {
141-
var containerList []string
142-
// use env DOCKER_API_VERSION=v1.21 to specify the version to v1.21,
143-
// otherwise, client can negotiate an appropriate version with server.
144-
dockerCli, err := client.NewClientWithOpts(
145-
client.FromEnv,
146-
client.WithAPIVersionNegotiation(),
147-
)
148-
if err != nil {
149-
return containerList, fmt.Errorf("error init docker client to restore local lease: %+v", err)
150-
}
151-
defer dockerCli.Close()
152-
153-
timeoutContext, cancel := context.WithTimeout(context.Background(), time.Minute)
154-
defer cancel()
155-
listFilter := filters.NewArgs()
156-
listFilter.Add("label", fmt.Sprintf("%s=%s", "io.kubernetes.docker.type", "podsandbox"))
157-
sandboxContainer, err := dockerCli.ContainerList(timeoutContext,
158-
dockerTypes.ContainerListOptions{
159-
Filters: listFilter,
160-
},
161-
)
162-
if err != nil {
163-
return containerList, fmt.Errorf("error get docker containers to restore local lease: %+v", err)
164-
}
165-
166-
for _, container := range sandboxContainer {
167-
timeoutContext, cancel := context.WithTimeout(context.Background(), time.Minute)
168-
containerInfo, err := dockerCli.ContainerInspect(timeoutContext, container.ID)
169-
cancel()
170-
if err != nil {
171-
return containerList, fmt.Errorf("error get container info to cleanup: %+v", err)
172-
}
173-
if !containerInfo.State.Running {
174-
continue
175-
}
176-
if containerInfo.NetworkSettings == nil ||
177-
containerInfo.NetworkSettings.SandboxKey == "" ||
178-
containerInfo.NetworkSettings.SandboxKey == "/var/run/docker/netns/default" {
179-
continue
180-
}
181-
182-
log.Debugf("get container for ipam gc: %+v", container.Labels)
183-
containerList = append(containerList, container.ID)
184-
}
185-
return containerList, nil
186-
}

go.mod

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,6 @@ require (
5858
github.com/containerd/console v1.0.3 // indirect
5959
github.com/coreos/go-iptables v0.6.0 // indirect
6060
github.com/davecgh/go-spew v1.1.1 // indirect
61-
github.com/docker/distribution v2.8.1+incompatible // indirect
62-
github.com/docker/go-connections v0.4.0 // indirect
63-
github.com/docker/go-units v0.4.0 // indirect
6461
github.com/emicklei/go-restful/v3 v3.9.0 // indirect
6562
github.com/evanphx/json-patch/v5 v5.6.0 // indirect
6663
github.com/fsnotify/fsnotify v1.6.0 // indirect
@@ -93,8 +90,6 @@ require (
9390
github.com/modern-go/reflect2 v1.0.2 // indirect
9491
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
9592
github.com/nxadm/tail v1.4.8 // indirect
96-
github.com/opencontainers/go-digest v1.0.0 // indirect
97-
github.com/opencontainers/image-spec v1.0.2 // indirect
9893
github.com/opentracing/opentracing-go v1.2.1-0.20220228012449-10b1cf09e00b // indirect
9994
github.com/pmezard/go-difflib v1.0.0 // indirect
10095
github.com/prometheus/client_model v0.4.0 // indirect

go.sum

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohl
3232
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
3333
github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc=
3434
github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8=
35-
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8=
3635
github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
3736
github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24=
3837
github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw=
@@ -281,19 +280,15 @@ github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop
281280
github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY=
282281
github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
283282
github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
284-
github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68=
285-
github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
286283
github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
287284
github.com/docker/docker v20.10.20+incompatible h1:kH9tx6XO+359d+iAkumyKDc5Q1kOwPuAUaeri48nD6E=
288285
github.com/docker/docker v20.10.20+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
289286
github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y=
290-
github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=
291287
github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
292288
github.com/docker/go-events v0.0.0-20170721190031-9461782956ad/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA=
293289
github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA=
294290
github.com/docker/go-metrics v0.0.0-20180209012529-399ea8c73916/go.mod h1:/u0gXw0Gay3ceNrsHubL3BtdOL2fHf93USgMTe0W5dI=
295291
github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw=
296-
github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw=
297292
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
298293
github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE=
299294
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
@@ -586,15 +581,13 @@ github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2J
586581
github.com/moby/sys/symlink v0.1.0/go.mod h1:GGDODQmbFOjFsXvfLVn3+ZRxkch54RkSiGqsZeMYowQ=
587582
github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo=
588583
github.com/moby/term v0.0.0-20201216013528-df9cb8a40635/go.mod h1:FBS0z0QWA44HXygs7VXDUOGoN/1TV3RuWkLO04am3wc=
589-
github.com/moby/term v0.0.0-20221205130635-1aeaba878587 h1:HfkjXDfhgVaN5rmueG8cL8KKeFNecRCXFhaJ2qZ5SKA=
590584
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
591585
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
592586
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
593587
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
594588
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
595589
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
596590
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
597-
github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A=
598591
github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc=
599592
github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ=
600593
github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
@@ -638,12 +631,9 @@ github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1
638631
github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
639632
github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
640633
github.com/opencontainers/go-digest v1.0.0-rc1.0.20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
641-
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
642634
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
643635
github.com/opencontainers/image-spec v1.0.0/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
644636
github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
645-
github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM=
646-
github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
647637
github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
648638
github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
649639
github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=

0 commit comments

Comments
 (0)