Installer API
Instabase supports installation through API only, letting you integrate the installation process into CI/CD pipelines. This article outlines the required and optional Installer API endpoints used to perform an installation.
For installation using the Instabase Installer UI, see the Instabase Installer guide.
Overview of required and optional installation steps
To complete an API-based installation, you must complete the following API calls in this order. Calls are required unless noted as optional.
-
(Optional) Perform preflight checks to validate configured infrastructure before beginning installation:
Conventions and authentication
Requests
In this document {URL_BASE}
defines where to route API requests for your Instabase instance.
During the initial Instabase installation, this should access Deployment Manager directly, either by port-forwarding the Deployment Manager port (9500) or by creating an ingress.
-
If using port-forwarding, the
URL_BASE
value islocalhost:9500
.- For example, to use the Database configuration API, POST to
localhost:9500/api/v1/control_plane/installer/db
.
- For example, to use the Database configuration API, POST to
-
If creating an ingress, the
URL_BASE
value is the DNS defined to hook into the ingress, such ashttps://company.dev.instabase.com
.- For example, to use the Database configuration API, POST to
https://company.dev.instabase.com/api/v1/control_plane/installer/db
.
- For example, to use the Database configuration API, POST to
Responses
All Installer API endpoints (with the exception of Get the status of post-install actions) use the same response format:
-
The response body is a JSON object.
-
A
statusCode
of200
indicates success. No additional information is returned in thedata
orerror
keys. For example:{ "statusCode": 200, "data": null, "error": null }
-
A
statusCode
of500
indicates an error. The response body contains parameter-specific error information under theerror
key, if applicable. For example:{ "statusCode": 500, "data": { "note": "", "ok": false }, "error": "http conn serve: http conn serve: kubernetes client is nil" }
Authentication
In this document {TOKEN}
defines the Deployment Manager token.
All API requests must include your valid Deployment Manager token to authenticate the request.The Deployment Manager API Token is created in the cluster with a default, changeable value when the Deployment Manager YAML is applied.
To fetch the Deployment Manager API token, run the following command in the command line:
export TOKEN=$(kubectl -n $IB_NS get \
secret/control-plane-metadata \
--template={{.data.api_token}} | base64 -d)
You can then reference the token in your calls using $TOKEN
in place of {TOKEN}
.
Database configuration
Method | Syntax |
---|---|
POST | URL_BASE/api/v1/control_plane/installer/db |
Description
This API configures the connection to your relational database. The database contains all the metadata needed to run Instabase. This includes information for user accounts, repositories, organizations, access control, Marketplace solutions, and more.
Instabase supports connecting to the following databases:
-
Microsoft SQL Server
MySQL
Request parameters
The general form of the request body is:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/db' \
--header 'Accept: application/json, text/plain, */*' \
--header 'Token: {TOKEN}' \
--data-raw '{DB_REQ_BODY}' \
--compressed
Your database configuration details are outlined in the DB_REQ_BODY
object. The following parameters are required, unless marked as optional:
Name | Type | Description | Values |
---|---|---|---|
skip_db_setup | boolean | When set to true all other database configuration parameters are ignored, and the db_secret_name parameter becomes required. Enabling skip_db_setup lets you perform manual database setup without passing database credentials through the Installer API. Instead, you create a Kubernetes secret that contains a database connection string with the required parameters. The secret must be a data secret with "db_string" mapping to the database connection string. See Database connection string format for additional information. |
true, false Set to false for most installations. |
db_secret_name | string | Required if skip_db_setup is set to true , otherwise optional. The name of the Kubernetes secret where your database connection string is stored. |
A string specifying the name of the Kubernetes secret where your database connection string is stored. |
db_type | string | Defines the database type. | mysql, postgres, sqlserver, oci8 Use mysql for MySQL database setup. |
azure_ad | boolean | Enables using Azure AD for database authentication. Note
Applicable only to Microsoft SQL Server database setups.
|
true, false Set to false for MySQL database setup. |
use_db_sid | boolean | Enables using the Oracle system identifier as the database identifier. Note
Applicable only to Oracle database setups.
|
true, false Set to false for MySQL database setup. |
use_db_service_name | boolean | Enables using the Oracle service name as the database identifier. Note
Applicable only to Oracle database setups.
|
true, false Set to false for MySQL database setup. |
enable_db_tls | boolean | Set to true to use TLS certificate-based authentication. While this setting is optional, it is strongly recommended to enable TLS in production environments to reduce security risks. Note
If set to
true , you must also call the /installer/db/tls endpoint to configure TLS. Info
Instabase supports certificates from internal and external trusted certificate authorities (CAs). Instabase does not support self-signed TLS certificates.
|
true, false |
fields | object | Contains the configuration details for your database setup. | An object containing additional settings. |
fields/db_user | string | The database username. | A string specifying the database username. |
fields/db_pass | string | The database password. | A string specifying the database password. |
fields/db_name | string | Your database name. | A string specifying your database name. |
fields/db_host | string | The server host or hostname. | A string specifying the server host or hostname. |
fields/dp_port | integer | The port value. The common, default MySQL port value is 3306. If you have a custom port value, use it here. | An integer specifying the port value. The suggested value is 3306 , unless a custom port value is configured. |
Examples
Request example:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/db' \
--header 'Accept: application/json, text/plain, */*' \
--header 'Token: {TOKEN}' \
--data-raw '{
"skip_db_setup": false,
"db_type": "mysql",
"azure_ad": false,
"use_db_sid": false,
"use_db_service_name": false,
"enable_db_tls": false,
"fields": {
"db_user": "root",
"db_pass": "{password}",
"db_name": "ibdb",
"db_host": "service-mysql.instabase.svc.cluster.local",
"db_port": 3306
}
}' \
--compressed
PostgreSQL
Request parameters
The general form of the request body is:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/db' \
--header 'Accept: application/json, text/plain, */*' \
--header 'Token: {TOKEN}' \
--data-raw '{DB_REQ_BODY}' \
--compressed
Your database configuration details are outlined in the DB_REQ_BODY
object. The following parameters are required, unless marked as optional:
Name | Type | Description | Values |
---|---|---|---|
skip_db_setup | boolean | When set to true all other database configuration parameters are ignored, and the db_secret_name parameter becomes required. Enabling skip_db_setup lets you perform manual database setup without passing database credentials through the Installer API. Instead, you create a Kubernetes secret that contains a database connection string with the required parameters. The secret must be a data secret with "db_string" mapping to the database connection string. See Database connection string format for additional information. |
true, false Set to false for most installations. |
db_secret_name | string | Required if skip_db_setup is set to true , otherwise optional. The name of the Kubernetes secret where your database connection string is stored. |
A string specifying the name of the Kubernetes secret where your database connection string is stored. |
db_type | string | Defines the database type. | mysql, postgres, sqlserver, oci8 Use postgres for PostgreSQL database setup. |
azure_ad | boolean | Enables using Azure AD for database authentication. Note
Applicable only to Microsoft SQL Server database setups.
|
true, false Set to false for PostgreSQL database setup. |
use_db_sid | boolean | Enables using the Oracle system identifier as the database identifier. Note
Applicable only to Oracle database setups.
|
true, false Set to false for PostgreSQL database setup. |
use_db_service_name | boolean | Enables using the Oracle service name as the database identifier. Note
Applicable only to Oracle database setups.
|
true, false Set to false for PostgreSQL database setup. |
enable_db_tls | boolean | Enables use of TLS certificate-based authentication. Note
TLS authentication is supported with MySQL and Microsoft SQL Server databases.
|
true, false Set to false for PostgreSQL database setup. |
fields | object | Contains the configuration details for your database setup. | An object containing additional settings. |
fields/db_user | string | The database username. | A string specifying the database username. |
fields/db_pass | string | The database password. | A string specifying the database password. |
fields/db_name | string | Your database name. | A string specifying your database name. |
fields/db_host | string | The server host or hostname. | A string specifying the server host or hostname. |
fields/dp_port | integer | The port value. The common, default PostgreSQL port value is 5432. If you have a custom port value, use it here. | An integer specifying the port value. The suggested value is 5432 , unless a custom port value is configured. |
fields/ssl_mode | string | Determines whether or with what priority a secure SSL TCP/IP connection is negotiated with the server. | There are six ssl_mode options. The following list is ordered from least secure to most secure:- disable : Try only a non-SSL connection. This option disables all encryption.- allow : First try a non-SSL connection; if that fails, try an SSL connection.- prefer : First try an SSL connection; if that fails, try a non-SSL connection.- require : Try only an SSL connection. If a root CA file is present, verify that the server certificate is issued by a trusted certificate authority (CA). The certificate itself is not verified.- verify-ca : Try only an SSL connection. Verify that the server certificate is issued by a trusted CA.- verify-full : Try only an SSL connection. Verify that the server certificate is issued by a trusted CA and that the requested server hostname matches that in the certificate. The SSL connection fails if the server certificate cannot be verified.In production environments, verify-full is typically the appropriate setting.ssl_mode is ignored for Unix domain socket communication. If PostgreSQL is compiled without SSL support, using options require , verify-ca , or verify-full causes an error, while options allow and prefer are accepted, but libpq doesn’t actually attempt an SSL connection. Info
To learn more about SSL mode options, including a summary of the level of protection provided by each option, see the PostgreSQL SSL support documentation.
|
Request example:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/db' \
--header 'Accept: application/json, text/plain, */*' \
--header 'Token: {TOKEN}' \
--data-raw '{
"skip_db_setup": false,
"db_type": "postgres",
"azure_ad": false,
"use_db_sid": false,
"use_db_service_name": false,
"enable_db_tls": false,
"fields": {
"db_user": "test-user",
"db_pass": "test-pass",
"db_name": "test-db-name",
"db_host": "test-host",
"db_port": 1234,
"ssl_mode": "disable"
}
}' \
--compressed
Microsoft SQL Server: Connect with username and password
Request parameters
The general form of the request body is:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/db' \
--header 'Accept: application/json, text/plain, */*' \
--header 'Token: {TOKEN}' \
--data-raw '{DB_REQ_BODY}' \
--compressed
Your database configuration details are outlined in the DB_REQ_BODY
object. The following parameters are required, unless marked as optional:
Name | Type | Description | Values |
---|---|---|---|
skip_db_setup | boolean | When set to true all other database configuration parameters are ignored, and the db_secret_name parameter becomes required. Enabling skip_db_setup lets you perform manual database setup without passing database credentials through the Installer API. Instead, you create a Kubernetes secret that contains a database connection string with the required parameters. The secret must be a data secret with "db_string" mapping to the database connection string. See Database connection string format for additional information. |
true, false Set to false for most installations. |
db_secret_name | string | Required if skip_db_setup is set to true , otherwise optional. The name of the Kubernetes secret where your database connection string is stored. |
A string specifying the name of the Kubernetes secret where your database connection string is stored. |
db_type | string | Defines the database type. | mysql, postgres, sqlserver, oci8 Use mysql for MySQL database setup. |
azure_ad | boolean | Enables using Azure AD for database authentication. | true, false Set to false when connecting to Microsoft SQL Server with username and password credentials. |
use_db_sid | boolean | Enables using the Oracle system identifier as the database identifier. Note
Applicable only to Oracle database setups.
|
true, false Set to false for Microsoft SQL Server database setup. |
use_db_service_name | boolean | Enables using the Oracle service name as the database identifier. Note
Applicable only to Oracle database setups.
|
true, false Set to false for Microsoft SQL Server database setup. |
enable_db_tls | boolean | Set to true to use TLS certificate-based authentication. While this setting is optional, it is strongly recommended to enable TLS in production environments to reduce security risks. Note
If set to
true , you must also call the /installer/db/tls endpoint to configure TLS. Info
Instabase supports certificates from internal and external trusted certificate authorities (CAs). Instabase does not support self-signed TLS certificates.
|
true, false |
fields | object | Contains the configuration details for your database setup. | An object containing additional settings. |
fields/db_user | string | The database username. | A string specifying the database username. |
fields/db_pass | string | The database password. | A string specifying the database password. |
fields/db_name | string | Your database name. | A string specifying your database name. |
fields/db_host | string | The server host or hostname. | A string specifying the server host or hostname. |
fields/dp_port | integer | The port value. The common, default MySQL port value is 3306. If you have a custom port value, use it here. | An integer specifying the port value. The suggested value is 3306 , unless a custom port value is configured. |
fields/db_conn_timeout | integer | Defines the database timeout period. This option is useful when working with high latency or load. | An integer specifying the database timeout, in seconds. |
Examples
Request example:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/db' \
--header 'Accept: application/json, text/plain, */*' \
--header 'Token: {TOKEN}' \
--data-raw '{
"skip_db_setup": false,
"db_type": "sqlserver",
"azure_ad": false,
"use_db_sid": false,
"use_db_service_name": false,
"enable_db_tls": true,
"fields": {
"db_user": "test-user",
"db_pass": "test-pass",
"db_name": "test-db-name",
"db_host": "test-host",
"db_port": 1234,
"db_conn_timeout": 30
}
}' \
--compressed
Microsoft SQL Server: Connect with Azure AD
Request parameters
The general form of the request body is:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/db' \
--header 'Accept: application/json, text/plain, */*' \
--header 'Token: {TOKEN}' \
--data-raw '{DB_REQ_BODY}' \
--compressed
Your database configuration details are outlined in the DB_REQ_BODY
object. The following parameters are required, unless marked as optional:
Name | Type | Description | Values |
---|---|---|---|
skip_db_setup | boolean | When set to true all other database configuration parameters are ignored, and the db_secret_name parameter becomes required. Enabling skip_db_setup lets you perform manual database setup without passing database credentials through the Installer API. Instead, you create a Kubernetes secret that contains a database connection string with the required parameters. The secret must be a data secret with "db_string" mapping to the database connection string. See Database connection string format for additional information. |
true, false Set to false for most installations. |
db_secret_name | string | Required if skip_db_setup is set to true , otherwise optional. The name of the Kubernetes secret where your database connection string is stored. |
A string specifying the name of the Kubernetes secret where your database connection string is stored. |
db_type | string | Defines the database type. | mysql, postgres, sqlserver, oci8 Use `sqlserver for Microsoft SQL Server database setup. |
azure_ad | boolean | Enables using Azure AD for database authentication. | true, false Set to true when connecting to Microsoft SQL Server with Azure AD credentials. |
use_db_sid | boolean | Enables using the Oracle system identifier as the database identifier. Note
Applicable only to Oracle database setups.
|
true, false Set to false for Microsoft SQL Server database setup. |
use_db_service_name | boolean | Enables using the Oracle service name as the database identifier. Note
Applicable only to Oracle database setups.
|
true, false Set to false for Microsoft SQL Server database setup. |
enable_db_tls | boolean | Set to true to use TLS certificate-based authentication. While this setting is optional, it is strongly recommended to enable TLS in production environments to reduce security risks. Note
If set to
true , you must also call the /installer/db/tls endpoint to configure TLS. Info
Instabase supports certificates from internal and external trusted certificate authorities (CAs). Instabase does not support self-signed TLS certificates.
|
true, false |
fields | object | Contains the configuration details for your database setup. | An object containing additional settings. |
fields/db_user | string | This parameter is optional when connecting to Microsoft SQL Server with Azure AD credentials. The database username. |
A string specifying the database username. |
fields/db_pass | string | This parameter is optional when connecting to Microsoft SQL Server with Azure AD credentials. The database password. |
A string specifying the database password. |
fields/db_name | string | Your database name. | A string specifying your database name. |
fields/db_host | string | The server host or hostname. | A string specifying the server host or hostname. |
fields/db_port | integer | The port value. The common, default Microsoft SQL Server port value is 1433. If you have a custom port value, use it here. | An integer specifying the port value. The suggested value is 1433 , unless a custom port value is configured. |
fields/db_conn_params | string | Specifies database connection parameters including: - Connection Timeout : Timeout for connection attempt, in seconds. - ConnectRetryCount : Maximum number of connection retries. - ConnectRetryInterval : Interval to wait between connection retries, in seconds. |
A string defining connection parameters, joined by semi-colons. |
fields/db_azure_tenant_id | string | The tenant ID or directory ID of your app registration. | A string specifying the tenant/directory ID. |
fields/db_azure_client_id | string | The client ID or application ID for your app registration. | A string specifying the client/application ID. |
fields/db_azure_client_secret | string | The client secret for your app registration. | A string specifying the client secret. |
Examples
Request example:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/db' \
--header 'Accept: application/json, text/plain, */*' \
--header 'Token: {TOKEN}' \
--data-raw '{
"skip_db_setup": false,
"db_type": "sqlserver",
"azure_ad": true,
"use_db_sid": false,
"use_db_service_name": false,
"enable_db_tls": true,
"fields": {
"db_name": "test-db-name",
"db_host": "test-host",
"db_port": 1234,
"db_conn_params": "Connection Timeout=30;ConnectRetryCount=3;ConnectRetryInterval=10",
"db_azure_tenant_id": "azure-tenant-id",
"db_azure_client_id": "azure-client-id",
"db_azure_client_secret": "azure-secret"
}
}' \
--compressed
Oracle
Request parameters
The general form of the request body is:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/db' \
--header 'Accept: application/json, text/plain, */*' \
--header 'Token: {TOKEN}' \
--data-raw '{DB_REQ_BODY}' \
--compressed
Your database configuration details are outlined in the DB_REQ_BODY
object. The following parameters are required, unless marked as optional:
Name | Type | Description | Values |
---|---|---|---|
skip_db_setup | boolean | When set to true all other database configuration parameters are ignored, and the db_secret_name parameter becomes required. Enabling skip_db_setup lets you perform manual database setup without passing database credentials through the Installer API. Instead, you create a Kubernetes secret that contains a database connection string with the required parameters. The secret must be a data secret with "db_string" mapping to the database connection string. See Database connection string format for additional information. |
true, false Set to false for most installations. |
db_secret_name | string | Required if skip_db_setup is set to true , otherwise optional. The name of the Kubernetes secret where your database connection string is stored. |
A string specifying the name of the Kubernetes secret where your database connection string is stored. |
db_type | string | Defines the database type. | mysql, postgres, sqlserver, oci8 Use oci8 for Oracle database setup. |
azure_ad | boolean | Enables using Azure AD for database authentication. Note
Applicable only to Microsoft SQL Server database setups.
|
true, false Set to false for Oracle database setup. |
use_db_sid | boolean | Enables using the Oracle system identifier (SID) as the database identifier. When set to true , the parameter db_sid must also be included in the request body. |
true, false Set to true to use the SID as the database identifier. |
use_db_service_name | boolean | Enables using the Oracle service name as the database identifier. When set to true , the parameter db_service_name must also be included in the request body. |
true, false Set to true to use the service name as the database identifier. |
enable_db_tls | boolean | Enables use of TLS certificate-based authentication. Note
TLS authentication is supported with MySQL and Microsoft SQL Server databases.
|
true, false Set to false for Oracle database setup. |
fields | object | Contains the configuration details for your database setup. | An object containing additional settings. |
fields/db_user | string | The database username. | A string specifying the database username. |
fields/db_pass | string | The database password. | A string specifying the database password. |
fields/db_name | string | Your database name. If use_db_service_name and use_db_sid are both set to false , the db_name value is used as the database identifier. |
A string specifying your database name. Leave empty if using the SID or service name as your Oracle database identifier. |
fields/db_host | string | The server host or hostname. | A string specifying the server host or hostname. |
fields/dp_port | integer | The port value. The common, default PostgreSQL port value is 5432. If you have a custom port value, use it here. | An integer specifying the port value. The suggested value is 5432 , unless a custom port value is configured. |
fields/db_sid | string | Required if use_db_sid is set to true , otherwise optional. The database SID. |
A string specifying the database SID. |
fields/db_service_name | string | Required if use_db_service_name is set to true , otherwise optional. The database service name. |
A string specifying the database service name. |
Examples
Request example if using the database name as the database identifier:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/db' \
--header 'Accept: application/json, text/plain, */*' \
--header 'Token: {TOKEN}' \
--data-raw '{
"skip_db_setup": false,
"db_type": "oci8",
"azure_ad": false,
"use_db_sid": false,
"use_db_service_name": false,
"enable_db_tls": false,
"fields": {
"db_user": "test-user",
"db_pass": "test-pass",
"db_name": "normal-db-name",
"db_host": "test-host",
"db_port": 1234
}
}' \
--compressed
Request example if using the SID as the database identifier:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/db' \
--header 'Accept: application/json, text/plain, */*' \
--header 'Token: {TOKEN}' \
--data-raw '{
"skip_db_setup": false,
"db_type": "oci8",
"azure_ad": false,
"use_db_sid": true,
"use_db_service_name": false,
"enable_db_tls": false,
"fields": {
"db_user": "test-user",
"db_pass": "test-pass",
"db_name": "",
"db_host": "test-host",
"db_port": 1234,
"db_sid": "db sid"
}
}' \
--compressed
Request example if using the service name as the database identifier:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/db' \
--header 'Accept: application/json, text/plain, */*' \
--header 'Token: {TOKEN}' \
--data-raw '{
"skip_db_setup": false,
"db_type": "oci8",
"azure_ad": false,
"use_db_sid": false,
"use_db_service_name": true,
"enable_db_tls": false,
"fields": {
"db_user": "test-user",
"db_pass": "test-pass",
"db_name": "",
"db_host": "test-host",
"db_port": 1234,
"db_service_name": "service name"
}
}' \
--compressed
Database connection string format
If skip_db_setup
is enabled, you must create a Kubernetes secret that contains a database connection string with the required parameters. Refer to the following table for guidance on how to format the database connection string:
Database | Connection string format | Notes |
---|---|---|
MySQL | INSTABASE_BACKEND_DB_PARAMS = “–username= |
|
PostgreSQL | INSTABASE_BACKEND_DB_PARAMS = “–dialect=postgres –url=postgres:// |
To add multiple parameters, use & . For example: ?sslmode=require&sslkey=/etc/path/tls.key&sslcert=/etc/path/tls.cert The string supports a full PostgreSQL DSN. You can append other parameters to the end of the string. Refer to the PostgreSQL Database Connection Control documentation for the full list of parameters. |
Microsoft SQL Server | INSTABASE_BACKEND_DB_PARAMS = “–dialect=sqlserver –url=sqlserver:// |
The string supports a full SQL Server DSN. You can append other parameters to the end of the string. Refer to the Microsoft DSN and Connection String Keywords and Attributes documentation for the full list of parameters. |
Microsoft SQL Server with password-protected TLS private key file | INSTABASE_BACKEND_DB_PARAMS = “–dialect=sqlserver –url=sqlserver:// |
If the password keyword contains any commas, enter a second comma in the password string. For example a keyword of a,b,c is written as a,,b,,c in the string. The string supports a full SQL Server DSN. You can append other parameters to the end of the string. Refer to the Microsoft DSN and Connection String Keywords and Attributes documentation for the full list of parameters. |
Oracle (standard) | INSTABASE_BACKEND_DB_PARAMS = “–dialect=oci8 –database= |
|
Oracle (tsnames.ora, using SID) | INSTABASE_BACKEND_DB_PARAMS = “–dialect=oci8 –database= |
|
Oracle (tsnames.ora, using service name) | INSTABASE_BACKEND_DB_PARAMS "–dialect=oci8 –database= |
TLS authentication configuration
Method | Syntax |
---|---|
POST | URL_BASE/api/v1/control_plane/installer/db/tls |
Description
Configures SSL certificates in Deployment Manager, for databases using TLS authentication for database connections. This endpoint is only required if enable_db_tls
was set to true
when configuring your database configuration.
TLS authentication is supported with MySQL and Microsoft SQL Server databases.
MySQL
Request parameters
The following parameters are required, unless marked as optional:
Name | Type | Description | Values |
---|---|---|---|
db_tls_client_key | string | The file path to the client key file. Supported file types are .crt , .key , .pem , and .cer . |
A string specifying the file path to the client key file. |
db_tls_client_cert | string | The file path to the client cert file. Supported file types are .crt , .key , .pem , and .cer . |
A string specifying the file path to the client cert file. |
db_tls_root_cert | string | The file path to the root ca file. Supported file types are .crt , .key , .pem , and .cer . |
A string specifying the file path to the root ca file. |
db_tls_cert_hostname | string | Optional. Use this parameter if the certificate subject’s common name (CN) does not match the hostname (the value defined in the db_host parameter). |
A string specifying the cert subject’s common name. |
db_tls_skip_verify | string | Enable (set to True ) to skip validating if the certificate is valid. Setting to True presents a significant security risk and should be used only for testing and debugging purposes, such as if you need to establish if the certificate is working as intended. |
A string specifying True or False . |
Examples
Request example:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/db/tls' \
--header 'Content-Type: multipart/form-data' \
--header 'Token: {TOKEN}' \
--form 'db_tls_client_key=@"/path/to/file"' \
--form 'db_tls_client_cert=@"/path/to/file"' \
--form 'db_tls_root_cert=@"/path/to/file"' \
--form 'db_tls_cert_hostname="hostname"' \
--form 'db_tls_skip_verify="False"'
Microsoft SQL Server
Request parameters
The following parameters are required, unless marked as optional:
Name | Type | Description | Values |
---|---|---|---|
ss_cert | string | The public certificate of the CA that signed the SQL Server certificate. This certificate overrides the Go platform specific CA certificates. Supported file types are .pem , .pfx , .crt , and .cer . |
A string specifying the file path to the client cert file. |
ss_trust_server_cert | string | Defines whether or not to trust the server certificate. When set to False , the server certificate is checked. When set to True , the server certificate is not checked. The driver accepts any certificate presented by the server and any hostname in that certificate. When set to True , TLS is susceptible to man-in-the-middle attacks; use this for testing only. |
A string specifying True or False . |
ss_cert_hostname | string | Optional. Use this parameter if the certificate subject’s common name (CN) does not match the hostname (the value defined in the db_host parameter). |
A string specifying the cert subject’s common name. |
Examples
Request example:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/db/tls' \
--header 'Content-Type: multipart/form-data' \
--header 'Token: {TOKEN}' \
--form 'ss_cert=@"/path/to/file"' \
--form 'ss_trust_server_cert="False"' \
--form 'ss_cert_hostname="hostname"'
File system configuration
Method | Syntax |
---|---|
POST | URL_BASE/api/v1/control_plane/installer/storage |
Description
This API configures the connection to your file storage provider. Instabase Installer supports four file storage options:
Amazon S3
If your S3 server requires a custom certificate for SSL validation, after completing this call, call the Upload custom S3 certificate API.
Request parameters
The general form of the request body is:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/storage' \
--header 'Token: {TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{STORAGE_REQ_BODY}'
Your database configuration details are outlined in the STORAGE_REQ_BODY
object. The following parameters are required, unless marked as optional:
Name | Type | Description | Values |
---|---|---|---|
file_storage | string | Defines the file storage type. | s3, localfs, azblobstore, googlecloudstorage Use s3 for Amazon S3 file storage setup. |
fields | object | Contains the configuration details for your file storage setup. | An object containing additional settings. |
fields/s3_server_url | string | The URL of your Amazon S3 instance. The URL should follow this format: https://s3.[your region code].amazonaws.com . Do not include the bucket name in the URL.Examples of valid URLs include https://s3.us-west-2.amazonaws.com and https://s3.us-east-1.amazonaws.com . Info
See the AWS Virtual hosting of buckets documentation for more information.
|
A string specifying the URL of your Amazon S3 instance. |
fields/s3_server_is_secure | boolean | Defines whether to use HTTP or HTTPS to communicate with S3 resources. Setting to rue enables using HTTPS.We recommend always having S3 Server Is Secure set to true . This setting should be disabled only for testing or non-production environments. |
true, false |
fields/s3_key_id | string | Your AWS Identity and Access Management (IAM) key. If not using IAM keys to connect, and instead using IAM roles, enter a placeholder value and connect with your Instabase representative to manually configure the connection. |
A string specifying your AWS IAM key. |
fields/s3_access_key | string | Your AWS IAM secret key. If not using IAM keys to connect, and instead using IAM roles, enter a placeholder value and connect with your Instabase representative to manually configure the connection. |
A string specifying your AWS IAM secret key. |
fields/s3_aws_region | string | The region code for your AWS account, such as us-east-1 . |
A string specifying your AWS region code. |
fields/s3_bucket_name | string | The name of the Amazon S3 bucket to use for file storage. | A string specifying the name of your Amazon S3 bucket. |
fields/s3_encryption_type | string | Define the type of encryption used for server-side encryption of files. - none : No server-side encryption. - aws_sse_s3 : Uses Amazon-managed server-side encryption of files. Also called S3 SSE (AES-256). - aws_sse_kms : Uses Amazon KMS for server-side encryption of files. |
none, aws_sse_s3, aws_sse_kms |
fields/s3_sse_kms_key_id | string | Required if s3_encryption_type is set to aws_sse_kms , otherwise optional. The Amazon resource name (ARN) for the KMS key. Info
See the AWS Finding the key ID and key ARN documentation for additional information.
|
A string specifying the Amazon resource name (ARN) for the KMS key. |
fields/s3_use_virtual_style_url | string | Set to false to use an Amazon S3 path-style URL. When set to true Amazon S3 virtual-hosted-style URLs are used. Info
AWS has scheduled path-style URLs for deprecation. See the AWS Virtual hosting of buckets documentation for more information.
|
true, false |
fields/enable_file_cache | boolean | Configures whether or not to cache file contents in a standalone Redis. When set to true , the file cache is enabled. When set to false , the file cache is not enabled and Instabase requires permission to deploy a standalone Redis. For most installations, it’s recommended to set to true . The exception is if you own your own managed Redis and require Instabase to integrate with your Redis. In that case, you might need to set this parameter to false due to limitations surrounding Instabase deploying a standalone Redis. |
true, false |
Examples
Request example:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/storage' \
--header 'Token: {TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{
"file_storage": "s3",
"fields": {
"s3_server_url": "test-server-url",
"s3_server_is_secure": true,
"s3_access_key_id": "test-access-key",
"s3_secret_access_key": "test-secret-key",
"s3_aws_region": "us-east-1",
"s3_bucket_name": "test-bucket-name",
"s3_encryption_type": "none",
"s3_use_virtual_style_url": "true",
"enable_file_cache": true
}
}'
Local file storage
Instabase supports using a network file system (NFS) as your file storage. For security reasons, however, Instabase does not support directly connecting to the NFS. You must first mount your NFS as a Kubernetes Persistent Volume Claim (PVC).
Request parameters
The general form of the request body is:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/storage' \
--header 'Token: {TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{STORAGE_REQ_BODY}'
Your database configuration details are outlined in the STORAGE_REQ_BODY
object. The following parameters are required, unless marked as optional:
Name | Type | Description | Values |
---|---|---|---|
file_storage | string | Defines the file storage type. | s3, localfs, azblobstore, googlecloudstorage Use localfs for local file storage setup. |
fields | object | Contains the configuration details for your file storage setup. | An object containing additional settings. |
fields/local_mount_dir | string | Defines the local mount directory. | A string specifying the local mount directory. /home/ibuser/data is the most common value. |
fields/nfs_pvc_name | string | The name of the Persistent Volume Claim the NFS was mounted to. | A string specifying the name of the Persistent Volume Claim the NFS was mounted to. |
fields/enable_file_cache | boolean | Configures whether or not to cache file contents in a standalone Redis. When set to true , the file cache is enabled. When set to false , the file cache is not enabled and Instabase requires permission to deploy a standalone Redis. For most installations, it’s recommended to set to true . The exception is if you own your own managed Redis and require Instabase to integrate with your Redis. In that case, you might need to set this parameter to false due to limitations surrounding Instabase deploying a standalone Redis. |
true, false |
Examples
Request example:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/storage' \
--header 'Token: {TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{
"file_storage": "localfs",
"fields": {
"local_mount_dir": "/home/ibuser/data",
"nfs_pvc_name": "test-pvc",
"enable_file_cache": true
}
}'
Azure Blob Storage
Request parameters
The general form of the request body is:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/storage' \
--header 'Token: {TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{STORAGE_REQ_BODY}'
Your database configuration details are outlined in the STORAGE_REQ_BODY
object. The following parameters are required, unless marked as optional:
Name | Type | Description | Values |
---|---|---|---|
file_storage | string | Defines the file storage type. | s3, localfs, azblobstore, googlecloudstorage Use azblobstore for Azure Blob Storage setup. |
fields | object | Contains the configuration details for your file storage setup. | An object containing additional settings. |
fields/azure_connection_str | string | The connection string for your Azure storage account. | A string specifying the connection string for your Azure storage account. |
fields/az_blob_store_container | string | The name of your Azure Blob Storage container. | A string specifying the name of Azure Blob Storage container. |
fields/enable_file_cache | boolean | Configures whether or not to cache file contents in a standalone Redis. When set to true , the file cache is enabled. When set to false , the file cache is not enabled and Instabase requires permission to deploy a standalone Redis. For most installations, it’s recommended to set to true . The exception is if you own your own managed Redis and require Instabase to integrate with your Redis. In that case, you might need to set this parameter to false due to limitations surrounding Instabase deploying a standalone Redis. |
true, false |
Examples
Request example:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/storage' \
--header 'Token: {TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{
"file_storage": "azblobstore",
"fields": {
"azure_connection_str": "test-connection-string",
"az_blob_store_container": "test-container-name",
"enable_file_cache": true
}
}'
Google Cloud Storage
If using Google Cloud Storage, before configuring your file storage options through this API, you must call the Upload Google Cloud Storage service account credentials API.
Support for Google Cloud Storage is generally available as of release 23.04.
Request parameters
The general form of the request body is:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/storage' \
--header 'Token: {TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{STORAGE_REQ_BODY}'
Your database configuration details are outlined in the STORAGE_REQ_BODY
object. The following parameters are required, unless marked as optional:
Name | Type | Description | Values |
---|---|---|---|
file_storage | string | Defines the file storage type. | s3, localfs, azblobstore, googlecloudstorage Use googlecloudstorage for Google Cloud Storage setup. |
fields | object | Contains the configuration details for your file storage setup. | An object containing additional settings. |
fields/bucket_name | string | The name of your Google Cloud Storage bucket. | A string specifying the name of your Google Cloud Storage bucket. |
fields/gcs_sse_encryption_type | string | Defines the type of encryption used for server-side encryption of the files. - gcs_aes256 : Uses Google-managed server-side encryption of files. - gcs_sse_kms : Uses Google Cloud KMS for server-side encryption of files. |
gcs_aes256, gcs_sse_kms |
fields/gcs_sse_kms_key_id | string | Required if gcs_sse_encryption_type is set to gcs_sse_kms , otherwise optional. The Cloud KMS Resource ID. Info
See the Google Cloud Getting a Cloud KMS Resource ID documentation for additional information.
|
A string specifying the Resource ID for the KMS key. |
fields/enable_file_cache | boolean | Configures whether or not to cache file contents in a standalone Redis. When set to true , the file cache is enabled. When set to false , the file cache is not enabled and Instabase requires permission to deploy a standalone Redis. For most installations, it’s recommended to set to true . The exception is if you own your own managed Redis and require Instabase to integrate with your Redis. In that case, you might need to set this parameter to false due to limitations surrounding Instabase deploying a standalone Redis. |
true, false |
Examples
Request example:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/storage' \
--header 'Token: {TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{
"file_storage": "googlecloudstorage",
"fields": {
"bucket_name": "dummy-bucket",
"gcs_sse_encryption_type": "gcs_aes256",
"gcs_sse_kms_key_id": "",
"enable_file_cache": true
}
}'
Upload custom Amazon S3 certificate
This API uploads a custom certificate for SSL verification, if required by your S3 server. Complete this API call after configuring Amazon S3 as your file storage.
Request parameters
The general form of the request body is:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/storage/cert' \
--header 'Token: {TOKEN}' \
--header 'Content-Type: multipart/form-data' \
--form 's3_cert=@"/path/to/file"'
Name | Type | Description | Values |
---|---|---|---|
s3_cert | string | Your S3 certificate file. The only valid file type is .crt . |
A string specifying the file path to your S3 certifcate file. |
Examples
Request example:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/storage/cert' \
--header 'Token: {TOKEN}' \
--header 'Content-Type: multipart/form-data' \
--form 's3_cert=@"/path/to/file"'
Upload Google Cloud Storage service account credentials
Method | Syntax |
---|---|
POST | URL_BASE/api/v1/control_plane/installer/storage/gcsserviceaccount |
Description
This API uploads the service account credentials file for your Google Cloud Storage account. This API must be called before configuring Google Cloud Storage as your file storage.
Request parameters
The following parameters are required, unless marked as optional:
Name | Type | Description | Values |
---|---|---|---|
gcs_service_account_credentials | string | The .json credentials file for your Google Cloud Storage service account. See the instructions below for additional support. |
A string specifying the file path to the .json file with your Google Cloud Storage service account credentials. |
Configuring the Google Cloud Storage service account
To configure a Google Cloud Storage service account:
-
From the Google Cloud console, create a Google Cloud Storage bucket with uniform access control. For improved security, create it as a private bucket.
-
Create a service account in Google Cloud’s Identity and Access Management (IAM) system.
-
In the Google Cloud console, create a key pair for the service account, selecting JSON as the key type.
-
Download the JSON credentials file for the service account.
-
Assign the service account the
Storage Admin
andStorage Object Admin
roles for bucket access.InfoMore detailed instructions can be found in the Google IAM permission documentation.
-
Find the Client ID for the service account (available on the Service accounts page).
-
Using a Google Workplace administrator account, search for the service account’s client ID, and grant the service account access to the Google Cloud Platform OAuth scope
www.googleapis.com/auth/cloud-platform
.InfoMore detailed instructions can be found in the Google Service account documentation.
Examples
Request example:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/storage/gcsserviceaccount' \
--header 'Token: {TOKEN}' \
--header 'Content-Type: application/json' \
--form 'gcs_service_account_credentials=@"/path/to/gcscredentials.json"'
Configure platform and Kubernetes cluster-related settings
Method | Syntax |
---|---|
POST | URL_BASE/api/v1/control_plane/installer/other |
Description
This API configures platform and Kubernetes cluster-related settings, including admin login credentials and Persistent Volume Claim names.
Request parameters
The following parameters are required, unless marked as optional:
Name | Type | Description | Values |
---|---|---|---|
namespace | string | The Kubernetes namespace your Instabase deployment will run on. Note
This parameter is scheduled for deprecation.
|
A string specifying the Kubernetes namespace your Instabase deployment will run on. |
admin_username | string | The username for your default Instabase admin credentials. You define the username value in this step and use it for initial admin access to the Instabase platform upon installation. | A string specifying the username for your default Instabase admin credentials. |
admin_email | string | The email for your default Instabase admin credentials. You define the email value in this step and use it for initial admin access to the Instabase platform upon installation. | A string specifying the email address for your default Instabase admin credentials. |
admin_password | string | The password for your default Instabase admin credentials. You define the password value in this step and use it for initial admin access to the Instabase platform upon installation. | A string specifying the password for your default Instabase admin credentials. Must contain a minimum of 8 characters. |
admin_password_confirmation | string | Confirm (re-enter) the password for your default Instabase admin credentials. admin_password and admin_password_confirmation must match. |
A string specifying the password for your default Instabase admin credentials. |
registry | string | The registry to pull Instabase images from. If not provided, will default to the Instabase public image registry. | A string specifying the image registry for your Instabase platform. |
Examples
Request example:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/other' \
--header 'Token: {TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{
"namespace": "instabase",
"admin_username": "test-user",
"admin_email": "test@email.com",
"admin_password": "password",
"admin_password_confirmation": "password"
}'
Configure Kubernetes cluster resourcing
Method | Syntax |
---|---|
POST | URL_BASE/api/v1/control_plane/installer/resourcing |
Description
This API sets the Kubernetes cluster resourcing size. There are three preset cluster size options:
standard
: 64 CPU cores/256 GB RAMlarge
: 128 CPU cores/512 GB RAMxlarge
: 256 CPU cores/1024 GB RAM
Select the option that meets but does not exceed your cluster size defined in Kubernetes. After installation, you can manually adjust the Instabase cluster size configuration using patches to more closely match your Kubernetes cluster size.
Deployment Manager does not have cluster-level permissions to change cluster size; it can modify only Instabase components. Modifying your cluster size must be done from Kubernetes.
Request parameters
The following parameters are required, unless marked as optional:
Name | Type | Description | Values |
---|---|---|---|
cluster_size | string | Define the cluster size, using one of three preset values. See the API description for additional details. | standard, large, xlarge |
Examples
Request example:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/resourcing' \
--header 'Token: {TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{
"cluster_size": "standard"
}'
Preflight checks
Preflight checks validate your information to assess if installation can proceed. These checks are optional and require no parameter configuration, but they are helpful to verify that your infrastructure is set up correctly and is accessible.
The following checks are available:
- Service accounts check
- Role-based access control (RBAC) check
- Persistent Volume Claim (PVC) check
- File storage access check
- Database check
Service accounts check
Method | Syntax |
---|---|
POST | URL_BASE/api/v1/control_plane/preflight/checks/service_accounts |
Description
This check confirms the service account used by the Instabase observability monitoring services exists in the Kubernetes cluster.
Request
There are no customizable parameters. Make the following request, using your own URL_BASE
and TOKEN
values:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/preflight/checks/service_accounts' \
--header 'Token: {TOKEN}' \
--header 'Content-Type: application/json' \
Role-based access control (RBAC) check
Method | Syntax |
---|---|
POST | URL_BASE/api/v1/control_plane/preflight/checks/rbac |
Description
This check reports back any inconsistencies between permissions the Deployment Manager service account requires and permissions it has been granted. A success message indicates the Kubernetes role resource associated with the Deployment Manager service account matches the permissions Deployment Manager requires. A failure message shows the expected configuration alongside the configuration found in the cluster.
Request
There are no customizable parameters. Make the following request, using your own URL_BASE
and TOKEN
values:
curl --location --request 'POST {URL_BASE}/api/v1/control_plane/installer/preflight/checks/rbac' \
--header 'Token: {TOKEN}' \
--header 'Content-Type: application/json' \
File storage access check
Method | Syntax |
---|---|
POST | URL_BASE/api/v1/control_plane/preflight/checks/file_storage_access |
Description
This check tests that the file system credentials entered can connect to your file storage platform. This check also verifies that Instabase has the permissions needed to perform all necessary file operations.
As of Deployment Manager 23.01, the file storage access check is supported for Amazon S3 and Azure Blob Storage file storage options.
Request
There are no customizable parameters. Make the following request, using your own URL_BASE
and TOKEN
values:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/preflight/checks/file_storage_access' \
--header 'Token: {TOKEN}' \
--header 'Content-Type: application/json' \
Database check
Method | Syntax |
---|---|
POST | URL_BASE/api/v1/control_plane/preflight/checks/database |
Description
This check tests that the database credentials entered can connect to your database. This check also verifies that Instabase has appropriately scoped permissions for table creation, table reading, and table writing.
Request
There are no customizable parameters. Make the following request, using your own URL_BASE
and TOKEN
values:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/preflight/checks/database' \
--header 'Token: {TOKEN}' \
--header 'Content-Type: application/json' \
Persistent Volume Claim (PVC) check
Method | Syntax |
---|---|
POST | URL_BASE/api/v1/control_plane/preflight/checks/pvc |
Description
This check tests that all required PVCs are present, bound, and mountable.
Request
There are no customizable parameters. Make the following request, using your own URL_BASE
and TOKEN
values:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/preflight/checks/pvc' \
--header 'Token: {TOKEN}' \
--header 'Content-Type: application/json' \
Upload Instabase license
Method | Syntax |
---|---|
POST | URL_BASE/api/v1/control_plane/installer/license |
Description
This API uploads your Instabase license. Your license is provided by your technical account manager and is an .iblicense
file.
Request parameters
The following parameters are required, unless marked as optional:
Name | Type | Description | Values |
---|---|---|---|
file | string | Your Instabase license file. The only valid file type is .iblicense . |
A string specifying the file path to your Instabase license file. |
Examples
Request example:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/license' \
--header 'Token: {TOKEN}' \
--form 'file=@"/path/to/license.iblicense"'
Upload base configurations
Method | Syntax |
---|---|
POST | URL_BASE/api/v1/control_plane/installer/baseconfig |
Description
This API uploads your Instabase base configurations. This file is provided by your technical account manager and is typically named base_configs.zip
.
To make configuration changes, use the configuration management options on the Configs and Base Configs tabs. Never directly edit the base configuration files. See the configuration management documentation for guidance on using patches to modify base configurations.
Request parameters
The following parameters are required, unless marked as optional:
Name | Type | Description | Values |
---|---|---|---|
file | string | The Instabase base configurations file. Supported file types are .zip , .gz , and .tgz . |
A string specifying the file path to the Instabase base configurations file. |
Examples
Request example:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/baseconfig' \
--header 'Content-Type: multipart/form-data' \
--header 'Token: {TOKEN}' \
--form 'file=@"/path/to/baseconfig.zip"'
Upload default patches
Method | Syntax |
---|---|
POST | URL_BASE/api/v1/control_plane/installer/defaultpatches |
Description
This optional API uploads any default patches that should be applied during installation. If indicated, your technical account manager provided a patch bundle file to upload during installation. You can also apply patches after completing installation.
Request parameters
The following parameters are required, unless marked as optional:
Name | Type | Description | Values |
---|---|---|---|
file | string | The default patches file. Supported file types are .zip , .gz , and .tgz . |
A string specifying the file path to your default patches file. |
Examples
Request example:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/defaultpatches' \
--header 'Content-Type: multipart/form-data' \
--header 'Token: {TOKEN}' \
--form 'file=@"/path/to/defaultpatches.zip"'
Upload network policies
Method | Syntax |
---|---|
POST | URL_BASE/api/v1/control_plane/installer/network-policies |
Description
This optional API uploads any network policies that should be applied during installation. If indicated, your installation.zip
package includes a folder called network-policies
containing a series of network policy files. After making any necessary changes to the network policy files, compress the network-policies
folder.
Request parameters
Name | Type | Description | Values |
---|---|---|---|
file | string | The network policies file. Supported file types are .zip , .gz , and .tgz . |
A string specifying the file path to your network policies file. |
Examples
Request example:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/network-policies' \
--header 'Content-Type: multipart/form-data' \
--header 'Token: {TOKEN}' \
--form 'file=@"/path/to/defaultnetworkpolicies.zip"'
Finalize installation
Method | Syntax |
---|---|
POST | URL_BASE/api/v1/control_plane/installer/finalize |
Description
This API initiates installation. If an installation is unsuccessful, this API is also used to retry installation.
Request parameters
The following parameters are required, unless marked as optional:
Name | Type | Description | Values |
---|---|---|---|
clean_install | boolean | Cleans up Deployment Manager tables from partial installations before retrying the installation. When set to true , any previously created Deployment Manager tables are removed before retrying the install. |
true, false Can be set to false for initial installation attempt. Set to true for any installation retries. |
Examples
Request example:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/installer/finalize' \
--header 'Token: {TOKEN}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'clean_install=true'
Run post-install actions
Method | Syntax |
---|---|
POST | URL_BASE/api/v1/control_plane/deployment/postinstall/actions/run |
Description
Automated post-install actions are available as of Deployment Manager 23.01. For previous versions, follow steps 4-9 of the Post Deployment Steps section of the Installation guide to complete post-install actions manually.
This API initiates post-install actions. The API only needs to be called once, and should be called after installation has completed.
The simplest way to confirm a successful installation is to use the Deployment Manager infra dashboard. From the infra dashboard, you can view the state of your Kubernetes Deployments, StatefulSets, PersistentVolumeClaims, Jobs, and Services. You can access the infra dashboard at {YOUR-INSTABASE-URL}/deployment-manager/dashboard/deployments
.
Use the dashboard tabs to see which Deployments, StatefulSets, and Services have spun up and are working as expected. Items with a green checkmark are ready to use, items with a spinning icon are still spinning up, and items with a red X have encountered an error or other event. If any deployments display a red X, you can connect with Instabase Support for next steps, and provide events history and logs for the affected pods and containers.
After confirming a successful installation, you can run the following post-install actions:
-
Base model image upload action: Downloads all Instabase base models required for running ML Studio offline training, along with numerous entity detection models, and publishes them to the Marketplace so they’re ready to use.
-
License action: Applies the license uploaded to Instabase Installer.
-
ML Studio config setup action: Performs the post-deployment configuration of ML Studio using the latest version of the
.ibformers
training script. -
Setup system retention rules: Sets up system-level rules used to support user-defined file retention settings (only applicable to SaaS deployments).
-
System repo setup action: Sets up backing file system infrastructure required to publish new models to the platform.
-
Test Runner setup action: Sets up a Test Runner test suite used in the Test Runner test action. The test suite includes a variety of tasks commonly performed with the Instabase platform, providing broad coverage of expected functionality. Tested functionality includes:
- Verify solutions (including flows, flow binaries, and
.ibsolutions
) can successfully run end-to-end. - Verify a variety of common input file types can be processed successfully.
- Assess the performance of a variety of Instabase components, including apps and services.
- Assess the performance of a variety of OCR engines.
- Verify solutions (including flows, flow binaries, and
-
Test Runner test action: Runs the Test Runner test suite set up in the previous action. When complete, solution diagnostics display for each test, including a status for the test and comparison details if expected (
base_value
) and actual (compare_value
) solution results differ.InfoThe test suite includes tests that assess the performance of a variety of OCR engines. If your deployment does not use a given OCR engine, that test will result in an error. Connect with your technical account manager if you have any questions or concerns about a failed test.
If your post-install actions encounter errors and fail (see the Get the status of post-install actions API), this API can also be used to retry running all post-install actions, after the source of error has been resolved.
Request
There are no customizable parameters. Make the following request, using your own URL_BASE
and TOKEN
values:
curl --location --request POST '{URL_BASE}/api/v1/control_plane/deployment/postinstall/actions/run' \
--header 'Token: {TOKEN}'
Get the status of post-install actions
Method | Syntax |
---|---|
GET | URL_BASE/api/v1/control_plane/deployment/postinstall/actions/statuses |
Description
This API gets the status of post-install actions initiated using the Run post-install actions API. Completing the post-install actions takes some time.
Request
There are no customizable parameters. Make the following request, using your own URL_BASE
and TOKEN
values:
curl --location '{URL_BASE}/api/v1/control_plane/deployment/postinstall/actions/statuses' \
--header 'Token: {TOKEN}'
Response
The response is a JSON object, with the following keys:
Name | Description |
---|---|
status | The status of the call. 200 indicates success, and is the response even if errors with the post-install actions have occurred. 500 indicates an error in getting statuses. |
data | An object containing information about the post-install actions. |
data/{Action name} | An object containing information about a specific post-install action. |
data/{Action name}/state | Describes the state of the post-install action: Unstarted , Running , or Aborted . |
data/{Action name}/note | Provides further details on the state of the action, such as License upload has started. |
error | Contains information about any errors that have led to a 500 status. null if no errors have occurred. |
Examples
Sample response with no errors running post-install actions:
{
"statusCode": 200,
"data": {
"Base Model Image Upload Action": {
"State": "Unstarted",
"Note": "Action is not started yet."
},
"License Action": {
"State": "Running",
"Note": "License upload has started."
},
"ML Studio Config Setup Action": {
"State": "Unstarted",
"Note": "ML studio config setup action has not started."
},
"System Repo Setup Action": {
"State": "Running",
"Note": "System repo setup has started."
}
},
"error": null
}
Sample response with errors running post-install actions:
{
"statusCode": 200,
"data": {
"Base Model Image Upload Action": {
"State": "Aborted",
"Note": "actions base model image upload action wait for dependencies: dependency is in Aborted state"
},
"License Action": {
"State": "Aborted",
"Note": "actions license action license: actions license action decrypt: Post \"http://service-api-server.instabase.svc.cluster.local:25555/api/v1/license-service/preview\": dial tcp: lookup service-api-server.instabase.svc.cluster.local: no such host"
},
"ML Studio Config Setup Action": {
"State": "Aborted",
"Note": "dependency is in Aborted state"
},
"System Repo Setup Action": {
"State": "Aborted",
"Note": "actions system repo setup action setup system repo: Post \"http://service-api-server.instabase.svc.cluster.local:25555/api/v1/site/setup-system-repo\": dial tcp: lookup service-api-server.instabase.svc.cluster.local: no such host"
}
},
"error": null
}
dependency is in Aborted state
indicates that the action cannot proceed without another action being completed. no such host
errors indicate a failed connection; verify that the service is running before retrying.
Sample response with error getting statuses:
{
"statusCode": 500,
"data": {},
"error": "GetActionStatuses: http conn serve: actionHelper.GetActionData: RegistryManager.GetActionData: RegistryManager.getValue: Error 1146 (42S02): Table 'ibdb.key_values' doesn't exist"
}