Cluster Initialization and Provisioning

    +
    The Couchbase REST API can be used to initialize an individual node; and to provision it, so that it becomes a single-node cluster, to which further nodes can then be added.

    Understanding Initialization and Provisioning

    Once a newly installed instance of Couchbase Server has been started for the first time, the Couchbase REST API can be used to:

    • Initialize. This means optionally to specify, for the current node, the following:

      • Custom disk paths for the Data, Index, Eventing, and Analytics Services.

      • A custom location for the Java Runtime Environment to be used by the Analytics Service.

      • A node-name.

    • Provision. This means to establish, for the current node:

      • The default disk paths for the Data, Index, Eventing, and Analytics Services; in cases where custom disk paths have not been previously established through initialization.

      • The default location for the Java Runtime Environment to be used by the Analytics Service; in cases where no custom location has been previously established through initialization.

      • A node-name, in cases where no such name has been previously established through initialization.

      • A name for the entire cluster.

      • Services that will reside on the node, and their individual memory allocations.

      • A username and password for the administrator creating the cluster — the administrator will have Full Admin credentials.

        Once the username and password are established, the node is considered a fully provisioned single-node cluster, and the cluster’s instance of Couchbase Web Console can be accessed by means of user login.

        Following the establishment of username and password, the single-node cluster can no longer be initialized; nor can services be assigned to the node. If no services have been assigned prior to the username and password being assigned, the default list of services is assigned to the node, using the default memory allocations. See Memory.

        Following the establishment of username and password, the node-name can continue to be assigned and reassigned, provided that the node remains a single-node cluster. Memory allocations and cluster name can also continue to be modified, including after the cluster has become a multi-node cluster.

        If username and password are established before the other provisioning APIs have been used, any such calls made subsequently must be authenticated: however, prior to username and password being established, the other provisioning APIs can be used without authentication. For information on roles, see Roles.

    Note the following:

    • The custom access-paths established for the node during initializing will be retained even if the node is subsequently added to a different cluster.

    • Once the one-node cluster has been provisioned, and is thus a single-node cluster, it can be made part of a multi-node cluster: either by adding other individual nodes to it; or by adding it to another, already existing cluster.

    • When a provisioned node is added to another cluster, the node loses all aspects of its provisioning; and must be reprovisioned, as part of the node-addition process.

    • After a cluster has been provisioned, one or more buckets can be added to it, for the retention of data.

    For detailed conceptual information on initialization, provisioning and all other principal aspects of node-management, see Nodes. For information on specifying a Java Runtime Environment, see the description of Additional Requirements provided for the install process. For information on creating and maintaining buckets, subsequent to cluster-creation, see Buckets API.

    APIs in this Section

    The REST APIs described in this section are listed below.

    HTTP Method URI Documented at

    POST

    /nodes/self/controller/settings

    Initializing a Node

    POST

    /settings/web

    Establishing Credentials

    POST

    /node/controller/rename

    Naming a Node

    POST

    /pools/default

    Configuring Memory

    POST

    /node/controller/setupServices

    Assigning Services

    POST

    /pools/default

    Naming a Cluster