// PopulateMachineConfig is called both from the FinishMachineConfig below, // which does have access to the environment config, and from the container // provisioners, which don't have access to the environment config. Everything // that is needed to provision a container needs to be returned to the // provisioner in the ContainerConfig structure. Those values are then used to // call this function. func PopulateMachineConfig(mcfg *cloudinit.MachineConfig, providerType, authorizedKeys string, sslHostnameVerification bool, proxySettings, aptProxySettings proxy.Settings, preferIPv6 bool, enableOSRefreshUpdates bool, enableOSUpgrade bool, ) error { if authorizedKeys == "" { return fmt.Errorf("environment configuration has no authorized-keys") } mcfg.AuthorizedKeys = authorizedKeys if mcfg.AgentEnvironment == nil { mcfg.AgentEnvironment = make(map[string]string) } mcfg.AgentEnvironment[agent.ProviderType] = providerType mcfg.AgentEnvironment[agent.ContainerType] = string(mcfg.MachineContainerType) mcfg.DisableSSLHostnameVerification = !sslHostnameVerification mcfg.ProxySettings = proxySettings mcfg.AptProxySettings = aptProxySettings mcfg.PreferIPv6 = preferIPv6 mcfg.EnableOSRefreshUpdate = enableOSRefreshUpdates mcfg.EnableOSUpgrade = enableOSUpgrade return nil }