Skip to content
This repository was archived by the owner on Aug 20, 2021. It is now read-only.

Commit 3166266

Browse files
authored
Merge pull request #46 from dweomer/buildkit/cni-config
buildkit: slave config to values from cri and k3c
2 parents 8050e06 + 87a73ab commit 3166266

File tree

5 files changed

+30
-28
lines changed

5 files changed

+30
-28
lines changed

cmd/daemon/daemon_linux.go

-8
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import (
1414
criconfig "github.com/containerd/cri/pkg/config"
1515
"github.com/rancher/k3c/pkg/daemon"
1616
"github.com/rancher/k3c/pkg/daemon/config"
17-
"github.com/rancher/k3c/pkg/daemon/services/buildkit"
1817
"github.com/sirupsen/logrus"
1918
cliv1 "github.com/urfave/cli"
2019
cliv2 "github.com/urfave/cli/v2"
@@ -189,10 +188,6 @@ the backend to support the Docker work-alike frontend of k3c.`
189188
Type: plugin.RuntimeRuncV2,
190189
},
191190
}
192-
buildkit.Config.Workers.Containerd.NetworkConfig.Mode = "cni"
193-
buildkit.Config.Workers.Containerd.NetworkConfig.CNIBinaryPath = cri.Config.NetworkPluginBinDir
194-
buildkit.Config.Workers.Containerd.NetworkConfig.CNIConfigPath = filepath.Join(cri.Config.NetworkPluginConfDir, "90-k3c.json")
195-
196191
if err := os.MkdirAll(cri.Config.NetworkPluginBinDir, 0700); err != nil {
197192
return err
198193
}
@@ -211,9 +206,6 @@ the backend to support the Docker work-alike frontend of k3c.`
211206
if err := os.MkdirAll(cri.Config.NetworkPluginConfDir, 0700); err != nil {
212207
return err
213208
}
214-
if err := config.WriteFileJSON(buildkit.Config.Workers.Containerd.NetworkConfig.CNIConfigPath, config.DefaultCniConf(daemon.Config.BridgeName, daemon.Config.BridgeCIDR), 0600); err != nil {
215-
return err
216-
}
217209
if err := config.WriteFileJSON(filepath.Join(cri.Config.NetworkPluginConfDir, "90-k3c.conflist"), config.DefaultCniConflist(daemon.Config.BridgeName, daemon.Config.BridgeCIDR), 0600); err != nil {
218210
return err
219211
}

pkg/daemon/config/config.go

+6-18
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ import (
99

1010
"github.com/BurntSushi/toml"
1111
"github.com/containerd/containerd/platforms"
12-
"github.com/containerd/containerd/plugin"
13-
cri "github.com/containerd/cri/pkg/config"
1412
buildkit "github.com/moby/buildkit/cmd/buildkitd/config"
1513
"github.com/rancher/k3c/pkg/defaults"
1614
)
@@ -31,13 +29,12 @@ var (
3129
)
3230

3331
type K3Config struct {
34-
BootstrapSkip bool `toml:"bootstrap_skip"`
35-
BootstrapImage string `toml:"bootstrap_image"`
36-
BridgeName string `toml:"bridge_name"`
37-
BridgeCIDR string `toml:"bridge_cidr"`
38-
PodLogs string `toml:"pod_logs"`
39-
Volumes string `toml:"volumes"`
40-
CRI cri.PluginConfig `toml:"cri"`
32+
BootstrapSkip bool `toml:"bootstrap_skip"`
33+
BootstrapImage string `toml:"bootstrap_image"`
34+
BridgeName string `toml:"bridge_name"`
35+
BridgeCIDR string `toml:"bridge_cidr"`
36+
PodLogs string `toml:"pod_logs"`
37+
Volumes string `toml:"volumes"`
4138
}
4239

4340
func DefaultBuildkitConfig() *buildkit.Config {
@@ -61,16 +58,7 @@ func DefaultK3Config() *K3Config {
6158
BootstrapImage: DefaultBootstrapImage,
6259
PodLogs: DefaultPodLogsDir,
6360
Volumes: DefaultVolumesDir,
64-
CRI: cri.DefaultConfig(),
6561
}
66-
config.CRI.SandboxImage = DefaultSandboxImage
67-
config.CRI.DefaultRuntimeName = "runc"
68-
config.CRI.Runtimes = map[string]cri.Runtime{
69-
config.CRI.DefaultRuntimeName: {
70-
Type: plugin.RuntimeRuncV2,
71-
},
72-
}
73-
config.CRI.NetworkPluginMaxConfNum = 1
7462
return config
7563
}
7664

pkg/daemon/plugins.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ func PluginInitFunc(ic *plugin.InitContext) (interface{}, error) {
4343
log.G(ic.Context).Debugf("K3C config %+v", *cfg)
4444

4545
// exports
46-
ic.Meta.Exports["K3CVersion"] = "v1alpha1"
46+
ic.Meta.Exports["api-version"] = "v1alpha1"
4747
ic.Meta.Exports["bridge-name"] = cfg.BridgeName
4848
ic.Meta.Exports["bridge-cidr"] = cfg.BridgeCIDR
4949
ic.Meta.Exports["pod-logs-dir"] = cfg.PodLogs

pkg/daemon/services/buildkit/containerd_worker.go

-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ func newContainerdWorkerOpt(ic *plugin.InitContext) (base.WorkerOpt, error) {
4949

5050
client, err := containerd.New("",
5151
containerd.WithDefaultNamespace(cfg.Workers.Containerd.Namespace),
52-
containerd.WithDefaultRuntime(plugin.RuntimeLinuxV1),
5352
containerd.WithServices(servicesOpts...),
5453
)
5554
if err != nil {

pkg/daemon/services/buildkit/plugin.go

+23
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"github.com/containerd/containerd/log"
77
"github.com/containerd/containerd/platforms"
88
"github.com/containerd/containerd/plugin"
9+
"github.com/containerd/cri"
910
"github.com/moby/buildkit/cache/remotecache"
1011
inlineremotecache "github.com/moby/buildkit/cache/remotecache/inline"
1112
localremotecache "github.com/moby/buildkit/cache/remotecache/local"
@@ -20,6 +21,7 @@ import (
2021
"github.com/moby/buildkit/solver/bboltcachestorage"
2122
"github.com/moby/buildkit/worker"
2223
"github.com/moby/buildkit/worker/base"
24+
"github.com/pkg/errors"
2325
"github.com/rancher/k3c/pkg/daemon/config"
2426
)
2527

@@ -47,6 +49,8 @@ func PluginInitFunc(ic *plugin.InitContext) (interface{}, error) {
4749
).Info("BuildKit init")
4850
cfg := ic.Config.(*buildkit.Config)
4951
cfg.Workers.Containerd.Address = ic.Address
52+
cfg.Workers.Containerd.NetworkConfig.CNIBinaryPath = cri.Config.NetworkPluginBinDir
53+
cfg.Workers.Containerd.NetworkConfig.CNIConfigPath = filepath.Join(cri.Config.NetworkPluginConfDir, "90-k3c.json")
5054
cfg.Root = ic.Root
5155
log.G(ic.Context).Debugf("BuildKit config %+v", *cfg)
5256

@@ -58,6 +62,25 @@ func PluginInitFunc(ic *plugin.InitContext) (interface{}, error) {
5862
ic.Meta.Platforms = append(ic.Meta.Platforms, platforms.DefaultSpec())
5963
}
6064

65+
plugins, err := ic.GetByType(plugin.GRPCPlugin)
66+
if err != nil {
67+
return nil, err
68+
}
69+
k3cPlugin, ok := plugins["k3c"]
70+
if !ok {
71+
return nil, errors.New("failed to find k3c plugin")
72+
}
73+
var bridgeName, bridgeCIDR string
74+
if bridgeName, ok = k3cPlugin.Meta.Exports["bridge-name"]; !ok {
75+
bridgeName = config.DefaultBridgeName
76+
}
77+
if bridgeCIDR, ok = k3cPlugin.Meta.Exports["bridge-cidr"]; !ok {
78+
bridgeCIDR = config.DefaultBridgeCIDR
79+
}
80+
if err := config.WriteFileJSON(cfg.Workers.Containerd.NetworkConfig.CNIConfigPath, config.DefaultCniConf(bridgeName, bridgeCIDR), 0600); err != nil {
81+
return nil, err
82+
}
83+
6184
controllerOpt := control.Opt{
6285
WorkerController: &worker.Controller{},
6386
Entitlements: cfg.Entitlements,

0 commit comments

Comments
 (0)