Database Instance
Example Usage
SQL Second Generation Instance
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.sql.DatabaseInstance;
import com.pulumi.gcp.sql.DatabaseInstanceArgs;
import com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var main = new DatabaseInstance("main", DatabaseInstanceArgs.builder()
.databaseVersion("POSTGRES_14")
.region("us-central1")
.settings(DatabaseInstanceSettingsArgs.builder()
.tier("db-f1-micro")
.build())
.build());
}
}
Private IP Instance
NOTE: For private IP instance setup, note that the
gcp.sql.DatabaseInstance
does not actually interpolate values fromgcp.servicenetworking.Connection
. You must explicitly add adepends_on
reference as shown below.
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.Network;
import com.pulumi.gcp.compute.NetworkArgs;
import com.pulumi.gcp.compute.GlobalAddress;
import com.pulumi.gcp.compute.GlobalAddressArgs;
import com.pulumi.gcp.servicenetworking.Connection;
import com.pulumi.gcp.servicenetworking.ConnectionArgs;
import com.pulumi.random.RandomId;
import com.pulumi.random.RandomIdArgs;
import com.pulumi.gcp.sql.DatabaseInstance;
import com.pulumi.gcp.sql.DatabaseInstanceArgs;
import com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsArgs;
import com.pulumi.gcp.sql.inputs.DatabaseInstanceSettingsIpConfigurationArgs;
import com.pulumi.resources.CustomResourceOptions;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var privateNetwork = new Network("privateNetwork", NetworkArgs.Empty, CustomResourceOptions.builder()
.provider(google_beta)
.build());
var privateIpAddress = new GlobalAddress("privateIpAddress", GlobalAddressArgs.builder()
.purpose("VPC_PEERING")
.addressType("INTERNAL")
.prefixLength(16)
.network(privateNetwork.id())
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
var privateVpcConnection = new Connection("privateVpcConnection", ConnectionArgs.builder()
.network(privateNetwork.id())
.service("servicenetworking.googleapis.com")
.reservedPeeringRanges(privateIpAddress.name())
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.build());
var dbNameSuffix = new RandomId("dbNameSuffix", RandomIdArgs.builder()
.byteLength(4)
.build());
var instance = new DatabaseInstance("instance", DatabaseInstanceArgs.builder()
.region("us-central1")
.databaseVersion("MYSQL_5_7")
.settings(DatabaseInstanceSettingsArgs.builder()
.tier("db-f1-micro")
.ipConfiguration(DatabaseInstanceSettingsIpConfigurationArgs.builder()
.ipv4Enabled(false)
.privateNetwork(privateNetwork.id())
.build())
.build())
.build(), CustomResourceOptions.builder()
.provider(google_beta)
.dependsOn(privateVpcConnection)
.build());
}
}
Import
Database instances can be imported using one of any of these accepted formats
$ pulumi import gcp:sql/databaseInstance:DatabaseInstance main projects/{{project}}/instances/{{name}}
$ pulumi import gcp:sql/databaseInstance:DatabaseInstance main {{project}}/{{name}}
$ pulumi import gcp:sql/databaseInstance:DatabaseInstance main {{name}}
config and set on the server. When importing, double-check that your config has all the fields set that you expect- just seeing no diff isn't sufficient to know that your config could reproduce the imported resource.
Properties
The connection name of the instance to be used in connection strings. For example, when connecting with Cloud SQL Proxy.
The MySQL, PostgreSQL or SQL Server version to use. Supported values include MYSQL_5_6
, MYSQL_5_7
, MYSQL_8_0
, POSTGRES_9_6
,POSTGRES_10
, POSTGRES_11
, POSTGRES_12
, POSTGRES_13
, POSTGRES_14
, SQLSERVER_2017_STANDARD
, SQLSERVER_2017_ENTERPRISE
, SQLSERVER_2017_EXPRESS
, SQLSERVER_2017_WEB
. SQLSERVER_2019_STANDARD
, SQLSERVER_2019_ENTERPRISE
, SQLSERVER_2019_EXPRESS
, SQLSERVER_2019_WEB
. Database Version Policies includes an up-to-date reference of supported versions.
The current software version on the instance. This attribute can not be set during creation. Refer to available_maintenance_versions
attribute to see what maintenance_version
are available for upgrade. When this attribute gets updated, it will cause an instance restart. Setting a maintenance_version
value that is older than the current one on the instance will be ignored.