Interface ClusterPlugin


  • public interface ClusterPlugin
    An extension point for Plugin implementations to customer behavior of cluster management.
    • Method Detail

      • createAllocationDeciders

        default java.util.Collection<AllocationDecider> createAllocationDeciders​(Settings settings,
                                                                                 ClusterSettings clusterSettings)
        Return deciders used to customize where shards are allocated.
        Parameters:
        settings - Settings for the node
        clusterSettings - Settings for the cluster
        Returns:
        Custom AllocationDecider instances
      • getShardsAllocators

        default java.util.Map<java.lang.String,​java.util.function.Supplier<ShardsAllocator>> getShardsAllocators​(Settings settings,
                                                                                                                       ClusterSettings clusterSettings)
        Return ShardsAllocator implementations added by this plugin. The key of the returned Map is the name of the allocator, and the value is a function to construct the allocator.
        Parameters:
        settings - Settings for the node
        clusterSettings - Settings for the cluster
        Returns:
        A map of allocator implementations
      • onNodeStarted

        default void onNodeStarted()
        Called when the node is started
      • getInitialClusterStateCustomSupplier

        default java.util.Map<java.lang.String,​java.util.function.Supplier<ClusterState.Custom>> getInitialClusterStateCustomSupplier()
        Returns a map of ClusterState.Custom supplier that should be invoked to initialize the initial clusterstate. This allows custom clusterstate extensions to be always present and prevents invariants where clusterstates are published but customs are not initialized. TODO: Remove this whole concept of InitialClusterStateCustomSupplier, it's not used anymore