@@ -174,20 +174,6 @@ func upgradeComponent(component string, waiter apiclient.Waiter, pathMgr StaticP
174
174
recoverEtcd = true
175
175
}
176
176
177
- // We currently depend on getting the Etcd mirror Pod hash from the KubeAPIServer;
178
- // Upgrading the Etcd protocol takes down the apiserver, so we can't verify component restarts if we restart Etcd independently.
179
- // Skip waiting for Etcd to restart and immediately move on to updating the apiserver.
180
- if component == constants .Etcd {
181
- waitForComponentRestart = false
182
- }
183
- // Normally, if an Etcd upgrade is successful, but the apiserver upgrade fails, Etcd is not rolled back.
184
- // In the case of a TLS upgrade, the old KubeAPIServer config is incompatible with the new Etcd confg, so we rollback Etcd
185
- // if the APIServer upgrade fails.
186
- if component == constants .KubeAPIServer {
187
- recoverEtcd = true
188
- fmt .Printf ("[upgrade/staticpods] The %s manifest will be restored if component %q fails to upgrade\n " , constants .Etcd , component )
189
- }
190
-
191
177
if err := renewCerts (cfg , component ); err != nil {
192
178
return errors .Wrapf (err , "failed to renew certificates for component %q" , component )
193
179
}
@@ -311,14 +297,6 @@ func performEtcdStaticPodUpgrade(client clientset.Interface, waiter apiclient.Wa
311
297
return true , errors .Wrap (err , "error creating local etcd static pod manifest file" )
312
298
}
313
299
314
- // Waiter configurations for checking etcd status
315
- // If we are upgrading TLS we need to wait for old static pod to be removed.
316
- // This is needed because we are not able to currently verify that the static pod
317
- // has been updated through the apiserver across an etcd TLS upgrade.
318
- // This value is arbitrary but seems to be long enough in manual testing.
319
- noDelay := 0 * time .Second
320
- podRestartDelay := 30 * time .Second
321
-
322
300
retries := 10
323
301
retryInterval := 15 * time .Second
324
302
@@ -328,7 +306,7 @@ func performEtcdStaticPodUpgrade(client clientset.Interface, waiter apiclient.Wa
328
306
// Since upgrade component failed, the old etcd manifest has either been restored or was never touched
329
307
// Now we need to check the health of etcd cluster if it is up with old manifest
330
308
fmt .Println ("[upgrade/etcd] Waiting for previous etcd to become available" )
331
- if _ , err := oldEtcdClient .WaitForClusterAvailable (noDelay , retries , retryInterval ); err != nil {
309
+ if _ , err := oldEtcdClient .WaitForClusterAvailable (retries , retryInterval ); err != nil {
332
310
fmt .Printf ("[upgrade/etcd] Failed to healthcheck previous etcd: %v\n " , err )
333
311
334
312
// At this point we know that etcd cluster is dead and it is safe to copy backup datastore and to rollback old etcd manifest
@@ -341,7 +319,7 @@ func performEtcdStaticPodUpgrade(client clientset.Interface, waiter apiclient.Wa
341
319
342
320
// Now that we've rolled back the data, let's check if the cluster comes up
343
321
fmt .Println ("[upgrade/etcd] Waiting for previous etcd to become available" )
344
- if _ , err := oldEtcdClient .WaitForClusterAvailable (noDelay , retries , retryInterval ); err != nil {
322
+ if _ , err := oldEtcdClient .WaitForClusterAvailable (retries , retryInterval ); err != nil {
345
323
fmt .Printf ("[upgrade/etcd] Failed to healthcheck previous etcd: %v\n " , err )
346
324
// Nothing else left to try to recover etcd cluster
347
325
return true , errors .Wrapf (err , "fatal error rolling back local etcd cluster manifest, the backup of etcd database is stored here:(%s)" , backupEtcdDir )
@@ -366,7 +344,7 @@ func performEtcdStaticPodUpgrade(client clientset.Interface, waiter apiclient.Wa
366
344
367
345
// Checking health state of etcd after the upgrade
368
346
fmt .Println ("[upgrade/etcd] Waiting for etcd to become available" )
369
- if _ , err = newEtcdClient .WaitForClusterAvailable (podRestartDelay , retries , retryInterval ); err != nil {
347
+ if _ , err = newEtcdClient .WaitForClusterAvailable (retries , retryInterval ); err != nil {
370
348
fmt .Printf ("[upgrade/etcd] Failed to healthcheck etcd: %v\n " , err )
371
349
// Despite the fact that upgradeComponent was successful, there is something wrong with the etcd cluster
372
350
// First step is to restore back up of datastore
@@ -384,7 +362,7 @@ func performEtcdStaticPodUpgrade(client clientset.Interface, waiter apiclient.Wa
384
362
385
363
// Assuming rollback of the old etcd manifest was successful, check the status of etcd cluster again
386
364
fmt .Println ("[upgrade/etcd] Waiting for previous etcd to become available" )
387
- if _ , err := oldEtcdClient .WaitForClusterAvailable (noDelay , retries , retryInterval ); err != nil {
365
+ if _ , err := oldEtcdClient .WaitForClusterAvailable (retries , retryInterval ); err != nil {
388
366
fmt .Printf ("[upgrade/etcd] Failed to healthcheck previous etcd: %v\n " , err )
389
367
// Nothing else left to try to recover etcd cluster
390
368
return true , errors .Wrapf (err , "fatal error rolling back local etcd cluster manifest, the backup of etcd database is stored here:(%s)" , backupEtcdDir )
0 commit comments