From 6c713717fd396a53b8beec797d4b5a1e709e0a92 Mon Sep 17 00:00:00 2001 From: Amit Date: Wed, 26 Jun 2024 10:04:41 +0530 Subject: [PATCH] Fix for CIF OSProvisioningTimedOut --- pkg/api/error.go | 1 + pkg/hive/failure/handler.go | 10 ++++++++++ pkg/hive/failure/reasons.go | 10 ++++++++++ 3 files changed, 21 insertions(+) diff --git a/pkg/api/error.go b/pkg/api/error.go index 6d007fc6dd4..63428878df7 100644 --- a/pkg/api/error.go +++ b/pkg/api/error.go @@ -104,6 +104,7 @@ const ( CloudErrorCodeRequestDisallowedByPolicy = "RequestDisallowedByPolicy" CloudErrorCodeInvalidNetworkAddress = "InvalidNetworkAddress" CloudErrorCodeThrottlingLimitExceeded = "ThrottlingLimitExceeded" + CloudErrorCodeOSProvisioningTimedOut = "OSProvisioningTimedOut" ) // NewCloudError returns a new CloudError diff --git a/pkg/hive/failure/handler.go b/pkg/hive/failure/handler.go index 7d4a78b393a..101deaf0bbf 100644 --- a/pkg/hive/failure/handler.go +++ b/pkg/hive/failure/handler.go @@ -50,6 +50,16 @@ func HandleProvisionFailed(ctx context.Context, cd *hivev1.ClusterDeployment, co AzureInvalidTemplateDeployment.Message, *armError, ) + case AzureOSProvisioningTimedOut.Reason: + armError, err := parseDeploymentFailedJson(*installLog) + if err != nil { + return err + } + + return wrapArmError( + AzureOSProvisioningTimedOut.Message, + *armError, + ) default: return genericErr } diff --git a/pkg/hive/failure/reasons.go b/pkg/hive/failure/reasons.go index 414e0ed03e8..0102dc324bd 100644 --- a/pkg/hive/failure/reasons.go +++ b/pkg/hive/failure/reasons.go @@ -17,6 +17,7 @@ var Reasons = []InstallFailingReason{ // priority over later ones. AzureRequestDisallowedByPolicy, AzureInvalidTemplateDeployment, + AzureOSProvisioningTimedOut, } var AzureRequestDisallowedByPolicy = InstallFailingReason{ @@ -36,3 +37,12 @@ var AzureInvalidTemplateDeployment = InstallFailingReason{ regexp.MustCompile(`"code":\w?"InvalidTemplateDeployment"`), }, } + +var AzureOSProvisioningTimedOut = InstallFailingReason{ + Name: "AzureOSProvisioningTimedOut", + Reason: "AzureOSProvisioningTimedOut", + Message: "OS Provisioning for VM did not finish in the allotted time.", + SearchRegexes: []*regexp.Regexp{ + regexp.MustCompile(`"code":\w?"ResourceDeploymentFailure".*"code":\w?"OSProvisioningTimedOut"`), + }, +}