Pass ttrpc address to shim via env
Because of the way go handles flags, passing a flag that is not defined will cause an error. In our case, if we kept this as a flag, then third-party shims would break when they see this new flag. To fix this, I moved this new configuration option to an env var. We should use env vars from here on out to avoid breaking shim compat. Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
This commit is contained in:
parent
1be6ee5396
commit
6cf031e1e4
@ -119,7 +119,6 @@ func newCommand(ctx context.Context, id, containerdBinary, containerdAddress, co
|
|||||||
"-namespace", ns,
|
"-namespace", ns,
|
||||||
"-id", id,
|
"-id", id,
|
||||||
"-address", containerdAddress,
|
"-address", containerdAddress,
|
||||||
"-ttrpc-address", containerdTTRPCAddress,
|
|
||||||
}
|
}
|
||||||
cmd := exec.Command(self, args...)
|
cmd := exec.Command(self, args...)
|
||||||
cmd.Dir = cwd
|
cmd.Dir = cwd
|
||||||
|
@ -135,7 +135,6 @@ func newCommand(ctx context.Context, id, containerdBinary, containerdAddress, co
|
|||||||
"-namespace", ns,
|
"-namespace", ns,
|
||||||
"-id", id,
|
"-id", id,
|
||||||
"-address", containerdAddress,
|
"-address", containerdAddress,
|
||||||
"-ttrpc-address", containerdTTRPCAddress,
|
|
||||||
}
|
}
|
||||||
cmd := exec.Command(self, args...)
|
cmd := exec.Command(self, args...)
|
||||||
cmd.Dir = cwd
|
cmd.Dir = cwd
|
||||||
|
@ -89,11 +89,14 @@ var (
|
|||||||
socketFlag string
|
socketFlag string
|
||||||
bundlePath string
|
bundlePath string
|
||||||
addressFlag string
|
addressFlag string
|
||||||
ttrpcAddressFlag string
|
|
||||||
containerdBinaryFlag string
|
containerdBinaryFlag string
|
||||||
action string
|
action string
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
ttrpcAddressEnv = "TTRPC_ADDRESS"
|
||||||
|
)
|
||||||
|
|
||||||
func parseFlags() {
|
func parseFlags() {
|
||||||
flag.BoolVar(&debugFlag, "debug", false, "enable debug output in logs")
|
flag.BoolVar(&debugFlag, "debug", false, "enable debug output in logs")
|
||||||
flag.StringVar(&namespaceFlag, "namespace", "", "namespace that owns the shim")
|
flag.StringVar(&namespaceFlag, "namespace", "", "namespace that owns the shim")
|
||||||
@ -102,7 +105,6 @@ func parseFlags() {
|
|||||||
flag.StringVar(&bundlePath, "bundle", "", "path to the bundle if not workdir")
|
flag.StringVar(&bundlePath, "bundle", "", "path to the bundle if not workdir")
|
||||||
|
|
||||||
flag.StringVar(&addressFlag, "address", "", "grpc address back to main containerd")
|
flag.StringVar(&addressFlag, "address", "", "grpc address back to main containerd")
|
||||||
flag.StringVar(&ttrpcAddressFlag, "ttrpc-address", "", "ttrpc address back to main containerd")
|
|
||||||
flag.StringVar(&containerdBinaryFlag, "publish-binary", "containerd", "path to publish binary (used for publishing events)")
|
flag.StringVar(&containerdBinaryFlag, "publish-binary", "containerd", "path to publish binary (used for publishing events)")
|
||||||
|
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
@ -165,7 +167,9 @@ func run(id string, initFunc Init, config Config) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
publisher, err := newPublisher(ttrpcAddressFlag)
|
ttrpcAddress := os.Getenv(ttrpcAddressEnv)
|
||||||
|
|
||||||
|
publisher, err := newPublisher(ttrpcAddress)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -204,7 +208,7 @@ func run(id string, initFunc Init, config Config) error {
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
case "start":
|
case "start":
|
||||||
address, err := service.StartShim(ctx, idFlag, containerdBinaryFlag, addressFlag, ttrpcAddressFlag)
|
address, err := service.StartShim(ctx, idFlag, containerdBinaryFlag, addressFlag, ttrpcAddress)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -50,7 +50,6 @@ func Command(ctx context.Context, runtime, containerdAddress, containerdTTRPCAdd
|
|||||||
args := []string{
|
args := []string{
|
||||||
"-namespace", ns,
|
"-namespace", ns,
|
||||||
"-address", containerdAddress,
|
"-address", containerdAddress,
|
||||||
"-ttrpc-address", containerdTTRPCAddress,
|
|
||||||
"-publish-binary", self,
|
"-publish-binary", self,
|
||||||
}
|
}
|
||||||
args = append(args, cmdArgs...)
|
args = append(args, cmdArgs...)
|
||||||
@ -96,7 +95,11 @@ func Command(ctx context.Context, runtime, containerdAddress, containerdTTRPCAdd
|
|||||||
|
|
||||||
cmd := exec.Command(cmdPath, args...)
|
cmd := exec.Command(cmdPath, args...)
|
||||||
cmd.Dir = path
|
cmd.Dir = path
|
||||||
cmd.Env = append(os.Environ(), "GOMAXPROCS=2")
|
cmd.Env = append(
|
||||||
|
os.Environ(),
|
||||||
|
"GOMAXPROCS=2",
|
||||||
|
fmt.Sprintf("%s=%s", ttrpcAddressEnv, containerdTTRPCAddress),
|
||||||
|
)
|
||||||
cmd.SysProcAttr = getSysProcAttr()
|
cmd.SysProcAttr = getSysProcAttr()
|
||||||
if opts != nil {
|
if opts != nil {
|
||||||
d, err := proto.Marshal(opts)
|
d, err := proto.Marshal(opts)
|
||||||
|
Loading…
Reference in New Issue
Block a user