提交 f33ac4c2 编写于 作者: S Sharif Elgamal

regenerate config on retry

上级 bf387850
......@@ -64,7 +64,7 @@ var nodeAddCmd = &cobra.Command{
}
if err := node.Add(cc, n, false); err != nil {
_, err := maybeDeleteAndRetry(*cc, n, nil, err)
_, err := maybeDeleteAndRetry(cc, n, nil, err)
if err != nil {
exit.WithError("failed to add node", err)
}
......
......@@ -69,7 +69,7 @@ var nodeStartCmd = &cobra.Command{
_, err = node.Start(s, false)
if err != nil {
_, err := maybeDeleteAndRetry(*cc, *n, nil, err)
_, err := maybeDeleteAndRetry(cc, *n, nil, err)
if err != nil {
node.MaybeExitWithAdvice(err)
exit.WithError("failed to start node", err)
......
......@@ -282,7 +282,7 @@ func provisionWithDriver(cmd *cobra.Command, ds registry.DriverState, existing *
func startWithDriver(starter node.Starter, existing *config.ClusterConfig) (*kubeconfig.Settings, error) {
kubeconfig, err := node.Start(starter, true)
if err != nil {
kubeconfig, err = maybeDeleteAndRetry(*starter.Cfg, *starter.Node, starter.ExistingAddons, err)
kubeconfig, err = maybeDeleteAndRetry(starter.Cfg, *starter.Node, starter.ExistingAddons, err)
if err != nil {
return nil, err
}
......@@ -411,7 +411,7 @@ func showKubectlInfo(kcs *kubeconfig.Settings, k8sVersion string, machineName st
return nil
}
func maybeDeleteAndRetry(cc config.ClusterConfig, n config.Node, existingAddons map[string]bool, originalErr error) (*kubeconfig.Settings, error) {
func maybeDeleteAndRetry(cc *config.ClusterConfig, n config.Node, existingAddons map[string]bool, originalErr error) (*kubeconfig.Settings, error) {
if viper.GetBool(deleteOnFailure) {
out.WarningT("Node {{.name}} failed to start, deleting and trying again.", out.V{"name": n.Name})
// Start failed, delete the cluster and try again
......@@ -425,15 +425,17 @@ func maybeDeleteAndRetry(cc config.ClusterConfig, n config.Node, existingAddons
out.WarningT("Failed to delete cluster {{.name}}, proceeding with retry anyway.", out.V{"name": cc.Name})
}
// Re-generate the cluster config, just in case the failure was related to an old config format
upgradeExistingConfig(cc)
var kubeconfig *kubeconfig.Settings
for _, n := range cc.Nodes {
r, p, m, h, err := node.Provision(&cc, &n, n.ControlPlane, false)
r, p, m, h, err := node.Provision(cc, &n, n.ControlPlane, false)
s := node.Starter{
Runner: r,
PreExists: p,
MachineAPI: m,
Host: h,
Cfg: &cc,
Cfg: cc,
Node: &n,
ExistingAddons: existingAddons,
}
......
......@@ -217,7 +217,7 @@ func ClusterFlagValue() string {
// generateClusterConfig generate a config.ClusterConfig based on flags or existing cluster config
func generateClusterConfig(cmd *cobra.Command, existing *config.ClusterConfig, k8sVersion string, drvName string) (config.ClusterConfig, config.Node, error) {
var cc config.ClusterConfig
if existing != nil { // create profile config first time
if existing != nil {
cc = updateExistingConfigFromFlags(cmd, existing)
} else {
glog.Info("no existing cluster config was found, will generate one from the flags ")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册