CreateService
In this article:
CreateService#
Description#
Request to create a PaaS service.
Request Parameters#
Required parameters#
highAvailability — Indicates whether to start an high-availability service.
Type: Boolean
Required: Yes
instanceType — The type of instance.
Type: String
Required: Yes
name — The service name.
Type: String
Required: Yes
parameters — PaaS service parameters.
Type: Dict
Required: Yes
Valid values: Depend on service type (see PaaS Parameters)
rootVolumeType — The type of instance boot volume.
Type: String
Required: Yes
Valid values:
st2
|gp2
|io2
rootVolumeSize — The size of the instance boot volume size, in GiB.
Type: Integer
Required: Yes
securityGroupIds — List of security group IDs.
Type: Array of strings
Required: Yes
serviceClass — The PaaS service class.
Type: String
Required: Yes
Valid values for a specific service type:
mysql:
database
pgsql:
database
redis:
database
|cacher
memcached:
cacher
mongodb:
database
elasticsearch:
search
rabbitmq:
message_broker
serviceType — PaaS service type.
Type: String
Required: Yes
Valid values:
mysql
|pgsql
|redis
|memcached
|mongodb
|elasticsearch
|rabbitmq
Optional parameters#
arbitratorRequired — Indicates whether to create a cluster with arbitrator.
Type: Boolean
Required: No
backupSettings — Backup settings.
Type: BackupSettingsRequest object
Required: No
dataVolumeIops — Number of read/write operations per second for data volume.
Type: Integer
Required: Yes, if the
io2
type is specified for the data volume
dataVolumeSize — The size of the data volume, in GiB.
Type: Integer
Required: No
dataVolumeType — The type of the data volume.
Type: String
Required: No
Valid values:
st2
|gp2
|io2
externalBalancerRequired — Indicates whether to create an internet-facing load balancer.
Type: Boolean
Required: No
Default value:
False
Constraints: A balancer can only be created for a high-availability PaaS service.
instanceQty — The number of instances.
Type: Integer
Required: No
internalBalancerRequired — Indicates whether to create an internal load balancer.
Type: Boolean
Required: No
Default value:
False
Constraints: A balancer can only be created for a high-availability PaaS service.
networkInterfaceIds — List of network interface IDs.
Type: Array of strings
Required: Yes, if subnet ID list is not specified
rootVolumeIops — Number of read/write operations per second for the instance boot volume.
Type: Integer
Required: Yes, if
io2
type is specified for the instance boot volume
sshKeyName — The name of the SSH key for accessing instances.
Type: String
Required: No
subnetIds — List of subnet IDs.
Type: Array of strings
Required: Yes, if network interface ID list is not specified
userData — User data.
Type: String
Required: Yes, if userDataContentType is specified
userDataContentType — The type of userData.
Type: String
Required: Yes, if userData is specified
Valid values:
cloud-config
|x-shellscript
Response Elements#
service — Detailed description of a service.
Type: Service object
Examples#
Managing PaaS services in K2 Cloud via API requires a customized version of the boto3 library:
import boto3
session = boto3.Session(
aws_access_key_id="<AWS_ACCESS_KEY_ID>",
aws_secret_access_key="<AWS_SECRET_ACCESS_KEY>",
region_name="",
)
paas_client = session.client(
'paas',
endpoint_url='https://paas.k2.cloud/',
)
paas_client.create_service(
name='production-database',
serviceType='redis',
serviceClass='database',
subnetIds=['subnet-0A17D740'],
securityGroupIds=['sg-F10FB1F3'],
rootVolumeType='st2',
rootVolumeSize=32,
dataVolumeType='st2',
dataVolumeSize=32,
instanceType='c5.large',
parameters={
'version': '6.2.6',
'monitoring': False,
'logging': False,
},
highAvailability=False,
externalBalancerRequired=False,
internalBalancerRequired=False,
)
Or c2-paas utility from K2 Cloud API Client software suite:
c2-paas CreateService name production-database serviceType redis serviceClass database subnetIds.1 subnet-0A17D740 securityGroupIds.1 sg-F10FB1F3 rootVolumeType st2 rootVolumeSize 32 dataVolumeType st2 dataVolumeSize 32 instanceType t1.large parameters.version 6 parameters.monitoring false highAvailability false externalBalancerRequired false internalBalancerRequired false