package children import ( "context" "fmt" "isle/bootstrap" "isle/daemon/daecommon" "code.betamike.com/micropelago/pmux/pmuxlib" ) func (c *Children) newPmuxConfig( ctx context.Context, garageRPCSecret, binDirPath string, networkConfig daecommon.NetworkConfig, garageAdminToken string, hostBootstrap bootstrap.Bootstrap, ) ( pmuxlib.Config, error, ) { nebulaPmuxProcConfig, err := nebulaPmuxProcConfig( ctx, c.logger, c.runtimeDir.Path, binDirPath, networkConfig, hostBootstrap, ) if err != nil { return pmuxlib.Config{}, fmt.Errorf("generating nebula config: %w", err) } dnsmasqPmuxProcConfig, err := dnsmasqPmuxProcConfig( ctx, c.logger, c.runtimeDir.Path, binDirPath, networkConfig, hostBootstrap, ) if err != nil { return pmuxlib.Config{}, fmt.Errorf( "generating dnsmasq config: %w", err, ) } garagePmuxProcConfigs, err := garagePmuxProcConfigs( ctx, c.logger, garageRPCSecret, c.runtimeDir.Path, binDirPath, networkConfig, garageAdminToken, hostBootstrap, ) if err != nil { return pmuxlib.Config{}, fmt.Errorf( "generating garage children configs: %w", err, ) } pmuxProcConfigs := garagePmuxProcConfigs pmuxProcConfigs["nebula"] = nebulaPmuxProcConfig pmuxProcConfigs["dnsmasq"] = dnsmasqPmuxProcConfig return pmuxlib.Config{ Processes: pmuxProcConfigs, }, nil } func (c *Children) postPmuxInit( ctx context.Context, networkConfig daecommon.NetworkConfig, garageAdminToken string, hostBootstrap bootstrap.Bootstrap, ) error { if err := waitForNebula(ctx, c.logger, hostBootstrap); err != nil { return fmt.Errorf("waiting for nebula to start: %w", err) } err := waitForGarage( ctx, c.logger, networkConfig, garageAdminToken, hostBootstrap, ) if err != nil { return fmt.Errorf("waiting for garage to start: %w", err) } return nil }