Config for container network (#96)
Fix #66 Reviewed-on: #96 Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit was merged in pull request #96.
This commit is contained in:
@@ -74,6 +74,7 @@ func runDaemon(ctx context.Context, configFile *string) func(cmd *cobra.Command, | ||||
ForgeInstance: reg.Address, | ||||
Environ: cfg.Runner.Envs, | ||||
Labels: reg.Labels, | ||||
Network: cfg.Container.Network, | ||||
Version: version, | ||||
} | ||||
| ||||
|
@@ -36,3 +36,7 @@ cache: | ||||
# The port of the cache server. | ||||
# 0 means to use a random available port. | ||||
port: 0 | ||||
| ||||
container: | ||||
# Which network to use for the job containers. | ||||
network: bridge | ||||
|
@@ -31,6 +31,9 @@ type Config struct { | ||||
Host string `yaml:"host"` | ||||
Port uint16 `yaml:"port"` | ||||
} `yaml:"cache"` | ||||
Container struct { | ||||
Network string `yaml:"network"` | ||||
} | ||||
} | ||||
| ||||
// LoadDefault returns the default configuration. | ||||
@@ -84,6 +87,9 @@ func LoadDefault(file string) (*Config, error) { | ||||
cfg.Cache.Dir = filepath.Join(home, ".cache", "actcache") | ||||
} | ||||
} | ||||
if cfg.Container.Network == "" { | ||||
cfg.Container.Network = "bridge" | ||||
} | ||||
| ||||
return cfg, nil | ||||
} | ||||
|
@@ -22,6 +22,7 @@ type Runner struct { | ||||
Environ map[string]string | ||||
Client client.Client | ||||
Labels []string | ||||
Network string | ||||
CacheHandler *artifactcache.Handler | ||||
} | ||||
| ||||
@@ -34,7 +35,7 @@ func (s *Runner) Run(ctx context.Context, task *runnerv1.Task) error { | ||||
if s.CacheHandler != nil { | ||||
env["ACTIONS_CACHE_URL"] = s.CacheHandler.ExternalURL() + "/" | ||||
} | ||||
return NewTask(s.ForgeInstance, task.Id, s.Client, env, s.platformPicker).Run(ctx, task, s.Machine, s.Version) | ||||
return NewTask(task.Id, s.Client, env, s.Network, s.platformPicker).Run(ctx, task, s.Machine, s.Version) | ||||
} | ||||
| ||||
func (s *Runner) platformPicker(labels []string) string { | ||||
|
@@ -74,11 +74,11 @@ type Task struct { | ||||
} | ||||
| ||||
// NewTask creates a new task | ||||
func NewTask(forgeInstance string, buildID int64, client client.Client, runnerEnvs map[string]string, picker func([]string) string) *Task { | ||||
func NewTask(buildID int64, client client.Client, runnerEnvs map[string]string, network string, picker func([]string) string) *Task { | ||||
task := &Task{ | ||||
Input: &TaskInput{ | ||||
envs: runnerEnvs, | ||||
containerNetworkMode: "bridge", // TODO should be configurable | ||||
containerNetworkMode: network, | ||||
}, | ||||
BuildID: buildID, | ||||
| ||||
|
Reference in New Issue
Block a user