Important This service is deprecated and will be deleted in the next minor release. We strongly recommend not creating any new instances with this service. We also recommend deleting or moving existing instances to user-provided instances, as these instances will be out of the control of CSB once the offering is no longer available in the CSB catalog.

This topic gives you reference information about the Azure PostgreSQL flexible server service (csb-azure-postgresql-flexible-server). It details the plans, configuration parameters, and binding credentials.

For more information about Azure PostgreSQL, see the Microsoft documentation.

Plan Configuration Parameters

When configuring Cloud Service Broker for Azure you can add additional plans. For how to configure plans, see Configure Services with Cloud Service Broker for Azure.

The following table lists parameters which can only be configured for additional plans:

Parameter name Description Default Required
name The plan name. n/a Yes
id A unique GUID. n/a Yes
description Description of the new plan. n/a Yes
free When false, service instances of this service plan have a cost. true No
bindable Specifies whether service instances of the service plan can bind to applications. true No
plan_updateable Whether the plan supports upgrading, downgrading, or sidegrading to another version. true No
metadata.displayName Name to use when displaying the plan in the Marketplace. n/a No
metadata.bullets List of bullet points to display in Apps Manager. n/a No

You can also add any of the configuration parameters listed in the Configuration Parameters section to your plan. The following properties are useful to set in a plan: postgres_version, storage_gb, sku.

Note If you set a parameter at plan level, developers cannot change the value when creating or updating service instances.

Configuration Parameters

You can provision a service by running:

cf create-service csb-azure-postgresql-flexible-server PLAN-NAME SERVICE-INSTANCE-NAME -c '{"PARAMETER-NAME": "PARAMETER-VALUE"}'

You can update the plan or configuration parameters for a service instance by running:

cf update-service SERVICE-INSTANCE-NAME [-p NEW-PLAN] -c '{"PARAMETER-NAME": "PARAMETER-VALUE"}'

The following table lists the parameters that you can configure, by using the -c flag, when provisioning or updating a csb-azure-postgresql-flexible-server service. The Operation column displays whether a parameter is supported for both provision and update, or for provision only:

Parameter Name Type Description Default Operation
instance_name string The name of the Azure PostgreSQL instance to create. csb-postgresql-INSTANCE-ID provision
location string The Azure region in which to deploy the service instance.

Important Currently, Azure SQL is not available in all regions. If you configure a region that is unavailable, Cloud Service Broker for Azure fails.

westus provision
resource_group string The Azure resource group in which to create the instance. rg-INSTANCE-NAME provision
azure_tenant_id string The ID of the Azure tenant for the service instance. The value the operator entered for Tenant ID in Ops Manager. provision and update
azure_subscription_id string The ID of the Azure subscription for the service instance. The value the operator entered for Subscription ID in Ops Manager. provision and update
azure_client_id string The ID of the Azure service principal to authenticate for service instance creation. The value the operator entered for Client ID in Ops Manager. provision and update
azure_client_secret string The secret (password) for the Azure service principal to authenticate for service instance creation. The value the operator entered for Client Secret in Ops Manager. provision and update
skip_provider_registration boolean Set to true to skip automatic Azure provider registration. Set if the service principal used does not have the rights to register providers. false provision and update
storage_gb number Maximum storage allocated to the database instance in GB. 32–32767 32 provision and update
sku_name string The SKU Name for the PostgreSQL Flexible Server. The name of the SKU, follows the tier + name pattern (e.g. B_Standard_B1ms, GP_Standard_D2s_v3, MO_Standard_E4s_v3). For a list of all valid SKUs, run:```az sql db list-editions -l LOCATION -o table``` If you want to change to a different tier, check the Azure documentation to ensure that updating to the new tier is supported. "" provision and update
postgres_version string The version for the PostgreSQL instance. null provision and update
db_name string Name for your database. vsbdb provision and update
allow_access_from_azure_services boolean If it should allow public access from any Azure service within Azure to this server for flexible server with public access. Doesn't take effect when delegated_subnet_id is set. true provision and update
private_endpoint_subnet_id string The ID of the virtual network subnet to create the private endpoint to allow hosts in the selected virtual network to access this server. "" provision and update
delegated_subnet_id string The ID of the virtual network subnet to create the PostgreSQL Flexible Server. The provided subnet should not have any other resource deployed in it and this subnet will be delegated to the PostgreSQL Flexible Server, if not already delegated. null provision
private_dns_zone_id string The ID of the private DNS zone to create the PostgreSQL Flexible Server. Must be set when `delegated_subnet_id` or `private_endpoint_subnet_id` is also set. null provision and update

Binding

You can bind a service by running:

cf bind-service APP-NAME SERVICE-INSTANCE-NAME --binding-name BINDING-NAME

Binding Credentials

The format for binding credentials for PostgreSQL is as follows:

{
    "name" : "DATABASE-NAME",
    "hostname" : "DATABASE-SERVER-HOST",
    "port" : "DATABASE-SERVER-PORT",
    "username" : "AUTHENTICATION-USERNAME",
    "password" : "AUTHENTICATION-PASSWORD",
    "uri" : "DATABASE-CONNECTION-URI",
    "jdbcUrl" : "JDBC-FORMAT-CONNECTION-URI"
}

Where:

  • DATABASE-NAME is the database name.
  • DATABASE-SERVER-HOST is the database server host name.
  • PORT is the database server port.
  • AUTHENTICATION-USERNAME is the username to authenticate to the database instance.
  • AUTHENTICATION-PASSWORD is the password to authenticate to the database instance.
  • DATABASE-CONNECTION-URI is the URI to connect to the database instance and database.
  • JDBC-FORMAT-CONNECTION-URI is the Java Database Connectivity (JDBC) URL to connect to the database instance and database.

A binding or service key corresponds to a user in PostgreSQL. By default, PostgreSQL users do not have access to data written by other users. For bindings to have access to the same data, the public schema can be used, or a schema can be created and access can be granted to other users.

When a binding or service key is deleted, data owned by the PostgreSQL user is re-assigned to a role called binding_user_group before the user is deleted. This ensures that other bindings still have access to the data.

check-circle-line exclamation-circle-line close-line
Scroll to top icon