From dfb2a40dd549b599a851553edbe8c9fa6fac4437 Mon Sep 17 00:00:00 2001 From: Justin Santa Barbara Date: Tue, 18 Oct 2016 02:15:31 -0400 Subject: [PATCH] Increase timeout for IAM instance propagation From 1 minute -> 5 minutes Should help with issue #591 --- upup/pkg/fi/cloudup/awstasks/launchconfiguration.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/upup/pkg/fi/cloudup/awstasks/launchconfiguration.go b/upup/pkg/fi/cloudup/awstasks/launchconfiguration.go index d0b6c1d1fa..f25978e542 100644 --- a/upup/pkg/fi/cloudup/awstasks/launchconfiguration.go +++ b/upup/pkg/fi/cloudup/awstasks/launchconfiguration.go @@ -30,6 +30,9 @@ import ( "time" ) +const IAMPropagationRetryAttempts = 30 +const IAMPropagationRetryInterval = 10 * time.Second + //go:generate fitask -type=LaunchConfiguration type LaunchConfiguration struct { Name *string @@ -272,7 +275,6 @@ func (_ *LaunchConfiguration) RenderAWS(t *awsup.AWSAPITarget, a, e, changes *La request.IamInstanceProfile = e.IAMInstanceProfile.Name } - maxAttempts := 6 attempt := 0 for { attempt++ @@ -285,13 +287,13 @@ func (_ *LaunchConfiguration) RenderAWS(t *awsup.AWSAPITarget, a, e, changes *La if awsup.AWSErrorCode(err) == "ValidationError" { message := awsup.AWSErrorMessage(err) if strings.Contains(message, "not authorized") || strings.Contains(message, "Invalid IamInstance") { - if attempt == maxAttempts { + if attempt == IAMPropagationRetryAttempts { // IAM instance profile creation is notoriously async return fmt.Errorf("IAM instance profile not yet created/propagated") } else { glog.Infof("Waiting for IAM to replicate") glog.V(2).Infof("IAM error was %v", err) - time.Sleep(10 * time.Second) + time.Sleep(IAMPropagationRetryInterval) continue } }