1. Packages
  2. Azure Classic
  3. Azure Classic v6 Migration Guide

We recommend using Azure Native.

Azure v6.9.0 published on Thursday, Nov 14, 2024 by Pulumi

Azure Classic v6 Migration Guide

azure logo

We recommend using Azure Native.

Azure v6.9.0 published on Thursday, Nov 14, 2024 by Pulumi

    Version 6 of the Azure Classic provider is the first major release since April 2022. There are some breaking changes which are detailed in this document. Version 6 of the pulumi-azure provider is based on version 4 of the terraform provider. The original release notes can be found in the 4.0 upgrade guide.

    Upgrade to version 5.89.0 of the provider and resolve any deprecation warnings before moving to version 6.

    Subscription ID is now mandatory

    The subscription id configuration is now always required. This can be set via the environment variable ARM_SUBSCRIPTION_ID or the provider configuration property subscriptionId. This was already required when using any authentication method except for the CLI.

    Provider Registration Options

    The previous version of the provider would automatically register a predefined list of resource providers in Azure, unless disabled with the skipProviderRegistration configuration option.

    In version 6, the default set of resource providers is reduced to a smaller default set with the option to specify an alternative pre-defined set and specify a custom list of resource providers.

    • resourceProviderRegistrations is the name of the set of resource providers to automatically register.
      • core - A minimal set of RPs that are deemed necessary for a subscription, the list of RPs in this set can be found upstream here
      • extended - An expanded set of RPs as suggested by the community, the list of RPs in this set can be found upstream here
      • all - A complete set of RPs that might be needed to utilize any functionality in the provider, the list of RPs in this set can be found upstream here
      • none - No resource providers should be automatically registered
      • legacy - A set of automatically registered RPs from earlier versions of the provider, this is only provided for forwards compatibility and will be removed in a future major version release
    • resourceProvidersToRegisters is a list of resource provider names to register in addition to the set specified with resourceProviderRegistrations

    Case Sensitive Enums

    In the previous upstream version enum strings were made case sensitive for better strictness and to resolve some persistent diff issues. We delayed passing on this change until this next major version to ensure we had a good migration experience which could avoid fixing the case causing replacements.

    Once you have upgraded to v6, performing a preview will report any properties with incorrect casing and will indicate the allowed values. The casing will need to be fixed in your program before being able to continue with your deployment.

    List of resource properties affected

    ResourceProperties
    appservice.AppServicedotnetFrameworkVersion
    javaContainer
    managedPipelineMode
    remoteDebuggingVersion
    appservice.CertificateOrderproductType
    appservice.FunctionAppdotnetFrameworkVersion
    analysisservices.ServerquerypoolConnectionMode
    automation.RunBookrunbookType
    automation.Schedulefrequency
    weekDays
    monthlyOccurrence
    cdn.EndpointgeoFilters.action
    optimizationType
    cdn.Profilesku
    compute.ImageosDisk.osType
    osDisk.osState
    osDisk.caching
    dataDisk.caching
    compute.SnapshotcreateOption
    compute.VirtualMachineDataDiskAttachmentcaching
    createOption
    containers.ContainerGroupipAddressType
    osType
    restartPolicy
    containers.KubernetesClusterloadBalancerSku
    cosmos.AccountofferType
    kind
    consistencyPolicy.consistencyLevel
    capabilities.name
    cosmos.GremlinGraphindexingMode
    dns.CaaRecordrecord.tag
    eventhub.Namespacesku
    eventhub.EventHubencoding
    network.FirewallPolicyintrusionDetection.trafficBypasses.protocol
    hdinsight.HBaseClustertier
    roles.*.vmSize
    hdinsight.HadoopClustertier
    roles.*.vmSize
    hdinsight.InteractiveQueryClustertier
    roles.*.vmSize
    hdinsight.KafkaClustertier
    roles.*.vmSize
    hdinsight.SparkClustertier
    roles.*.vmSize
    iotcentral.Applicationsku
    iot.IoTHubendpoint.encoding
    keyvault.CertificatecertificatePolicy.keyProperties.keyType
    compute.VirtualMachinelicenseType
    storageOsDisk.osType
    storageOsDisk.managedDiskType
    storageDataDisk.managedDiskType
    osProfileWindowsConfig.winrm.protocol
    compute.ScaleSetlicenseType
    upgradePolicyMode
    priority
    storageProfileOsDisk.managedDiskType
    storageProfileDataDisk.managedDiskType
    lb.LoadBalancersku
    lb.NatPoolprotocol
    lb.NatRuleprotocol
    lb.Probeprotocol
    lb.Ruleprotocol
    loganalytics.DataSourceWindowsEventeventTypes
    logic.IntegrationAccountBatchConfigurationrecurrence.frequency
    recurrence.schedule.monthly.weekday
    recurrence.schedule.weekDays
    logic.StandardconnectionString.type
    dotnetFrameworkVersion
    logz.Monitorplan.billingCycle
    plan.planId
    plan.usageType
    media.ServicesAccountstorageAuthenticationType
    keyDeliveryAccessControl.defaultAction
    monitor.MonitorAutoscaleSettingprofile.recurrence.days
    mssql.DatabasethreatDetectionPolicy.disabledAlerts
    threatDetectionPolicy.emailAccountAdmins
    threatDetectionPolicy.state
    mssql.Elasticpoolsku.name
    sku.tier
    sku.family
    mssql.ServerSecurityAlertPolicystate
    mysql.Serverversion
    network.ApplicationGatewaybackendHttpSettings.protocol
    backendHttpSettings.cookieBasedAffinity
    frontendIpConfiguration.privateIpAddressAllocation
    httpListener.protocol
    privateLinkConfiguration.ipConfiguration.privateIpAddressAllocation
    sku.name
    sku.tier
    probe.protocol
    wafConfiguration.firewallMode
    network.ExpressRouteCircuitsku.tier
    sku.family
    network.NetworkSecurityGroupsecurityRule.protocol
    securityRule.access
    securityRule.direction
    network.NetworkSecurityRuleprotocol
    access
    direction
    network.PublicIpPrefixipVersion
    network.PublicIpipVersion
    sku
    network.RoutenextHopType
    network.RouteTablenextHopType
    network.VirtualNetworkGatewayConnectiontype
    ipsecPolicy.dhGroup
    ipsecPolicy.ikeEncryption
    ipsecPolicy.ikeIntegrity
    network.VirtualNetworkGatewaytype
    vpnType
    vpnClientConfiguration.vpnClientProtocols
    notificationhub.NotificationHubNamespacenamespaceType
    policy.PolicyDefinitionpolicyType
    postgresql.Serverversion
    recoveryservices.Vaultsku
    recoveryservices.ReplicatedVMtargetDiskType
    targetReplicaDiskType
    redis.CacheskuName
    redis.LinkedServerserverRole
    securitycenter.Automationaction.type
    ruleSet.rule.operator
    ruleSet.rule.propertyType
    servicebus.Namespacesku
    servicebus.SubscriptionRulefilterType
    servicebus.Topicstatus
    sql.DatabasecreateMode
    import.storageKeyType
    import.authenticationType
    import.operationMode
    edition
    threatDetectionPolicy.disabledAlerts
    threatDetectionPolicy.emailAccountAdmins
    threatDetectionPolicy.state
    sql.ManagedInstancelicenseType
    sql.SqlServerthreatDetectionPolicy.disabledAlerts
    threatDetectionPolicy.state
    storage.AccountaccountKind
    accountTier
    accountReplicationType
    accessTier
    networkRules.bypass
    synapse.SqlPoolSecurityAlertPolicypolicyState
    synapse.WorkspaceSecurityAlertPolicypolicyState
    trafficmanager.ProfilemonitorConfig.protocol
    profileStatus

    Removed Resources

    Resources which were previously deprecated have now been removed. Some removed resources have direct replacements which can be directly migrated to by updating your code. Other services have been retired by Azure and therefore have no direct migration to an alternative.

    Replaced Resources

    These resources were previously deprecated and have now been removed in favor of a new resource. To migrate to the replacement resource, update your Pulumi program to use the new type, leaving the logical name the same, and fix any properties which don’t align, then your existing resource will automatically be migrated.

    Removed ResourceReplacement Resource
    core.TemplateDeploymentcore.ResourceGroupTemplateDeployment
    portal.Dashboardportal.PortalDashboard
    databricks.WorkspaceCustomerManagedKeydatabricks.WorkspaceRootDbfsCustomerManagedKey
    datafactory.IntegrationRuntimeManageddatafactory.IntegrationRuntimeSsis
    graph.Accountgraph.ServicesAccount
    monitoring.ActionRuleActionGroupmonitoring.AlertProcessingRuleActionGroup
    monitoring.ActionRuleSuppressionmonitoring.AlertProcessingRuleSuppression
    sql.Databasemssql.Database
    sql.ElasticPoolmssql.ElasticPool
    sql.FailoverGroupmssql.FailoverGroup
    sql.FirewallRulemssql.FirewallRule
    sql.ManagedDatabasemssql.ManagedDatabase
    sql.ManagedInstanceActiveDirectoryAdministratormssql.ManagedInstanceActiveDirectoryAdministrator
    sql.ManagedInstanceFailoverGroupmssql.ManagedInstanceFailoverGroup
    sql.ManagedInstancemssql.ManagedInstance
    sql.SqlServermssql.Server
    sql.VirtualNetworkRulemssql.VirtualNetworkRule

    Replaced Data Sources

    Removed Data SourceReplacement Data Source
    hybrid.getComputeMachinearcmachine.get

    Retired Resources

    These resource do not have a direct replacement and the old resource will need to be deleted or removed from state then recreated using alternative resources.

    Retired ResourceNotes
    appservice.EnvironmentThis resource covered App Service Environment v1 and v2 which were retired on 2024-08-31. ASE v3 is current, and covered by appservice.EnvironmentV3.
    cdn.FrontdoorRouteDisableLinkToDefaultDomainThis resource is superseded by the linkToDefaultDomain property in the cdn.FrontdoorRoute resource.
    cosmosdb.NotebookWorkspaceCosmosDb Notebook Workspace is deprecated by Azure and only offers short-lived notebooks at this point.
    databoxedge.OrderThe creation of DataBox Edge Orders is not supported by the Azure API.
    servicebus.NamespaceNetworkRuleSetThis resource is superseded by the networkRuleSet property in the servicebus.Namespace resource.
    sql.ActiveDirectoryAdministratorThis resource is superseded by the azureadAdministrator property in the mssql.Server resource.

    Retired Services

    ServiceResourcesNotes
    iotTimeSeriesInsightsAccessPolicy
    TimeSeriesInsightsEventSourceEventhub
    TimeSeriesInsightsEventSourceIothub
    TimeSeriesInsightsGen2Environment
    TimeSeriesInsightsReferenceDataSet
    TimeSeriesInsightsStandardEnvironment
    This Azure Service will be retired on 2025-03-31.
    labLab
    Schedule
    ServicePlan
    User
    This Azure service is deprecated and on the road to retirement.
    monitoringLogzMonitor
    LogzSubAccount
    LogzSubAccountTagRule
    LogzTagRule
    This Azure service is being retired.
    mariadbConfiguration
    Database
    FirewallRule
    Server
    VirtualNetworkRule
    getMariaDbServer
    This service is replaced by MySQL Flexible Server.
    mediaAccountFilter
    AssetFilter
    Asset
    ContentKeyPolicy
    Job
    LiveEvent
    LiveEventOutput
    ServiceAccount
    StreamingEndpoint
    StreamingLocator
    StreamingPolicy
    Transform
    Azure Media Services was retired June 30th, 2024.
    mediaservicesAccountAzure Media Services was retired June 30th, 2024.
    mysqlActiveDirectoryAdministrator
    Configuration
    Database
    FirewallRule
    Server
    ServerKey
    VirtualNetworkRule
    getServer
    Azure Database for MySQL Single Server was retired on 2024-09-16 and users should migrate to Azure Database for MySQL Flexible Server.
    videoanalyzerAnalyzer
    EdgeModule
    This service was retired in June 2024.

    Resource Property Breaking Changes

    About 150 resources saw changes to properties that might require a manual update. For the full list please see the upstream upgrade guide.

    • 16 properties are no longer “Computed”. If you experience a diff as a result of this change you may need to use ignoreChanges.
    • 31 properties had their default value updated.
    • 4 resources have new properties that are required, so you’ll need to add them if you use these resources.
    • 32 deprecated properties were removed (10 from KubernetesCluster).
    • The other changes are properties that were renamed or replaced by a related property.

    Other

    Instances of the apimanagement.ApiTag resource will need to be recreated upon upgrading so that the tag revision can be included in the resource ID.

    azure logo

    We recommend using Azure Native.

    Azure v6.9.0 published on Thursday, Nov 14, 2024 by Pulumi