1
0
mirror of https://github.com/rancher/os.git synced 2025-08-30 12:31:24 +00:00

Do not use the previous network settings on DigitalOcean

This commit is contained in:
niusmallnan 2019-01-10 16:20:57 +08:00 committed by niusmallnan
parent 41277f7ca5
commit 03deff471e

View File

@ -62,9 +62,16 @@ func CloudInit(cfg *config.CloudConfig) (*config.CloudConfig, error) {
}
if len(stateConfig.Rancher.Network.Interfaces) > 0 {
cfg.Rancher.Network = stateConfig.Rancher.Network
if err := config.Set("rancher.network", stateConfig.Rancher.Network); err != nil {
log.Error(err)
// DO also uses static networking, but this IP may change if:
// 1. not using Floating IP
// 2. creating a droplet with a snapshot, the snapshot cached the previous IP
if onlyDigitalOcean(cfg.Rancher.CloudInit.Datasources) {
log.Info("Do not use the previous network settings on DigitalOcean")
} else {
cfg.Rancher.Network = stateConfig.Rancher.Network
if err := config.Set("rancher.network", stateConfig.Rancher.Network); err != nil {
log.Error(err)
}
}
}
@ -113,3 +120,16 @@ func onlyConfigDrive(datasources []string) bool {
}
return false
}
func onlyDigitalOcean(datasources []string) bool {
if len(datasources) != 1 {
return false
}
for _, ds := range datasources {
parts := strings.SplitN(ds, ":", 2)
if parts[0] == "digitalocean" {
return true
}
}
return false
}