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.
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.
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 |
You can bind a service by running:
cf bind-service APP-NAME SERVICE-INSTANCE-NAME --binding-name BINDING-NAME
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.