Skip to content

Latest commit

 

History

History
103 lines (83 loc) · 4.01 KB

File metadata and controls

103 lines (83 loc) · 4.01 KB

Changelogs

Overview

The PostgreSQL ingredient is a plugin for bake. When included in a recipe, this will create an Azure Database for PostgreSQL server. This only creates the server resource and admin account. Individual applications are responsible for creating and maintaining Containers / Databases / Collections.

Currently this is only able to create a Flexible server. Azure is pushing users away from Single server, but if this is needed, the plugin can be enhanced with a new template based on this.

Usage

name: mypostgresdb
shortName: mypgsql
version: 1.0.0
ingredients:
   - "@azbake/ingredient-postgresql@0.*"
resourceGroup: true
variables:
  dbServerName: "[postgresqldbutils.create_resource_name()]"
  adminLogin: "testadmin"
  adminPass: "dontusethis"
recipe:
  mypostgres-db:
    properties:
      type: "@azbake/ingredient-postgresql"
      parameters:
        administratorLogin: "[coreutils.variable('adminLogin')]"
        administratorLoginPassword: "[coreutils.variable('adminPass')]"
        location: "[coreutils.current_region().name]"
        serverName: "[coreutils.variable('dbServerName')]"
        access: "private" 
        serverEdition: "Burstable" 
        storageSizeGB: 32 
        dbInstanceType: "Standard_B1ms"
        haMode: "Disabled"
        availabilityZone: ""
        version: "13"
        firewallRules:
          rules:
            - name: "testrule"
              startIPAddress: "192.168.0.0"
              endIPAddress: "192.168.0.1"
        backupRetentionDays: 14
        geoRedundantBackup: "Disabled"
        virtualNetworkExternalId: "" 
        subnetName: "pgsql"
        virtualNetworkName: "YOUR_VNET_HERE"
        virtualNetworkResourceGroup: "SOME_RG"
property required description
administratorLogin yes The username for the server admin
administratorLoginPassword yes Admin password
serverName Yes Server name
access Yes "public" or "private"
location No Region name. ex [coreutils.current_region().name] or eastus
serverEdition No ex Burstable or GeneralPurpose
storageSizeGB No Minimum 32 GB. Billed at $0.115/GB/mo
dbInstanceType No VM size. ex Standard_B1ms
haMode No High Availability mode. ex Disabled or ZoneRedundant
availabilityZone No Preferred availability zone. ex 1 or 2
version No Postgres version ex 12 or 13
firewallRules No a "rules" object with an array of rules. By default, no public IP addresses are allowed.
backupRetentionDays No Default 14
geoRedundantBackup No Default Disabled
virtualNetworkExternalId No For public access servers only. Default empty string, which is treated as "Enabled".
subnetName Yes, for private access For private access servers only. The name of an existing subnet that's empty or already delegated to PostgreSQL. Must be a subnet of virtualNetworkName
virtualNetworkName Yes, for private access For private access servers only. The name of an existing virtual network with subnet subnetName
virtualNetworkResourceGroup Yes, for private access For private access servers only. RG of Vnet. Assuming this is in the same subscription that everything else in the deployment belongs to.

Utilities

Utility classes can be used inside of the bake.yaml file for parameter and source values.

postgresqldbutils class

function description
create_resource_name() Returns the name created for the resource when deployed

Function Details

create_resource_name()

Gets the name created for the resource when deployed.

...
parameters:
    name: "[postgresqldbutils.create_resource_name()]"
...
Returns

string