...
This is an example of the new ‘cluster’ API, is part of the device configuration of EVE API
message EdgeDevConfig {
...
// cluster configureconfiguration
EdgeNodeCluster cluster;
}
message EdgeNodeCluster {
// cluster name, in case it has multiple cluster on the same site
string ClusterName cluster_name;
// cluster UUID
string ClusterID cluster_id;
// Cluster-Interface, for example "eth1"
string ClusterInterface cluster_interface;
// The ‘cluster-prefix’ IP address of the ‘Cluster-Interface’, e.g. 10.244.244.2/28
string ClusterIPPrefix cluster_ip_prefix;
// This device is ‘seed-server’ or not
bool IsSeedServer;
// This device is an ‘Agent’ node
bool IsAgent Is_agent;
// SSIP - Seed- Server IP address to join during bootstrapthe cluster. E.g. 10.244.244.1
string SeedServerIPAddress join_server_ip;
// encrypted token string, use edge-node TMP to decrypt
org.lfedge.eve.common.CipherBlock EncryptedClusterToken;
// Resource label list, may not be in first phases
map <string, string> ResourceLabel;
} encrypted_cluster_token;
}
App Instance App Instance API
This is an example of the change of the ‘AppInstanceConfig’ API
message AppInstanceConfig {
…
// This edge-node UUID for the Designated Node for the Application
string DesignatedNodeID;
// If the App allows automatically migrated or not
bool AutoMigration;
// a set of ResourceLabels for node selection (may not be in first phases)
map<string, string> NodeSelectLabels string designated_node_id;
…
}
Volume API
This is an example of the change of the ‘Volume’ API
...
message Volume {
…
// To inform the edge-node if the device receives this Volume is
// responsible to create volume, convert PVC or not
String DesignateNodeID;
// replicated to devices with UUID array, number arrange from 0 to 2// responsible to create volume, convert PVC or not
repeated string ReplicaNodeID designated_node_id;
}
App Info Message API
This is an example of the change of the ‘Info’ API
enum ZInfoClusterNodeStatus {
Node Node_Status_INVALID;
Node Node_Status_READY; // cluster reports our node is ready
Node Node_Status_NOTREADY; // cluster reports our node is ready
Node Node_Status_UNKNOWN; // cluster API server can not be reached
}
message ZInfoClusterNode {
ZInfoClusterNodeStatus node_status;
}
message ZInfoMsg {
oneof InfoContent {
...
ZInfoClusterNode ZInfoClusterNode cluster_node;
}
}
message ZInfoApp {
… // Report Node status of this Node in the cluster
// The App in cluster mode is currently running on this edge-node
bool ClusterAppRunning;
… cluster_app_running;
}