Skip to main content

Create

Creates a new Elasticsearch cluster in the specified folder.

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);
}
})();

CreateClusterRequest

folderId : string

ID of the folder to create the Elasticsearch cluster in.

name : string

Name of the Elasticsearch cluster. The name must be unique within the folder.

description : string

Description of the Elasticsearch cluster.

labels : string

Custom labels for the Elasticsearch cluster as key:value pairs.

For example, "project": "mvp" or "source": "dictionary".

environment : Cluster.Environment

Deployment environment of the Elasticsearch cluster.

configSpec : ConfigSpec

Elasticsearch and hosts configuration for the cluster.

userSpecs : UserSpec

One or more descriptions of users to be created in Elasticsearch cluster.

hostSpecs : HostSpec

One or more configurations of hosts to be created in the Elasticsearch cluster.

networkId : string

ID of the network to create the Elasticsearch cluster in.

securityGroupIds : string

User security groups

serviceAccountId : string

ID of the service account used for access to Object Storage.

deletionProtection : bool

Deletion Protection inhibits deletion of the cluster

maintenanceWindow : MaintenanceWindow

Window of maintenance operations.

extensionSpecs : ExtensionSpec

optional

ConfigSpec

version : string

Elasticsearch version.

elasticsearchSpec : ElasticsearchSpec

Configuration and resource allocation for Elasticsearch nodes.

edition : string

ElasticSearch edition.

adminPassword : string

ElasticSearch admin password.

UserSpec

name : string

Name of the Elasticsearch user.

password : string

Password of the Elasticsearch user.

HostSpec

zoneId : string

ID of the availability zone where the host resides.

subnetId : string

ID of the subnet the host resides in.

assignPublicIp : bool

The flag that defines whether a public IP address is assigned to the host.

If the value is true, then this host is available on the Internet via it's public IP address.

type : Host.Type

Host type.

shardName : string

The shard name to create on the host.

MaintenanceWindow

One of policy

  • anytime : AnytimeMaintenanceWindow
  • weeklyMaintenanceWindow : WeeklyMaintenanceWindow

ExtensionSpec

name : string

Name of the extension.

uri : string

URI of the zip archive to create the new extension from. Currently only supports links that are stored in Object Storage.

disabled : bool

The flag shows whether to create the extension in disabled state.

ElasticsearchSpec

DataNode

One of config

Elasticsearch data node configuration.

  • elasticsearchConfig_7 : config.ElasticsearchConfig7
resources : Resources

Resources allocated to Elasticsearch data nodes.

MasterNode
resources : Resources

Resources allocated to Elasticsearch master nodes.

dataNode : DataNode

Configuration and resource allocation for Elasticsearch data nodes.

masterNode : MasterNode

Configuration and resource allocation for Elasticsearch master nodes.

plugins : string

Cluster wide plugins

AnytimeMaintenanceWindow

WeeklyMaintenanceWindow

WeekDay
  • WEEK_DAY_UNSPECIFIED

  • MON

  • TUE

  • WED

  • THU

  • FRI

  • SAT

  • SUN

day : WeekDay
hour : int64

Hour of the day in UTC.

ElasticsearchConfig7

Elasticsearch 7.x supported configuration options are listed here.

Detailed description for each set of options is available in Elasticsearch documentation.

Any options that are not listed here are not supported.

maxClauseCount : google.protobuf.Int64Value

The maximum number of clauses a boolean query can contain.

The limit is in place to prevent searches from becoming too large and taking up too much CPU and memory. It affects not only Elasticsearch's bool query, but many other queries that are implicitly converted to bool query by Elastcsearch.

Default value: 1024.

See in-depth description in Elasticsearch documentation.

fielddataCacheSize : string

The maximum percentage or absolute value (10%, 512mb) of heap space that is allocated to field data cache.

All the field values that are placed in this cache, get loaded to memory in order to provide fast document based access to those values. Building the field data cache for a field can be an expensive operations, so its recommended to have enough memory for this cache, and to keep it loaded.

Default value: unbounded.

See in-depth description in Elasticsearch documentation.

reindexRemoteWhitelist : string

Remote hosts for reindex have to be explicitly allowed in elasticsearch.yml using the reindex.remote.whitelist property. It can be set to a comma delimited list of allowed remote host and port combinations. Scheme is ignored, only the host and port are used.

reindexSslCaPath : string

List of paths to PEM encoded certificate files that should be trusted.

See in-depth description in Elasticsearch documentation

Resources

Computational resources.

resourcePresetId : string

ID of the preset for computational resources available to a host (CPU, memory etc.). All available presets are listed in the documentation.

diskSize : int64

Volume of the storage available to a host, in bytes.

diskTypeId : string

Type of the storage environment for the host. All available types are listed in the documentation.

DataNode

  • elasticsearchConfig_7 : config.ElasticsearchConfig7
resources : Resources

Resources allocated to Elasticsearch data nodes.

MasterNode

resources : Resources

Resources allocated to Elasticsearch master nodes.

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.Status

    The error result of the operation in case of failure or cancellation.

  • response : google.protobuf.Any
    The 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.