hashicorp / terraform-provider-azurerm

Terraform provider for Azure Resource Manager
https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs
Mozilla Public License 2.0
4.53k stars 4.6k forks source link

Support for IgnoreKubernetesDeprecations in upgrade_settings block / azurerm_kubernetes_cluster #21984

Open flbla opened 1 year ago

flbla commented 1 year ago

Is there an existing issue for this?

Community Note

Description

hello, I would like to be able to bypass validation to ignore API breaking changes, to do so I need to do an az aks update --name myAKSCluster --resource-group myResourceGroup --upgrade-settings IgnoreKubernetesDeprecations

could be great to be able to do it with Terraform with an IgnoreKubernetesDeprecations in upgrade_settings block

https://learn.microsoft.com/en-us/azure/aks/upgrade-cluster?tabs=azure-cli#bypass-validation-to-ignore-api-changes

New or Affected Resource(s)/Data Source(s)

azurerm_kubernetes_cluster

Potential Terraform Configuration

azurerm_kubernetes_cluster {
  ...
  upgrade_settings {
    IgnoreKubernetesDeprecations = true // default = false
  }
}

References

No response

andreb89 commented 1 year ago

Yeah, support for this new setting would be great, because right now if there are API deprecations, an AKS update to 1.26 is not possible with Terraform.

It fails for us with the following error message:

Control Plane upgrade is blocked due to recent usage of a Kubernetes API deprecated in the specified version. Please refer to https://kubernetes.io/docs/reference/using-api/deprecation-guide to migrate the usage. To bypass this error, set IgnoreKubernetesDeprecations in upgradeSettings.overrideSettings. Bypassing this error without migrating usage will result in the deprecated Kubernetes API calls failing. See details in https://aka.ms/aks/UpgradeAndDeprecatedAPIs. Usage details: 2 errors occurred: usage has been detected on API flowcontrol.apiserver.k8s.io.flowschemas.v1beta1.watch, and was recently seen at: 2023-06-19 03:48:42 +0000 UTC, which will be removed in 1.26 usage has been detected on API flowcontrol.apiserver.k8s.io.prioritylevelconfigurations.v1beta1.watch, and was recently seen at: 2023-06-19 03:48:42 +0000 UTC, which will be removed in 1.26

xwing3 commented 11 months ago

Yeah, support for this new setting would be great, because right now if there are API deprecations, an AKS update to 1.26 is not possible with Terraform.

It fails for us with the following error message:

Control Plane upgrade is blocked due to recent usage of a Kubernetes API deprecated in the specified version. Please refer to https://kubernetes.io/docs/reference/using-api/deprecation-guide to migrate the usage. To bypass this error, set IgnoreKubernetesDeprecations in upgradeSettings.overrideSettings. Bypassing this error without migrating usage will result in the deprecated Kubernetes API calls failing. See details in https://aka.ms/aks/UpgradeAndDeprecatedAPIs. Usage details: 2 errors occurred: usage has been detected on API flowcontrol.apiserver.k8s.io.flowschemas.v1beta1.watch, and was recently seen at: 2023-06-19 03:48:42 +0000 UTC, which will be removed in 1.26 usage has been detected on API flowcontrol.apiserver.k8s.io.prioritylevelconfigurations.v1beta1.watch, and was recently seen at: 2023-06-19 03:48:42 +0000 UTC, which will be removed in 1.26

Same here, all my autoscalling templates are /v2, dont understand why I get this error in the first place. Tried to upgrade from the Azure Portal and I get the same error.

FumingZhang commented 1 day ago

According to https://learn.microsoft.com/en-us/azure/aks/stop-cluster-upgrade-api-breaking-changes, this validation error could be bypassed by setting forceUpgrade to true and it's a feature in stable API, any contribution to help implement this feature will be appreciated.