in cmd/utils/config/node.go [80:111]
func (c *config) setNodeConfig(nodeName, nodeFlag, resourceIDFlag, subscriptionIDFlag,
nodeResourceGroupFlag, vmssFlag, instanceIDFlag string,
) error {
if err := os.MkdirAll(Dir(), 0o700); err != nil {
return fmt.Errorf("creating config directory: %w", err)
}
if err := c.ReadInConfig(); err != nil && !errors.Is(err, fs.ErrNotExist) {
return fmt.Errorf("reading config: %w", err)
}
// delete the node config if it already exists to avoid mutually exclusive config
if c.IsSet("nodes." + nodeName) {
if err := c.deleteNodeConfig(nodeName); err != nil {
return fmt.Errorf("deleting node config: %w", err)
}
}
if nodeFlag != "" {
c.Set("nodes."+nodeName+".node", nodeFlag)
} else if resourceIDFlag != "" {
c.Set("nodes."+nodeName+".id", resourceIDFlag)
} else {
c.Set("nodes."+nodeName+".subscription", subscriptionIDFlag)
c.Set("nodes."+nodeName+".node-resource-group", nodeResourceGroupFlag)
c.Set("nodes."+nodeName+".vmss", vmssFlag)
c.Set("nodes."+nodeName+".instance-id", instanceIDFlag)
}
if err := c.WriteConfig(); err != nil {
return fmt.Errorf("writing config: %w", err)
}
return nil
}