mirror of
https://github.com/rancher/os.git
synced 2025-09-01 06:40:31 +00:00
Early cloud-init
This commit is contained in:
@@ -31,27 +31,32 @@ func ReadConfig(bytes []byte, substituteMetadataVars bool, files ...string) (*Cl
|
||||
return c, nil
|
||||
}
|
||||
|
||||
func loadRawDiskConfig(full bool) map[interface{}]interface{} {
|
||||
func loadRawDiskConfig(dirPrefix string, full bool) map[interface{}]interface{} {
|
||||
var rawCfg map[interface{}]interface{}
|
||||
if full {
|
||||
rawCfg, _ = readConfigs(nil, true, false, OsConfigFile, OemConfigFile)
|
||||
}
|
||||
|
||||
files := append(CloudConfigDirFiles(), CloudConfigFile)
|
||||
files := CloudConfigDirFiles(dirPrefix)
|
||||
files = append(files, path.Join(dirPrefix, CloudConfigFile))
|
||||
additionalCfgs, _ := readConfigs(nil, true, false, files...)
|
||||
|
||||
return util.Merge(rawCfg, additionalCfgs)
|
||||
}
|
||||
|
||||
func loadRawConfig() map[interface{}]interface{} {
|
||||
rawCfg := loadRawDiskConfig(true)
|
||||
func loadRawConfig(dirPrefix string) map[interface{}]interface{} {
|
||||
rawCfg := loadRawDiskConfig(dirPrefix, true)
|
||||
rawCfg = util.Merge(rawCfg, readCmdline())
|
||||
rawCfg = applyDebugFlags(rawCfg)
|
||||
return mergeMetadata(rawCfg, readMetadata())
|
||||
}
|
||||
|
||||
func LoadConfig() *CloudConfig {
|
||||
rawCfg := loadRawConfig()
|
||||
return LoadConfigWithPrefix("")
|
||||
}
|
||||
|
||||
func LoadConfigWithPrefix(dirPrefix string) *CloudConfig {
|
||||
rawCfg := loadRawConfig(dirPrefix)
|
||||
|
||||
cfg := &CloudConfig{}
|
||||
if err := util.Convert(rawCfg, cfg); err != nil {
|
||||
@@ -63,8 +68,10 @@ func LoadConfig() *CloudConfig {
|
||||
return cfg
|
||||
}
|
||||
|
||||
func CloudConfigDirFiles() []string {
|
||||
files, err := ioutil.ReadDir(CloudConfigDir)
|
||||
func CloudConfigDirFiles(dirPrefix string) []string {
|
||||
cloudConfigDir := path.Join(dirPrefix, CloudConfigDir)
|
||||
|
||||
files, err := ioutil.ReadDir(cloudConfigDir)
|
||||
if err != nil {
|
||||
if os.IsNotExist(err) {
|
||||
// do nothing
|
||||
@@ -78,7 +85,7 @@ func CloudConfigDirFiles() []string {
|
||||
var finalFiles []string
|
||||
for _, file := range files {
|
||||
if !file.IsDir() && !strings.HasPrefix(file.Name(), ".") {
|
||||
finalFiles = append(finalFiles, path.Join(CloudConfigDir, file.Name()))
|
||||
finalFiles = append(finalFiles, path.Join(cloudConfigDir, file.Name()))
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user