CompositionalIT / farmer

Repeatable Azure deployments with ARM templates - made easy!
https://compositionalit.github.io/farmer
MIT License
528 stars 159 forks source link

Support for SQL Azure VCore and Serverless #359

Closed isaacabraham closed 4 years ago

isaacabraham commented 4 years ago

Currently we only support DTU model. We should also support VCore and Serverless options.

raymens commented 4 years ago

Based upon some template generation I found the following things:

Some additional SKUs need to be added:

For Serverless the following properties are needed:

        "minCapacity": {
            "value": "1.75" // can be 0.5 for when maximum is 1-4, above that it's about 1/8th it seems of the total. Up to the maximum vCore count.
        },
        "autoPauseDelay": {
            "value": "60" // in minutes, -1 = disabled
        },

For both the following properties are important:

   "maxSizeBytes": { // HS has it set to 0
            "value": 1073741824// = 1 GB set using the slider in the Portal
        },
        "tier": {
            "value": "GeneralPurpose" // see other values above
        },

Just for vCore (non-serverless):

        "zoneRedundant": { // valid for HS
            "value": true
        },
        "licenseType": {
            "value": "BasePrice" // BasePrice = already own a license, LicenseIncluded = pay for license
        },
        "readScaleOut": { // valid for HS
            "value": "Enabled"
        },
        "numberOfReplicas": { // valid for BC and HS, (0-4) for HS and set to 1 for BC
            "value": 1
        },

I'm interested in picking this up in the near future.

isaacabraham commented 4 years ago

@raymens I had a bash at this - please feel free to review the PR and let me know your thoughts.

Thorium commented 2 years ago

I think the serverless part, GP_S_Gen5, of the spec was forgotten in the PR. This is kind of related to #238

"sku": {
    "name": "GP_S_Gen5",
    "tier": "GeneralPurpose",
    "family": "Gen5",
    "capacity": 8
},
"properties": {
    "autoPauseDelay": -1,
    "minCapacity": 4,
}