Create
Creates an OpenSearch cluster in the specified folder.
- TypeScript
- Python
import {
cloudApi,
decodeMessage,
serviceClients,
Session,
waitForOperation,
} from "@yandex-cloud/nodejs-sdk";
const Cluster = cloudApi.dataproc.cluster.Cluster;
const CreateClusterRequest =
cloudApi.dataproc.cluster_service.CreateClusterRequest;
const HadoopConfig_Service = cloudApi.dataproc.cluster.HadoopConfig_Service;
const Role = cloudApi.dataproc.subcluster.Role;
(async () => {
const authToken = process.env["YC_OAUTH_TOKEN"];
const session = new Session({ oauthToken: authToken });
const client = session.client(serviceClients.ClusterServiceClient);
const operation = await client.create(
CreateClusterRequest.fromPartial({
folderId: "folderId",
// name: "name",
// description: "description",
// labels: {"key": "labels"},
configSpec: {
// versionId: "versionId",
// hadoop: {
// services: [HadoopConfig_Service.HDFS],
// properties: {"key": "properties"},
// sshPublicKeys: ["sshPublicKeys"],
// initializationActions: [{
// uri: "uri",
// args: ["args"],
// timeout: 0
// }]
// },
// subclustersSpec: [{
// name: "name",
// role: Role.MASTERNODE,
// resources: {
// resourcePresetId: "resourcePresetId",
// diskTypeId: "diskTypeId",
// diskSize: 0
// },
// subnetId: "subnetId",
// hostsCount: 0,
// assignPublicIp: true,
// autoscalingConfig: {
// maxHostsCount: 0,
// preemptible: true,
// measurementDuration: {
// seconds: 0,
// nanos: 0
// },
// warmupDuration: {
// seconds: 0,
// nanos: 0
// },
// stabilizationDuration: {
// seconds: 0,
// nanos: 0
// },
// cpuUtilizationTarget: 0,
// decommissionTimeout: 0
// }
// }]
},
zoneId: "zoneId",
serviceAccountId: "serviceAccountId",
// bucket: "bucket",
// uiProxy: true,
// securityGroupIds: ["securityGroupIds"],
// hostGroupIds: ["hostGroupIds"],
// deletionProtection: true,
// logGroupId: "logGroupId"
})
);
const finishedOp = await waitForOperation(operation, session);
if (finishedOp.response) {
const result = decodeMessage<typeof Cluster>(finishedOp.response);
console.log(result);
}
})();
import os
import grpc
import yandexcloud
from yandex.cloud.dataproc.v1.subcluster_pb2 import AutoscalingConfig
from yandex.cloud.dataproc.v1.cluster_pb2 import Cluster
from yandex.cloud.dataproc.v1.cluster_service_pb2_grpc import ClusterServiceStub
from yandex.cloud.dataproc.v1.cluster_service_pb2 import CreateClusterConfigSpec
from yandex.cloud.dataproc.v1.cluster_service_pb2 import CreateClusterMetadata
from yandex.cloud.dataproc.v1.cluster_service_pb2 import CreateClusterRequest
from yandex.cloud.dataproc.v1.cluster_service_pb2 import CreateSubclusterConfigSpec
from yandex.cloud.dataproc.v1.cluster_pb2 import HadoopConfig
from yandex.cloud.dataproc.v1.cluster_pb2 import InitializationAction
from yandex.cloud.dataproc.v1.common_pb2 import Resources
from yandex.cloud.dataproc.v1.subcluster_pb2 import Role
token = os.getenv("YC_OAUTH_TOKEN")
sdk = yandexcloud.SDK(token=token)
service = sdk.client(ClusterServiceStub)
operation = service.Create(
CreateClusterRequest(
folder_id="folderId",
# name = "name",
# description = "description",
# labels = {"key": "labels"},
config_spec=CreateClusterConfigSpec(
# version_id = "versionId",
# hadoop = HadoopConfig(
# services = [HadoopConfig.Service.HDFS],
# properties = {"key": "properties"},
# ssh_public_keys = ["sshPublicKeys"],
# initialization_actions = [InitializationAction(
# uri = "uri",
# args = ["args"],
# timeout = 0
# )]
# ),
# subclusters_spec = [CreateSubclusterConfigSpec(
# name = "name",
# role = Role.MASTERNODE,
# resources = Resources(
# resource_preset_id = "resourcePresetId",
# disk_type_id = "diskTypeId",
# disk_size = 0
# ),
# subnet_id = "subnetId",
# hosts_count = 0,
# assign_public_ip = true,
# autoscaling_config = AutoscalingConfig(
# max_hosts_count = 0,
# preemptible = true,
# measurement_duration = Duration(
# seconds = 0,
# nanos = 0
# ),
# warmup_duration = Duration(
# seconds = 0,
# nanos = 0
# ),
# stabilization_duration = Duration(
# seconds = 0,
# nanos = 0
# ),
# cpu_utilization_target = 0,
# decommission_timeout = 0
# )
# )]
),
zone_id="zoneId",
service_account_id="serviceAccountId",
# bucket = "bucket",
# ui_proxy = true,
# security_group_ids = ["securityGroupIds"],
# host_group_ids = ["hostGroupIds"],
# deletion_protection = true,
# log_group_id = "logGroupId"
)
)
operation_result = sdk.wait_operation_and_get_result(
operation,
response_type=Cluster,
meta_type=CreateClusterMetadata,
)
print(operation_result)
CreateClusterRequest
folderId
: string
ID of the folder to create the OpenSearch cluster in.
name
: string
Name of the OpenSearch cluster. The name must be unique within the folder.
description
: string
Description of the OpenSearch cluster.
labels
: string
Custom labels for the OpenSearch cluster as key:value
pairs.
For example, "project": "mvp"
or "source": "dictionary"
.
environment
: Cluster.Environment
Deployment environment of the OpenSearch cluster.
configSpec
: ConfigCreateSpec
OpenSearch cluster configuration.
networkId
: string
ID of the network to create the cluster in.
securityGroupIds
: string
User security groups.
serviceAccountId
: string
ID of the service account used to access Object Storage.
deletionProtection
: bool
Determines whether the cluster is protected from being deleted.
maintenanceWindow
: MaintenanceWindow
Cluster maintenance window. Should be defined by either one of the two options.
ConfigCreateSpec
version
: string
OpenSearch version.
adminPassword
: string
OpenSearch admin password.
opensearchSpec
: OpenSearchCreateSpec
OpenSearch configuration.
dashboardsSpec
: DashboardsCreateSpec
Dashboards configuration.
access
: Access
Access policy for external services.
MaintenanceWindow
An OpenSearch cluster maintenance window. Should be defined by either one of the two options.
One of policy
anytime
: AnytimeMaintenanceWindowAn any-time maintenance window.
weeklyMaintenanceWindow
: WeeklyMaintenanceWindowA weekly maintenance window.
OpenSearchCreateSpec
OpenSearch create-time configuration.
NodeGroup
Configuration of the host group.
name
: string
Name of the group.
resources
: Resources
Resources allocated to the hosts.
hostsCount
: int64
Number of hosts in the group.
zoneIds
: string
IDs of the availability zones the hosts belong to.
subnetIds
: string
IDs of the subnets that the hosts belong to.
assignPublicIp
: bool
Determines whether a public IP is assigned to the hosts in the group.
roles
: OpenSearch.GroupRole
Roles of the hosts in the group.
diskSizeAutoscaling
: DiskSizeAutoscaling
Disk size autoscaling settings
plugins
: string
Names of the cluster plugins.
nodeGroups
: NodeGroup
OpenSearch type host groups of the cluster.
One of config
opensearchConfig_2
: config.OpenSearchConfig2
keystoreSettings
: KeystoreSetting
Initial cluster keystore settings.
DashboardsCreateSpec
Dashboards create-time configuration.
NodeGroup
name
: string
Name of the group.
resources
: Resources
Resources allocated to the hosts.
hostsCount
: int64
Number of hosts in the group.
zoneIds
: string
IDs of the availability zones the hosts belong to.
subnetIds
: string
IDs of the subnets that the hosts belong to.
assignPublicIp
: bool
Determines whether a public IP is assigned to the hosts in the group.
diskSizeAutoscaling
: DiskSizeAutoscaling
Disk size autoscaling settings
nodeGroups
: NodeGroup
Dashboards type host groups of the cluster.
Access
Access policy for external services.
dataTransfer
: bool
Determines whether the access to Data Transfer is allowed.
serverless
: bool
Determines whether the access to Serverless is allowed.
AnytimeMaintenanceWindow
An any-time maintenance window.
WeeklyMaintenanceWindow
A weekly maintenance window.
WeekDay
WEEK_DAY_UNSPECIFIED
MON
Monday
TUE
Tuesday
WED
Wednesday
THU
Thursday
FRI
Friday
SAT
Saturday
SUN
Sunday
day
: WeekDay
Day of the week.
hour
: int64
Hour of the day in the UTC timezone.
Resources
A list of computational resources allocated to a host.
resourcePresetId
: string
ID of the preset for computational resources allocated to a host.
diskSize
: int64
Volume of the storage used by the host, in bytes.
diskTypeId
: string
Type of the storage used by the host: network-hdd
, network-ssd
or local-ssd
.
DiskSizeAutoscaling
plannedUsageThreshold
: int64
Amount of used storage for automatic disk scaling in the maintenance window, 0 means disabled, in percent.
emergencyUsageThreshold
: int64
Amount of used storage for immediately automatic disk scaling, 0 means disabled, in percent.
diskSizeLimit
: int64
Limit on how large the storage for database instances can automatically grow, in bytes.
NodeGroup
Configuration of the host group.
name
: string
Name of the group.
resources
: Resources
Resources allocated to the hosts.
hostsCount
: int64
Number of hosts in the group.
zoneIds
: string
IDs of the availability zones the hosts belong to.
subnetIds
: string
IDs of the subnets that the hosts belong to.
assignPublicIp
: bool
Determines whether a public IP is assigned to the hosts in the group.
roles
: OpenSearch.GroupRole
Roles of the hosts in the group.
diskSizeAutoscaling
: DiskSizeAutoscaling
Disk size autoscaling settings
OpenSearchConfig2
maxClauseCount
: google.protobuf.Int64Value
the maximum number of allowed boolean clauses in a query
fielddataCacheSize
: string
the percentage or absolute value (10%, 512mb) of heap space that is allocated to fielddata
reindexRemoteWhitelist
: string
KeystoreSetting
Single keystore entry.
name
: string
Keystore entry name.
value
: string
Keystore entry value.
Operation
An Operation resource. For more information, see Operation.
id
: string
ID of the operation.
description
: string
Description of the operation. 0-256 characters long.
createdAt
: google.protobuf.Timestamp
Creation timestamp.
createdBy
: string
ID of the user or service account who initiated the operation.
modifiedAt
: google.protobuf.Timestamp
The time when the Operation resource was last modified.
done
: bool
If the value is false
, it means the operation is still in progress.
If true
, the operation is completed, and either error
or response
is available.
metadata
: google.protobuf.Any
Service-specific metadata associated with the operation. It typically contains the ID of the target resource that the operation is performed on. Any method that returns a long-running operation should document the metadata type, if any.
One of result
The operation result.
If done == false
and there was no failure detected, neither error
nor response
is set.
If done == false
and there was a failure detected, error
is set.
If done == true
, exactly one of error
or response
is set.
error
: google.rpc.StatusThe error result of the operation in case of failure or cancellation.
response
: google.protobuf.AnyThe normal response of the operation in case of success.
If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is the standard Create/Update, the response should be the target resource of the operation. Any method that returns a long-running operation should document the response type, if any.