Merge pull request #590 from apilloud/ipv6only

server: add --bind-address flag
This commit is contained in:
Mrunal Patel 2017-06-13 07:42:02 -07:00 committed by GitHub
commit bca3f6262a
4 changed files with 39 additions and 3 deletions

View file

@ -35,6 +35,12 @@ storage_option = [
# listen is the path to the AF_LOCAL socket on which crio will listen. # listen is the path to the AF_LOCAL socket on which crio will listen.
listen = "{{ .Listen }}" listen = "{{ .Listen }}"
# stream_address is the IP address on which the stream server will listen
stream_address = "{{ .StreamAddress }}"
# stream_port is the port on which the stream server will listen
stream_port = "{{ .StreamPort }}"
# The "crio.runtime" table contains settings pertaining to the OCI # The "crio.runtime" table contains settings pertaining to the OCI
# runtime used and options for how to set up and manage the OCI runtime. # runtime used and options for how to set up and manage the OCI runtime.
[crio.runtime] [crio.runtime]

View file

@ -71,6 +71,12 @@ func mergeConfig(config *server.Config, ctx *cli.Context) error {
if ctx.GlobalIsSet("listen") { if ctx.GlobalIsSet("listen") {
config.Listen = ctx.GlobalString("listen") config.Listen = ctx.GlobalString("listen")
} }
if ctx.GlobalIsSet("stream-address") {
config.StreamAddress = ctx.GlobalString("stream-address")
}
if ctx.GlobalIsSet("stream-port") {
config.StreamPort = ctx.GlobalString("stream-port")
}
if ctx.GlobalIsSet("runtime") { if ctx.GlobalIsSet("runtime") {
config.Runtime = ctx.GlobalString("runtime") config.Runtime = ctx.GlobalString("runtime")
} }
@ -145,6 +151,14 @@ func main() {
Name: "listen", Name: "listen",
Usage: "path to crio socket", Usage: "path to crio socket",
}, },
cli.StringFlag{
Name: "stream-address",
Usage: "bind address for streaming socket",
},
cli.StringFlag{
Name: "stream-port",
Usage: "bind port for streaming socket (default: \"10010\")",
},
cli.StringFlag{ cli.StringFlag{
Name: "log", Name: "log",
Value: "", Value: "",

View file

@ -65,6 +65,12 @@ type APIConfig struct {
// This may support proto://addr formats later, but currently this is just // This may support proto://addr formats later, but currently this is just
// a path. // a path.
Listen string `toml:"listen"` Listen string `toml:"listen"`
// StreamAddress is the IP address on which the stream server will listen.
StreamAddress string `toml:"stream_address"`
// StreamPort is the port on which the stream server will listen.
StreamPort string `toml:"stream_port"`
} }
// RuntimeConfig represents the "crio.runtime" TOML config table. // RuntimeConfig represents the "crio.runtime" TOML config table.
@ -207,7 +213,9 @@ func DefaultConfig() *Config {
LogDir: "/var/log/crio/pods", LogDir: "/var/log/crio/pods",
}, },
APIConfig: APIConfig{ APIConfig: APIConfig{
Listen: "/var/run/crio.sock", Listen: "/var/run/crio.sock",
StreamAddress: "",
StreamPort: "10010",
}, },
RuntimeConfig: RuntimeConfig{ RuntimeConfig: RuntimeConfig{
Runtime: "/usr/bin/runc", Runtime: "/usr/bin/runc",

View file

@ -613,14 +613,22 @@ func New(config *Config) (*Server, error) {
s.restore() s.restore()
s.cleanupSandboxesOnShutdown() s.cleanupSandboxesOnShutdown()
bindAddress, err := knet.ChooseBindAddress(net.IP{0, 0, 0, 0}) bindAddress := net.ParseIP(config.StreamAddress)
if bindAddress == nil {
bindAddress, err = knet.ChooseBindAddress(net.IP{0, 0, 0, 0})
if err != nil {
return nil, err
}
}
_, err = net.LookupPort("tcp", config.StreamPort)
if err != nil { if err != nil {
return nil, err return nil, err
} }
// Prepare streaming server // Prepare streaming server
streamServerConfig := streaming.DefaultConfig streamServerConfig := streaming.DefaultConfig
streamServerConfig.Addr = bindAddress.String() + ":10101" streamServerConfig.Addr = net.JoinHostPort(bindAddress.String(), config.StreamPort)
s.stream.runtimeServer = s s.stream.runtimeServer = s
s.stream.streamServer, err = streaming.NewServer(streamServerConfig, s.stream) s.stream.streamServer, err = streaming.NewServer(streamServerConfig, s.stream)
if err != nil { if err != nil {