alert.proto
Alert
Alert.AnnotationsEntry
Alert.LabelsEntry
AlertApi
| Method Name | Request Type | Response Type | Description |
|---|
| ShowAlert | Alert | Alert stream | Show alerts |
Top
alldata.proto
AllData
AllData contains all data that may be used for declarative
create/delete, or as input for e2e tests.
The order of fields here is important, as objects will be
created in the order they are specified here, and deleted
in the opposite order. The field ID (number) doesn't matter.
Top
app.proto
App
Application
App belongs to developer organizations and is used to provide information about their application.
| Field | Type | Label | Description |
|---|
| fields | string | repeated | Fields are used for the Update API to specify which fields to apply |
| key | AppKey | | required: true Unique identifier key |
| image_path | string | | URI of where image resides |
| image_type | ImageType | | Image type (see ImageType) |
| access_ports | string | | Comma separated list of protocol:port pairs that the App listens on. Numerical values must be decimal format. i.e. tcp:80,udp:10002,http:443 |
| default_flavor | FlavorKey | | Default flavor for the App, which may be overridden by the AppInst |
| auth_public_key | string | | public key used for authentication |
| command | string | | Command that the container runs to start service |
| annotations | string | | Annotations is a comma separated map of arbitrary key value pairs, for example: key1=val1,key2=val2,key3="val 3" |
| deployment | string | | Deployment type (kubernetes, docker, or vm) |
| deployment_manifest | string | | Deployment manifest is the deployment specific manifest file/config For docker deployment, this can be a docker-compose or docker run file For kubernetes deployment, this can be a kubernetes yaml or helm chart file |
| deployment_generator | string | | Deployment generator target to generate a basic deployment manifest |
| android_package_name | string | | Android package name used to match the App name from the Android package |
| del_opt | DeleteType | | Override actions to Controller |
| configs | ConfigFile | repeated | Customization files passed through to implementing services |
| scale_with_cluster | bool | | Option to run App on all nodes of the cluster |
| internal_ports | bool | | Should this app have access to outside world? |
| revision | string | | Revision can be specified or defaults to current timestamp when app is updated |
| official_fqdn | string | | Official FQDN is the FQDN that the app uses to connect by default |
| md5sum | string | | MD5Sum of the VM-based app image |
| default_shared_volume_size | uint64 | | shared volume size when creating auto cluster |
| auto_prov_policy | string | | (deprecated) Auto provisioning policy name |
| access_type | AccessType | | Access type |
| default_privacy_policy | string | | Privacy policy when creating auto cluster |
| delete_prepare | bool | | Preparing to be deleted |
| auto_prov_policies | string | repeated | Auto provisioning policy names |
| template_delimiter | string | | Delimiter to be used for template parsing, defaults to "[[ ]]" |
| skip_hc_ports | string | | Comma separated list of protocol:port pairs that we should not run health check on Should be configured in case app does not always listen on these ports "all" can be specified if no health check to be run for this app Numerical values must be decimal format. i.e. tcp:80,udp:10002,http:443 |
AppAutoProvPolicy
| Field | Type | Label | Description |
|---|
| app_key | AppKey | | App key |
| auto_prov_policy | string | | Auto provisioning policy name |
AppKey
Application unique key
AppKey uniquely identifies an App
| Field | Type | Label | Description |
|---|
| organization | string | | App developer organization |
| name | string | | App name |
| version | string | | App version |
ConfigFile
ConfigFile
| Field | Type | Label | Description |
|---|
| kind | string | | kind (type) of config, i.e. envVarsYaml, helmCustomizationYaml |
| config | string | | config file contents or URI reference |
AccessType
| Name | Number | Description |
|---|
| ACCESS_TYPE_DEFAULT_FOR_DEPLOYMENT | 0 | Default load balancer or direct based on deployment |
| ACCESS_TYPE_DIRECT | 1 | Direct access with no load balancer |
| ACCESS_TYPE_LOAD_BALANCER | 2 | Access via a load balancer |
DeleteType
DeleteType
DeleteType specifies if AppInst can be auto deleted or not
| Name | Number | Description |
|---|
| NO_AUTO_DELETE | 0 | No autodelete |
| AUTO_DELETE | 1 | Autodelete |
ImageType
ImageType
ImageType specifies image type of an App
| Name | Number | Description |
|---|
| IMAGE_TYPE_UNKNOWN | 0 | Unknown image type |
| IMAGE_TYPE_DOCKER | 1 | Docker container image type compatible either with Docker or Kubernetes |
| IMAGE_TYPE_QCOW | 2 | QCOW2 virtual machine image type |
| IMAGE_TYPE_HELM | 3 | Helm chart is a separate image type |
AppApi
| Method Name | Request Type | Response Type | Description |
|---|
| CreateApp | App | Result | Create Application. Creates a definition for an application instance for Cloudlet deployment. |
| DeleteApp | App | Result | Delete Application. Deletes a definition of an Application instance. Make sure no other application instances exist with that definition. If they do exist, you must delete those Application instances first. |
| UpdateApp | App | Result | Update Application. Updates the definition of an Application instance. |
| ShowApp | App | App stream | Show Applications. Lists all Application definitions managed from the Edge Controller. Any fields specified will be used to filter results. |
| AddAppAutoProvPolicy | AppAutoProvPolicy | Result | |
| RemoveAppAutoProvPolicy | AppAutoProvPolicy | Result | |
Top
appinst.proto
AppInst
Application Instance
AppInst is an instance of an App on a Cloudlet where it is defined by an App plus a ClusterInst key.
Many of the fields here are inherited from the App definition.
| Field | Type | Label | Description |
|---|
| fields | string | repeated | Fields are used for the Update API to specify which fields to apply |
| key | AppInstKey | | required: true Unique identifier key |
| cloudlet_loc | distributed_match_engine.Loc | | Cached location of the cloudlet |
| uri | string | | Base FQDN (not really URI) for the App. See Service FQDN for endpoint access. |
| liveness | Liveness | | Liveness of instance (see Liveness) |
| mapped_ports | distributed_match_engine.AppPort | repeated | For instances accessible via a shared load balancer, defines the external ports on the shared load balancer that map to the internal ports External ports should be appended to the Uri for L4 access. |
| flavor | FlavorKey | | Flavor defining resource requirements |
| state | TrackedState | | Current state of the AppInst on the Cloudlet |
| errors | string | repeated | Any errors trying to create, update, or delete the AppInst on the Cloudlet |
| crm_override | CRMOverride | | Override actions to CRM |
| runtime_info | AppInstRuntime | | AppInst runtime information |
| created_at | distributed_match_engine.Timestamp | | Created at time |
| auto_cluster_ip_access | IpAccess | | IpAccess for auto-clusters. Ignored otherwise. |
| status | StatusInfo | | status is used to reflect progress of creation or other events |
| revision | string | | Revision changes each time the App is updated. Refreshing the App Instance will sync the revision with that of the App |
| force_update | bool | | Force Appinst refresh even if revision number matches App revision number. |
| update_multiple | bool | | Allow multiple instances to be updated at once |
| configs | ConfigFile | repeated | Customization files passed through to implementing services |
| shared_volume_size | uint64 | | shared volume size when creating auto cluster |
| health_check | HealthCheck | | Health Check status |
| privacy_policy | string | | Optional privacy policy name |
| power_state | PowerState | | Power State of the AppInst |
| external_volume_size | uint64 | | Size of external volume to be attached to nodes. This is for the root partition |
| availability_zone | string | | Optional Availability Zone if any |
| vm_flavor | string | | OS node flavor to use |
| opt_res | string | | Optional Resources required by OS flavor if any |
AppInstInfo
AppInstInfo provides information from the Cloudlet Resource Manager about the state of the AppInst on the Cloudlet. Whereas the AppInst defines the intent of instantiating an App on a Cloudlet, the AppInstInfo defines the current state of trying to apply that intent on the physical resources of the Cloudlet.
| Field | Type | Label | Description |
|---|
| fields | string | repeated | Fields are used for the Update API to specify which fields to apply |
| key | AppInstKey | | Unique identifier key |
| notify_id | int64 | | Id of client assigned by server (internal use only) |
| state | TrackedState | | Current state of the AppInst on the Cloudlet |
| errors | string | repeated | Any errors trying to create, update, or delete the AppInst on the Cloudlet |
| runtime_info | AppInstRuntime | | AppInst runtime information |
| status | StatusInfo | | status is used to reflect progress of creation or other events |
| power_state | PowerState | | Power State of the AppInst |
AppInstKey
App Instance Unique Key
AppInstKey uniquely identifies an Application Instance (AppInst) or Application Instance state (AppInstInfo).
| Field | Type | Label | Description |
|---|
| app_key | AppKey | | App key |
| cluster_inst_key | ClusterInstKey | | Cluster instance on which this is instantiated |
AppInstLookup
AppInstLookup is used to generate reverse lookup caches
AppInstMetrics
(TODO) AppInstMetrics provide metrics collected about the application instance on the Cloudlet. They are sent to a metrics collector for analytics. They are not stored in the persistent distributed database, but are stored as a time series in some other database or files.
| Field | Type | Label | Description |
|---|
| something | uint64 | | what goes here? Note that metrics for grpc calls can be done by a prometheus interceptor in grpc, so adding call metrics here may be redundant unless they're needed for billing. |
AppInstRuntime
AppInst Runtime Info
Runtime information of active AppInsts
| Field | Type | Label | Description |
|---|
| container_ids | string | repeated | List of container names |
HealthCheck
Health check status
Health check status gets set by external, or rootLB health check
| Name | Number | Description |
|---|
| HEALTH_CHECK_UNKNOWN | 0 | Health Check is unknown |
| HEALTH_CHECK_FAIL_ROOTLB_OFFLINE | 1 | Health Check failure due to RootLB being offline |
| HEALTH_CHECK_FAIL_SERVER_FAIL | 2 | Health Check failure due to Backend server being unavailable |
| HEALTH_CHECK_OK | 3 | Health Check is ok |
PowerState
Power State
Power State of the AppInst
| Name | Number | Description |
|---|
| POWER_STATE_UNKNOWN | 0 | Unknown |
| POWER_ON_REQUESTED | 1 | Power On Requested |
| POWERING_ON | 2 | Powering On |
| POWER_ON | 3 | Power On |
| POWER_OFF_REQUESTED | 4 | Power Off Requested |
| POWERING_OFF | 5 | Powering Off |
| POWER_OFF | 6 | Power Off |
| REBOOT_REQUESTED | 7 | Reboot Requested |
| REBOOTING | 8 | Rebooting |
| REBOOT | 9 | Reboot |
| POWER_STATE_ERROR | 10 | Error |
AppInstApi
| Method Name | Request Type | Response Type | Description |
|---|
| CreateAppInst | AppInst | Result stream | Create Application Instance. Creates an instance of an App on a Cloudlet where it is defined by an App plus a ClusterInst key. Many of the fields here are inherited from the App definition. |
| DeleteAppInst | AppInst | Result stream | Delete Application Instance. Deletes an instance of the App from the Cloudlet. |
| RefreshAppInst | AppInst | Result stream | Refresh Application Instance. Restarts an App instance with new App settings or image. |
| UpdateAppInst | AppInst | Result stream | Update Application Instance. Updates an Application instance and then refreshes it. |
| ShowAppInst | AppInst | AppInst stream | Show Application Instances. Lists all the Application instances managed by the Edge Controller. Any fields specified will be used to filter results. |
AppInstInfoApi
| Method Name | Request Type | Response Type | Description |
|---|
| ShowAppInstInfo | AppInstInfo | AppInstInfo stream | Show application instances state. |
AppInstMetricsApi
Top
appinstclient.proto
AppInstClient
Client is an AppInst client that called FindCloudlet DME Api
| Field | Type | Label | Description |
|---|
| fields | string | repeated | Fields are used for the Update API to specify which fields to apply |
| client_key | AppInstClientKey | | Unique identifier key |
| location | distributed_match_engine.Loc | | Location of the Client |
| notify_id | int64 | | Id of client assigned by server (internal use only) |
AppInstClientKey
AppKey uniquely identifies an App
| Field | Type | Label | Description |
|---|
| key | AppInstKey | | AppInst Key |
| unique_id | string | | AppInstClient Unique Id |
| unique_id_type | string | | AppInstClient Unique Id Type |
AppInstClientApi
Top
autoprovpolicy.proto
AutoProvCloudlet
AutoProvCloudlet stores the potential cloudlet and location for DME lookup
AutoProvCount
AutoProvCount is used to send potential cloudlet and location counts from DME to Controller
| Field | Type | Label | Description |
|---|
| app_key | AppKey | | Target app |
| cloudlet_key | CloudletKey | | Target cloudlet |
| count | uint64 | | FindCloudlet client count |
| process_now | bool | | Process count immediately |
| deploy_now_key | ClusterInstKey | | Immediately deploy to clusterinst |
AutoProvCounts
AutoProvCounts is used to send potential cloudlet and location counts from DME to Controller
AutoProvInfo
| Field | Type | Label | Description |
|---|
| fields | string | repeated | Fields are used for the Update API to specify which fields to apply |
| key | CloudletKey | | Cloudlet Key |
| notify_id | int64 | | Id of client assigned by server (internal use only) |
| maintenance_state | MaintenanceState | | failover result state |
| completed | string | repeated | Failover actions done if any |
| errors | string | repeated | Errors if any |
AutoProvPolicy
AutoProvPolicy defines the automated provisioning policy
| Field | Type | Label | Description |
|---|
| fields | string | repeated | Fields are used for the Update API to specify which fields to apply |
| key | PolicyKey | | Unique identifier key |
| deploy_client_count | uint32 | | Minimum number of clients within the auto deploy interval to trigger deployment |
| deploy_interval_count | uint32 | | Number of intervals to check before triggering deployment |
| cloudlets | AutoProvCloudlet | repeated | Allowed deployment locations |
| min_active_instances | uint32 | | Minimum number of active instances for High-Availability |
| max_instances | uint32 | | Maximum number of instances (active or not) |
| undeploy_client_count | uint32 | | Number of active clients for the undeploy interval below which trigers undeployment, 0 (default) disables auto undeploy |
| undeploy_interval_count | uint32 | | Number of intervals to check before triggering undeployment |
AutoProvPolicyCloudlet
AutoProvPolicyCloudlet is used to add and remove Cloudlets from the Auto Provisioning Policy
| Field | Type | Label | Description |
|---|
| key | PolicyKey | | Unique policy identifier key |
| cloudlet_key | CloudletKey | | Cloudlet identifier key |
AutoProvPolicyApi
Top
autoscalepolicy.proto
AutoScalePolicy
AutoScalePolicy defines when and how ClusterInsts will have their
nodes scaled up or down.
| Field | Type | Label | Description |
|---|
| fields | string | repeated | Fields are used for the Update API to specify which fields to apply |
| key | PolicyKey | | Unique identifier key |
| min_nodes | uint32 | | Minimum number of cluster nodes |
| max_nodes | uint32 | | Maximum number of cluster nodes |
| scale_up_cpu_thresh | uint32 | | Scale up cpu threshold (percentage 1 to 100) |
| scale_down_cpu_thresh | uint32 | | Scale down cpu threshold (percentage 1 to 100) |
| trigger_time_sec | uint32 | | Trigger time defines how long trigger threshold must be satified in seconds before acting upon it. |
PolicyKey
| Field | Type | Label | Description |
|---|
| organization | string | | Name of the organization for the cluster that this policy will apply to |
| name | string | | Policy name |
AutoScalePolicyApi
Top
cloudlet.proto
Cloudlet
Cloudlet
A Cloudlet is a set of compute resources at a particular location, provided by an Operator.
| Field | Type | Label | Description |
|---|
| fields | string | repeated | Fields are used for the Update API to specify which fields to apply |
| key | CloudletKey | | required: true Unique identifier key |
| location | distributed_match_engine.Loc | | Location of the Cloudlet site |
| ip_support | IpSupport | | Type of IP support provided by Cloudlet (see IpSupport) |
| static_ips | string | | List of static IPs for static IP support |
| num_dynamic_ips | int32 | | Number of dynamic IPs available for dynamic IP support |
| time_limits | OperationTimeLimits | | time limits which override global settings if non-zero |
| errors | string | repeated | Any errors trying to create, update, or delete the Cloudlet. |
| status | StatusInfo | | status is used to reflect progress of creation or other events |
| state | TrackedState | | Current state of the cloudlet |
| crm_override | CRMOverride | | Override actions to CRM |
| deployment_local | bool | | Deploy cloudlet services locally |
| platform_type | PlatformType | | Platform type |
| notify_srv_addr | string | | Address for the CRM notify listener to run on |
| flavor | FlavorKey | | Min system resource requirements for platform |
| physical_name | string | | Physical infrastructure cloudlet name |
| env_var | Cloudlet.EnvVarEntry | repeated | Single Key-Value pair of env var to be passed to CRM |
| container_version | string | | Cloudlet container version |
| config | PlatformConfig | | Platform Config Info |
| res_tag_map | Cloudlet.ResTagMapEntry | repeated | Optional resource to restagtbl key map key values = [gpu, nas, nic] |
| access_vars | Cloudlet.AccessVarsEntry | repeated | Variables required to access cloudlet |
| vm_image_version | string | | MobiledgeX baseimage version where CRM services reside |
| deployment | string | | Deployment type to bring up CRM services (docker, kubernetes) |
| infra_api_access | InfraApiAccess | | Infra Access Type is the type of access available to Infra API Endpoint |
| infra_config | InfraConfig | | Infra specific config |
| chef_client_key | Cloudlet.ChefClientKeyEntry | repeated | Chef client key |
| maintenance_state | MaintenanceState | | State for maintenance |
| override_policy_container_version | bool | | Override container version from policy file |
| vm_pool | string | | VM Pool |
Cloudlet.AccessVarsEntry
Cloudlet.ChefClientKeyEntry
Cloudlet.EnvVarEntry
Cloudlet.ResTagMapEntry
CloudletInfo
CloudletInfo provides information from the Cloudlet Resource Manager about the state of the Cloudlet.
| Field | Type | Label | Description |
|---|
| fields | string | repeated | Fields are used for the Update API to specify which fields to apply |
| key | CloudletKey | | Unique identifier key |
| state | CloudletState | | State of cloudlet |
| notify_id | int64 | | Id of client assigned by server (internal use only) |
| controller | string | | Connected controller unique id |
| os_max_ram | uint64 | | Maximum Ram in MB on the Cloudlet |
| os_max_vcores | uint64 | | Maximum number of VCPU cores on the Cloudlet |
| os_max_vol_gb | uint64 | | Maximum amount of disk in GB on the Cloudlet |
| errors | string | repeated | Any errors encountered while making changes to the Cloudlet |
| flavors | FlavorInfo | repeated | Supported flavors by the Cloudlet |
| status | StatusInfo | | status is used to reflect progress of creation or other events |
| container_version | string | | Cloudlet container version |
| availability_zones | OSAZone | repeated | Availability Zones if any |
| os_images | OSImage | repeated | Local Images availble to cloudlet |
| controller_cache_received | bool | | Indicates all controller data has been sent to CRM |
| maintenance_state | MaintenanceState | | State for maintenance |
CloudletKey
Cloudlet unique key
CloudletKey uniquely identifies a Cloudlet.
| Field | Type | Label | Description |
|---|
| organization | string | | Organization of the cloudlet site |
| name | string | | Name of the cloudlet |
CloudletManifest
| Field | Type | Label | Description |
|---|
| manifest | string | | Manifest to bringup cloudlet VM and services. |
CloudletMetrics
(TODO) CloudletMetrics provide metrics collected about the Cloudlet. They are sent to a metrics collector for analytics. They are not stored in the persistent distributed database, but are stored as a time series in some other database or files.
| Field | Type | Label | Description |
|---|
| foo | uint64 | | what goes here? |
CloudletProps
CloudletProps.PropertiesEntry
CloudletResMap
optional resource input consists of a resource specifier and clouldkey name
CloudletResMap.MappingEntry
FlavorInfo
Flavor details from the Cloudlet
| Field | Type | Label | Description |
|---|
| name | string | | Name of the flavor on the Cloudlet |
| vcpus | uint64 | | Number of VCPU cores on the Cloudlet |
| ram | uint64 | | Ram in MB on the Cloudlet |
| disk | uint64 | | Amount of disk in GB on the Cloudlet |
| prop_map | FlavorInfo.PropMapEntry | repeated | OS Flavor Properties, if any |
FlavorInfo.PropMapEntry
FlavorMatch
InfraConfig
Infra specific configuration used for Cloudlet deployments
| Field | Type | Label | Description |
|---|
| external_network_name | string | | Infra specific external network name |
| flavor_name | string | | Infra specific flavor name |
OSAZone
OSImage
| Field | Type | Label | Description |
|---|
| name | string | | image name |
| tags | string | | optional tags present on image |
| properties | string | | image properties/metadata |
| disk_format | string | | format qcow2, img, etc |
OperationTimeLimits
Operation time limits
Time limits for cloudlet create, update and delete operations
| Field | Type | Label | Description |
|---|
| create_cluster_inst_timeout | int64 | | override default max time to create a cluster instance (duration) |
| update_cluster_inst_timeout | int64 | | override default max time to update a cluster instance (duration) |
| delete_cluster_inst_timeout | int64 | | override default max time to delete a cluster instance (duration) |
| create_app_inst_timeout | int64 | | override default max time to create an app instance (duration) |
| update_app_inst_timeout | int64 | | override default max time to update an app instance (duration) |
| delete_app_inst_timeout | int64 | | override default max time to delete an app instance (duration) |
Platform specific configuration required for Cloudlet management
| Field | Type | Label | Description |
|---|
| container_registry_path | string | | Path to Docker registry holding edge-cloud image |
| cloudlet_vm_image_path | string | | Path to platform base image |
| notify_ctrl_addrs | string | | Address of controller notify port (can be multiple of these) |
| vault_addr | string | | Vault address |
| tls_cert_file | string | | TLS cert file |
| tls_key_file | string | | TLS key file |
| tls_ca_file | string | | TLS ca file |
| env_var | PlatformConfig.EnvVarEntry | repeated | Environment variables |
| platform_tag | string | | Tag of edge-cloud image |
| test_mode | bool | | Internal Test flag |
| span | string | | Span string |
| cleanup_mode | bool | | Internal cleanup flag |
| region | string | | Region |
| commercial_certs | bool | | Get certs from vault or generate your own for the root load balancer |
| use_vault_certs | bool | | Use Vault certs for internal TLS communication |
| use_vault_cas | bool | | Use Vault CAs to authenticate TLS communication |
| app_dns_root | string | | App domain name root |
| chef_server_path | string | | Path to Chef Server |
| chef_client_interval | int32 | | Chef client interval |
| deployment_tag | string | | Deployment Tag |
PlatformConfig.EnvVarEntry
PropertyInfo
| Field | Type | Label | Description |
|---|
| name | string | | Name of the property |
| description | string | | Description of the property |
| value | string | | Default value of the property |
| secret | bool | | Is the property a secret value, will be hidden |
| mandatory | bool | | Is the property mandatory |
| internal | bool | | Is the property internal, not to be set by Operator |
CloudletState
CloudletState is the state of the Cloudlet.
| Name | Number | Description |
|---|
| CLOUDLET_STATE_UNKNOWN | 0 | Unknown |
| CLOUDLET_STATE_ERRORS | 1 | Create/Delete/Update encountered errors (see Errors field of CloudletInfo) |
| CLOUDLET_STATE_READY | 2 | Cloudlet is created and ready |
| CLOUDLET_STATE_OFFLINE | 3 | Cloudlet is offline (unreachable) |
| CLOUDLET_STATE_NOT_PRESENT | 4 | Cloudlet is not present |
| CLOUDLET_STATE_INIT | 5 | Cloudlet is initializing |
| CLOUDLET_STATE_UPGRADE | 6 | Cloudlet is upgrading |
| CLOUDLET_STATE_NEED_SYNC | 7 | Cloudlet needs data to synchronize |
InfraApiAccess
Infra API Access
InfraApiAccess is the type of access available to Infra API endpoint
| Name | Number | Description |
|---|
| DIRECT_ACCESS | 0 | Infra API endpoint is accessible from public network |
| RESTRICTED_ACCESS | 1 | Infra API endpoint is not accessible from public network |
Platform Type
PlatformType is the supported list of cloudlet types
| Name | Number | Description |
|---|
| PLATFORM_TYPE_FAKE | 0 | Fake Cloudlet |
| PLATFORM_TYPE_DIND | 1 | DIND Cloudlet |
| PLATFORM_TYPE_OPENSTACK | 2 | Openstack Cloudlet |
| PLATFORM_TYPE_AZURE | 3 | Azure Cloudlet |
| PLATFORM_TYPE_GCP | 4 | GCP Cloudlet |
| PLATFORM_TYPE_EDGEBOX | 5 | Edgebox Cloudlet |
| PLATFORM_TYPE_FAKEINFRA | 6 | Fake Infra Cloudlet |
| PLATFORM_TYPE_VSPHERE | 7 | VMWare VSphere (ESXi) |
| PLATFORM_TYPE_AWS | 8 | AWS Cloudlet |
| PLATFORM_TYPE_VM_POOL | 9 | VM Pool Cloudlet |
CloudletApi
| Method Name | Request Type | Response Type | Description |
|---|
| CreateCloudlet | Cloudlet | Result stream | Create Cloudlet. Sets up Cloudlet services on the Operator's compute resources, and integrated as part of MobiledgeX edge resource portfolio. These resources are managed from the Edge Controller. |
| DeleteCloudlet | Cloudlet | Result stream | Delete Cloudlet. Removes the Cloudlet services where they are no longer managed from the Edge Controller. |
| UpdateCloudlet | Cloudlet | Result stream | Update Cloudlet. Updates the Cloudlet configuration and manages the upgrade of Cloudlet services. |
| ShowCloudlet | Cloudlet | Cloudlet stream | Show Cloudlets. Lists all the cloudlets managed from Edge Controller. |
| GetCloudletManifest | Cloudlet | CloudletManifest | Get Cloudlet Manifest. Shows deployment manifest required to setup cloudlet |
| GetCloudletProps | CloudletProps | CloudletProps | Get Cloudlet Properties. Shows all the infra properties used to setup cloudlet |
| AddCloudletResMapping | CloudletResMap | Result | Add Optional Resource tag table |
| RemoveCloudletResMapping | CloudletResMap | Result | Add Optional Resource tag table |
| FindFlavorMatch | FlavorMatch | FlavorMatch | Discover if flavor produces a matching platform flavor |
CloudletInfoApi
CloudletMetricsApi
Top
cloudletpool.proto
CloudletPool
CloudletPool defines a pool of Cloudlets that have restricted access.
| Field | Type | Label | Description |
|---|
| fields | string | repeated | Fields are used for the Update API to specify which fields to apply |
| key | CloudletPoolKey | | CloudletPool key |
| cloudlets | string | repeated | Cloudlets part of the pool |
CloudletPoolKey
CloudletPool unique key
CloudletPoolKey uniquely identifies a CloudletPool.
| Field | Type | Label | Description |
|---|
| organization | string | | Name of the organization this pool belongs to |
| name | string | | CloudletPool Name |
CloudletPoolMember
CloudletPoolMember is used to add and remove a Cloudlet from a CloudletPool
CloudletPoolApi
Top
cluster.proto
ClusterKey
ClusterKey uniquely identifies a Cluster.
| Field | Type | Label | Description |
|---|
| name | string | | Cluster name |
Top
clusterinst.proto
ClusterInst
Cluster Instance
ClusterInst is an instance of a Cluster on a Cloudlet.
It is defined by a Cluster, Cloudlet, and Developer key.
| Field | Type | Label | Description |
|---|
| fields | string | repeated | Fields are used for the Update API to specify which fields to apply |
| key | ClusterInstKey | | required: true Unique key |
| flavor | FlavorKey | | Flavor of the k8s node |
| liveness | Liveness | | Liveness of instance (see Liveness) |
| auto | bool | | Auto is set to true when automatically created by back-end (internal use only) |
| state | TrackedState | | State of the cluster instance |
| errors | string | repeated | Any errors trying to create, update, or delete the ClusterInst on the Cloudlet. |
| crm_override | CRMOverride | | Override actions to CRM |
| ip_access | IpAccess | | IP access type (RootLB Type) |
| allocated_ip | string | | Allocated IP for dedicated access |
| node_flavor | string | | Cloudlet specific node flavor |
| deployment | string | | Deployment type (kubernetes or docker) |
| num_masters | uint32 | | Number of k8s masters (In case of docker deployment, this field is not required) |
| num_nodes | uint32 | | Number of k8s nodes (In case of docker deployment, this field is not required) |
| status | StatusInfo | | status is used to reflect progress of creation or other events |
| external_volume_size | uint64 | | Size of external volume to be attached to nodes. This is for the root partition |
| auto_scale_policy | string | | Auto scale policy name |
| availability_zone | string | | Optional Resource AZ if any |
| image_name | string | | Optional resource specific image to launch |
| reservable | bool | | If ClusterInst is reservable |
| reserved_by | string | | For reservable MobiledgeX ClusterInsts, the current developer tenant |
| shared_volume_size | uint64 | | Size of an optional shared volume to be mounted on the master |
| privacy_policy | string | | Optional privacy policy name |
| master_node_flavor | string | | Generic flavor for k8s master VM when worker nodes > 0 |
| skip_crm_cleanup_on_failure | bool | | Prevents cleanup of resources on failure within CRM, used for diagnostic purposes |
| opt_res | string | | Optional Resources required by OS flavor if any |
ClusterInstInfo
ClusterInstInfo provides information from the Cloudlet Resource Manager about the state of the ClusterInst on the Cloudlet. Whereas the ClusterInst defines the intent of instantiating a Cluster on a Cloudlet, the ClusterInstInfo defines the current state of trying to apply that intent on the physical resources of the Cloudlet.
| Field | Type | Label | Description |
|---|
| fields | string | repeated | Fields are used for the Update API to specify which fields to apply |
| key | ClusterInstKey | | Unique identifier key |
| notify_id | int64 | | Id of client assigned by server (internal use only) |
| state | TrackedState | | State of the cluster instance |
| errors | string | repeated | Any errors trying to create, update, or delete the ClusterInst on the Cloudlet. |
| status | StatusInfo | | status is used to reflect progress of creation or other events |
ClusterInstKey
Cluster Instance unique key
ClusterInstKey uniquely identifies a Cluster Instance (ClusterInst) or Cluster Instance state (ClusterInstInfo).
| Field | Type | Label | Description |
|---|
| cluster_key | ClusterKey | | Name of Cluster |
| cloudlet_key | CloudletKey | | Name of Cloudlet on which the Cluster is instantiated |
| organization | string | | Name of Developer organization that this cluster belongs to |
ClusterInstApi
| Method Name | Request Type | Response Type | Description |
|---|
| CreateClusterInst | ClusterInst | Result stream | Create Cluster Instance. Creates an instance of a Cluster on a Cloudlet, defined by a Cluster Key and a Cloudlet Key. ClusterInst is a collection of compute resources on a Cloudlet on which AppInsts are deployed. |
| DeleteClusterInst | ClusterInst | Result stream | Delete Cluster Instance. Deletes an instance of a Cluster deployed on a Cloudlet. |
| UpdateClusterInst | ClusterInst | Result stream | Update Cluster Instance. Updates an instance of a Cluster deployed on a Cloudlet. |
| ShowClusterInst | ClusterInst | ClusterInst stream | Show Cluster Instances. Lists all the cluster instances managed by Edge Controller. |
ClusterInstInfoApi
Top
common.proto
StatusInfo
Status Information
Used to track status of create/delete/update for resources that are being modified
by the controller via the CRM. Tasks are the high level jobs that are to be completed.
Steps are work items within a task. Within the clusterinst and appinst objects this
is converted to a string
CRMOverride
Overrides default CRM behaviour
CRMOverride can be applied to commands that issue requests to the CRM.
It should only be used by administrators when bugs have caused the
Controller and CRM to get out of sync. It allows commands from the
Controller to ignore errors from the CRM, or ignore the CRM completely
(messages will not be sent to CRM).
| Name | Number | Description |
|---|
| NO_OVERRIDE | 0 | No override |
| IGNORE_CRM_ERRORS | 1 | Ignore errors from CRM |
| IGNORE_CRM | 2 | Ignore CRM completely (does not inform CRM of operation) |
| IGNORE_TRANSIENT_STATE | 3 | Ignore Transient State (only admin should use if CRM crashed) |
| IGNORE_CRM_AND_TRANSIENT_STATE | 4 | Ignore CRM and Transient State |
IpAccess
IpAccess Options
IpAccess indicates the type of RootLB that Developer requires for their App
| Name | Number | Description |
|---|
| IP_ACCESS_UNKNOWN | 0 | Unknown IP access |
| IP_ACCESS_DEDICATED | 1 | Dedicated RootLB |
| IP_ACCESS_SHARED | 3 | Shared RootLB |
IpSupport
Type of public IP support
Static IP support indicates a set of static public IPs are available for use, and managed by the Controller. Dynamic indicates the Cloudlet uses a DHCP server to provide public IP addresses, and the controller has no control over which IPs are assigned.
| Name | Number | Description |
|---|
| IP_SUPPORT_UNKNOWN | 0 | Unknown IP support |
| IP_SUPPORT_STATIC | 1 | Static IP addresses are provided to and managed by Controller |
| IP_SUPPORT_DYNAMIC | 2 | IP addresses are dynamically provided by an Operator's DHCP server |
Liveness
Liveness Options
Liveness indicates if an object was created statically via an external API call, or dynamically via an internal algorithm.
| Name | Number | Description |
|---|
| LIVENESS_UNKNOWN | 0 | Unknown liveness |
| LIVENESS_STATIC | 1 | Object managed by external entity |
| LIVENESS_DYNAMIC | 2 | Object managed internally |
| LIVENESS_AUTOPROV | 3 | Object created by Auto Provisioning, treated like Static except when deleting App |
MaintenanceState
Cloudlet Maintenance States
Maintenance allows for planned downtimes of Cloudlets.
These states involve message exchanges between the Controller,
the AutoProv service, and the CRM. Certain states are only set
by certain actors.
| Name | Number | Description |
|---|
| NORMAL_OPERATION | 0 | Normal operational state |
| MAINTENANCE_START | 1 | Request start of maintenance |
| FAILOVER_REQUESTED | 2 | Trigger failover for any HA AppInsts |
| FAILOVER_DONE | 3 | Failover done |
| FAILOVER_ERROR | 4 | Some errors encountered during maintenance failover |
| MAINTENANCE_START_NO_FAILOVER | 5 | Request start of maintenance without AutoProv failover |
| CRM_REQUESTED | 6 | Request CRM to transition to maintenance |
| CRM_UNDER_MAINTENANCE | 7 | CRM request done and under maintenance |
| CRM_ERROR | 8 | CRM failed to go into maintenance |
| UNDER_MAINTENANCE | 31 | Under maintenance |
TrackedState
Tracked States
TrackedState is used to track the state of an object on a remote node,
i.e. track the state of a ClusterInst object on the CRM (Cloudlet).
| Name | Number | Description |
|---|
| TRACKED_STATE_UNKNOWN | 0 | Unknown state |
| NOT_PRESENT | 1 | Not present (does not exist) |
| CREATE_REQUESTED | 2 | Create requested |
| CREATING | 3 | Creating |
| CREATE_ERROR | 4 | Create error |
| READY | 5 | Ready |
| UPDATE_REQUESTED | 6 | Update requested |
| UPDATING | 7 | Updating |
| UPDATE_ERROR | 8 | Update error |
| DELETE_REQUESTED | 9 | Delete requested |
| DELETING | 10 | Deleting |
| DELETE_ERROR | 11 | Delete error |
| DELETE_PREPARE | 12 | Delete prepare (extra state used by controller to block other changes) |
| CRM_INITOK | 13 | CRM INIT OK |
| CREATING_DEPENDENCIES | 14 | Creating dependencies (state used to tracked dependent object change progress) |
Top
controller.proto
Controller
A Controller is a service that manages the edge-cloud data and controls other edge-cloud micro-services.
| Field | Type | Label | Description |
|---|
| fields | string | repeated | Fields are used for the Update API to specify which fields to apply |
| key | ControllerKey | | Unique identifier key |
| build_master | string | | Build Master Version |
| build_head | string | | Build Head Version |
| build_author | string | | Build Author |
| hostname | string | | Hostname |
ControllerKey
ControllerKey uniquely defines a Controller
| Field | Type | Label | Description |
|---|
| addr | string | | external API address |
ControllerApi
| Method Name | Request Type | Response Type | Description |
|---|
| ShowController | Controller | Controller stream | Show Controllers |
Top
debug.proto
DebugData
DebugReply
| Field | Type | Label | Description |
|---|
| node | NodeKey | | Service node identifier (see NodeShow) |
| output | string | | Debug output, if any |
| id | uint64 | | Id used internally |
DebugRequest
DebugRequest. Keep everything in one struct to make it easy to send commands without having to change the code.
| Field | Type | Label | Description |
|---|
| node | NodeKey | | Service node identifier (see NodeShow) |
| levels | string | | Comma separated list of debug level names: etcd,api,notify,dmereq,locapi,infra,metrics,upgrade,info,sampled |
| cmd | string | | Debug command (use "help" to see available commands) |
| pretty | bool | | if possible, make output pretty |
| id | uint64 | | Id used internally |
| args | string | | Additional arguments for cmd |
| timeout | int64 | | custom timeout (duration, defaults to 10s) |
DebugApi
Top
device.proto
Device
Device represents a device on the MobiledgeX platform
We record when this device first showed up on our platform
DeviceData
| Field | Type | Label | Description |
|---|
| devices | Device | repeated | |
DeviceKey
DeviceKey is an identifier for a given device on the MobiledgeX platform
It is defined by a unique id and unique id type
And example of such a device is a MEL device that hosts several applications
| Field | Type | Label | Description |
|---|
| unique_id_type | string | | Type of unique ID provided by the client |
| unique_id | string | | Unique identification of the client device or user. May be overridden by the server. |
DeviceReport
DeviceReport is a reporting message. It takes a begining and end time
for the report
DeviceApi
Top
exec.proto
CloudletMgmtNode
| Field | Type | Label | Description |
|---|
| type | string | | Type of Cloudlet Mgmt Node |
| name | string | | Name of Cloudlet Mgmt Node |
ExecRequest
ExecRequest is a common struct for enabling a connection to execute some work on a container.
| Field | Type | Label | Description |
|---|
| app_inst_key | AppInstKey | | Target AppInst |
| container_id | string | | ContainerId is the name or ID of the target container, if applicable |
| offer | string | | Offer |
| answer | string | | Answer |
| err | string | | Any error message |
| cmd | RunCmd | | Command to run (one of) |
| log | ShowLog | | Show log (one of) |
| console | RunVMConsole | | Console (one of) |
| timeout | int64 | | Timeout |
| access_url | string | | Access URL |
| edge_turn_addr | string | | EdgeTurn Server Address |
RunCmd
RunVMConsole
| Field | Type | Label | Description |
|---|
| url | string | | VM Console URL |
ShowLog
| Field | Type | Label | Description |
|---|
| since | string | | Show logs since either a duration ago (5s, 2m, 3h) or a timestamp (RFC3339) |
| tail | int32 | | Show only a recent number of lines |
| timestamps | bool | | Show timestamps |
| follow | bool | | Stream data |
ExecApi
Top
flavor.proto
Flavor
Flavors define the compute, memory, and storage capacity of computing instances.
To put it simply, a flavor is an available hardware configuration for a server.
It defines the size of a virtual server that can be launched.
| Field | Type | Label | Description |
|---|
| fields | string | repeated | Fields are used for the Update API to specify which fields to apply |
| key | FlavorKey | | Unique key for the new flavor. |
| ram | uint64 | | RAM in megabytes |
| vcpus | uint64 | | Number of virtual CPUs |
| disk | uint64 | | Amount of disk space in gigabytes |
| opt_res_map | Flavor.OptResMapEntry | repeated | Optional Resources request, key = [gpu, nas, nic] gpu kinds: [gpu, vgpu, pci] form: $resource=$kind:[$alias]$count ex: optresmap=gpu=vgpus:nvidia-63:1 |
Flavor.OptResMapEntry
FlavorKey
Flavor
FlavorKey uniquely identifies a Flavor.
| Field | Type | Label | Description |
|---|
| name | string | | Flavor name |
FlavorApi
Top
metric.proto
Metric
Metric is an entry/point in a time series of values for Analytics/Billing.
| Field | Type | Label | Description |
|---|
| name | string | | Metric name |
| timestamp | google.protobuf.Timestamp | | Timestamp when the metric was captured |
| tags | MetricTag | repeated | Tags associated with the metric for searching/filtering |
| vals | MetricVal | repeated | Values associated with the metric |
MetricTag
MetricTag is used as a tag or label to look up the metric, beyond just the name of the metric.
| Field | Type | Label | Description |
|---|
| name | string | | Metric tag name |
| val | string | | Metric tag value |
MetricVal
MetricVal is a value associated with the metric.
Top
node.proto
Node
Node defines a DME (distributed matching engine) or CRM (cloudlet resource manager) instance.
| Field | Type | Label | Description |
|---|
| fields | string | repeated | Fields are used for the Update API to specify which fields to apply |
| key | NodeKey | | Unique identifier key |
| notify_id | int64 | | Id of client assigned by server (internal use only) |
| build_master | string | | Build Master Version |
| build_head | string | | Build Head Version |
| build_author | string | | Build Author |
| hostname | string | | Hostname |
| container_version | string | | Docker edge-cloud container version which node instance use |
| internal_pki | string | | Internal PKI Config |
NodeData
| Field | Type | Label | Description |
|---|
| nodes | Node | repeated | |
NodeKey
NodeKey uniquely identifies a DME or CRM node
| Field | Type | Label | Description |
|---|
| name | string | | Name or hostname of node |
| type | string | | Node type |
| cloudlet_key | CloudletKey | | Cloudlet on which node is running, or is associated with |
| region | string | | Region the node is in |
NodeApi
| Method Name | Request Type | Response Type | Description |
|---|
| ShowNode | Node | Node stream | Show all Nodes connected to all Controllers |
Top
notice.proto
Notice is the message used by the notify protocol to communicate and coordinate internally between different Mobiledgex services. For details on the notify protocol, see the "MEX Cloud Service Interactions" confluence article.
In general, the protocol is used to synchronize state from one service to another. The protocol is fairly symmetric, with different state being synchronized both from server to client and client to server.
Notice
Notice.TagsEntry
NoticeAction
NoticeAction denotes what kind of action this notification is for.
| Name | Number | Description |
|---|
| NONE | 0 | No action |
| UPDATE | 1 | Update the object |
| DELETE | 2 | Delete the object |
| VERSION | 3 | Version exchange negotitation message |
| SENDALL_END | 4 | Initial send all finished message |
NotifyApi
| Method Name | Request Type | Response Type | Description |
|---|
| StreamNotice | Notice stream | Notice stream | Bidrectional stream for exchanging data between controller and DME/CRM |
Top
operatorcode.proto
OperatorCode
OperatorCode maps a carrier code to an Operator organization name
| Field | Type | Label | Description |
|---|
| code | string | | MCC plus MNC code, or custom carrier code designation. |
| organization | string | | Operator Organization name |
OperatorCodeApi
| Method Name | Request Type | Response Type | Description |
|---|
| CreateOperatorCode | OperatorCode | Result | Create Operator Code. Create a code for an Operator. |
| DeleteOperatorCode | OperatorCode | Result | Delete Operator Code. Delete a code for an Operator. |
| ShowOperatorCode | OperatorCode | OperatorCode stream | Show Operator Code. Show Codes for an Operator. |
Top
org.proto
Organization
| Field | Type | Label | Description |
|---|
| name | string | | Organization name |
OrganizationData
OrganizationApi
| Method Name | Request Type | Response Type | Description |
|---|
| OrganizationInUse | Organization | Result | Check if an Organization is in use. |
Top
privacypolicy.proto
OutboundSecurityRule
| Field | Type | Label | Description |
|---|
| protocol | string | | tcp, udp, icmp |
| port_range_min | uint32 | | TCP or UDP port range start |
| port_range_max | uint32 | | TCP or UDP port range end |
| remote_cidr | string | | remote CIDR X.X.X.X/X |
PrivacyPolicy
PrivacyPolicy defines security restrictions for cluster instances
nodes scaled up or down.
| Field | Type | Label | Description |
|---|
| fields | string | repeated | Fields are used for the Update API to specify which fields to apply |
| key | PolicyKey | | Unique identifier key |
| outbound_security_rules | OutboundSecurityRule | repeated | list of outbound security rules for whitelisting traffic |
PrivacyPolicyApi
Top
refs.proto
AppInstRefs
AppInstRefs.InstsEntry
CloudletRefs
CloudletRefs track used resources and Clusters instantiated on a Cloudlet. Used resources are compared against max resources for a Cloudlet to determine if resources are available for a new Cluster to be instantiated on the Cloudlet.
CloudletRefs.OptResUsedMapEntry
CloudletRefs.RootLbPortsEntry
ClusterRefs
ClusterRefs track used resources within a ClusterInst. Each AppInst specifies a set of required resources (Flavor), so tracking resources used by Apps within a Cluster is necessary to determine if enough resources are available for another AppInst to be instantiated on a ClusterInst.
| Field | Type | Label | Description |
|---|
| key | ClusterInstKey | | Cluster Instance key |
| apps | AppKey | repeated | Apps instances in the Cluster Instance |
| used_ram | uint64 | | Used RAM in MB |
| used_vcores | uint64 | | Used VCPU cores |
| used_disk | uint64 | | Used disk in GB |
AppInstRefsApi
| Method Name | Request Type | Response Type | Description |
|---|
| ShowAppInstRefs | AppInstRefs | AppInstRefs stream | Show AppInstRefs (debug only) |
CloudletRefsApi
This API should be admin-only
| Method Name | Request Type | Response Type | Description |
|---|
| ShowCloudletRefs | CloudletRefs | CloudletRefs stream | Show CloudletRefs (debug only) |
ClusterRefsApi
| Method Name | Request Type | Response Type | Description |
|---|
| ShowClusterRefs | ClusterRefs | ClusterRefs stream | Show ClusterRefs (debug only) |
Top
restagtable.proto
ResTagTable
ResTagTable.TagsEntry
ResTagTableKey
| Field | Type | Label | Description |
|---|
| name | string | | Resource Table Name |
| organization | string | | Operator organization of the cloudlet site. |
OptResNames
| Name | Number | Description |
|---|
| GPU | 0 | |
| NAS | 1 | |
| NIC | 2 | |
ResTagTableApi
This API should be admin-only
Top
result.proto
Result
Result is a generic object for returning the result of an API call. In general, result is not used. The error value returned by the GRPC API call is used instead.
| Field | Type | Label | Description |
|---|
| message | string | | Message, may be success or failure message |
| code | int32 | | Error code, 0 indicates success, non-zero indicates failure (not implemented) |
Top
settings.proto
Settings
Global settings
| Field | Type | Label | Description |
|---|
| fields | string | repeated | Fields are used for the Update API to specify which fields to apply |
| shepherd_metrics_collection_interval | int64 | | Shepherd metrics collection interval for k8s and docker appInstances (duration) |
| shepherd_alert_evaluation_interval | int64 | | Shepherd alert evaluation interval for k8s and docker appInstances (duration) |
| shepherd_health_check_retries | int32 | | Number of times Shepherd Health Check fails before we mark appInst down |
| shepherd_health_check_interval | int64 | | Health Checking probing frequency (duration) |
| auto_deploy_interval_sec | double | | Auto Provisioning Stats push and analysis interval (seconds) |
| auto_deploy_offset_sec | double | | Auto Provisioning analysis offset from interval (seconds) |
| auto_deploy_max_intervals | uint32 | | Auto Provisioning Policy max allowed intervals |
| create_app_inst_timeout | int64 | | Create AppInst timeout (duration) |
| update_app_inst_timeout | int64 | | Update AppInst timeout (duration) |
| delete_app_inst_timeout | int64 | | Delete AppInst timeout (duration) |
| create_cluster_inst_timeout | int64 | | Create ClusterInst timeout (duration) |
| update_cluster_inst_timeout | int64 | | Update ClusterInst timeout (duration) |
| delete_cluster_inst_timeout | int64 | | Delete ClusterInst timeout (duration) |
| master_node_flavor | string | | Default flavor for k8s master VM and > 0 workers |
| load_balancer_max_port_range | int32 | | Max IP Port range when using a load balancer |
| max_tracked_dme_clients | int32 | | Max DME clients to be tracked at the same time. |
| chef_client_interval | int32 | | Default chef client interval (duration) |
| influx_db_metrics_retention | int64 | | Default influxDB metrics retention policy (duration) |
| cloudlet_maintenance_timeout | int32 | | Default Cloudlet Maintenance timeout (used twice for AutoProv and Cloudlet) |
| update_vm_pool_timeout | int64 | | Update VM pool timeout (duration) |
SettingsApi
Top
version.proto
VersionHash
Below enum lists hashes as well as corresponding versions
| Name | Number | Description |
|---|
| HASH_d41d8cd98f00b204e9800998ecf8427e | 0 | |
| HASH_d4ca5418a77d22d968ce7a2afc549dfe | 9 | interim versions deleted |
| HASH_7848d42e3a2eaf36e53bbd3af581b13a | 10 | |
| HASH_f31b7a9d7e06f72107e0ab13c708704e | 11 | |
| HASH_03fad51f0343d41f617329151f474d2b | 12 | |
| HASH_7d32a983fafc3da768e045b1dc4d5f50 | 13 | |
| HASH_747c14bdfe2043f09d251568e4a722c6 | 14 | |
| HASH_c7fb20f545a5bc9869b00bb770753c31 | 15 | |
| HASH_83cd5c44b5c7387ebf7d055e7345ab42 | 16 | |
| HASH_d8a4e697d0d693479cfd9c1c523d7e06 | 17 | |
| HASH_e8360aa30f234ecefdfdb9fb2dc79c20 | 18 | |
| HASH_c53c7840d242efc7209549a36fcf9e04 | 19 | |
| HASH_1a57396698c4ade15f0579c9f5714cd6 | 20 | |
Top
vmpool.proto
VMNetInfo
| Field | Type | Label | Description |
|---|
| external_ip | string | | External IP |
| internal_ip | string | | Internal IP |
VMPool
VMPool defines a pool of VMs to be part of a Cloudlet
| Field | Type | Label | Description |
|---|
| fields | string | repeated | Fields are used for the Update API to specify which fields to apply |
| key | VMPoolKey | | VMPool Key |
| vms | VM | repeated | list of VMs to be part of VM pool |
| state | TrackedState | | Current state of the VM pool |
| errors | string | repeated | Any errors trying to add/remove VM to/from VM Pool |
| status | StatusInfo | | status is used to reflect progress of creation or other events |
| crm_override | CRMOverride | | Override actions to CRM |
VMPoolInfo
VMPoolInfo is used to manage VM pool from Cloudlet
| Field | Type | Label | Description |
|---|
| fields | string | repeated | Fields are used for the Update API to specify which fields to apply |
| key | VMPoolKey | | Unique identifier key |
| notify_id | int64 | | Id of client assigned by server (internal use only) |
| vms | VM | repeated | list of VMs |
| state | TrackedState | | Current state of the VM pool on the Cloudlet |
| errors | string | repeated | Any errors trying to add/remove VM to/from VM Pool |
| status | StatusInfo | | status is used to reflect progress of creation or other events |
VMPoolKey
VMPool unique key
VMPoolKey uniquely identifies a VMPool.
| Field | Type | Label | Description |
|---|
| organization | string | | Organization of the vmpool |
| name | string | | Name of the vmpool |
VMPoolMember
VMPoolMember is used to add and remove VM from VM Pool
| Field | Type | Label | Description |
|---|
| key | VMPoolKey | | VMPool key |
| vm | VM | | VM part of VM Pool |
| crm_override | CRMOverride | | Override actions to CRM |
VMSpec
VMSpec defines the specification of VM required by CRM
| Field | Type | Label | Description |
|---|
| internal_name | string | | VM internal name |
| external_network | bool | | VM has external network defined or not |
| internal_network | bool | | VM has internal network defined or not |
| flavor | Flavor | | VM flavor |
VMAction
VM Action
VMAction is the action to be performed on VM Pool
| Name | Number | Description |
|---|
| VM_ACTION_DONE | 0 | Done performing action |
| VM_ACTION_ALLOCATE | 1 | Allocate VMs from VM Pool |
| VM_ACTION_RELEASE | 2 | Release VMs from VM Pool |
VMState
VM State
VMState is the state of the VM
| Name | Number | Description |
|---|
| VM_FREE | 0 | VM is free to use |
| VM_IN_PROGRESS | 1 | VM is in progress |
| VM_IN_USE | 2 | VM is in use |
| VM_ADD | 3 | Add VM |
| VM_REMOVE | 4 | Remove VM |
| VM_UPDATE | 5 | Update VM |
| VM_FORCE_FREE | 6 | Forcefully free a VM, to be used at user's discretion |
VMPoolApi
| Method Name | Request Type | Response Type | Description |
|---|
| CreateVMPool | VMPool | Result | Create VMPool. Creates VM pool which will have VMs defined. |
| DeleteVMPool | VMPool | Result | Delete VMPool. Deletes VM pool given that none of VMs part of this pool is used. |
| UpdateVMPool | VMPool | Result | Update VMPool. Updates a VM pool's VMs. |
| ShowVMPool | VMPool | VMPool stream | Show VMPools. Lists all the VMs part of the VM pool. |
| AddVMPoolMember | VMPoolMember | Result | Add VMPoolMember. Adds a VM to existing VM Pool. |
| RemoveVMPoolMember | VMPoolMember | Result | Remove VMPoolMember. Removes a VM from existing VM Pool. |
Scalar Value Types
| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
|---|
| double | | double | double | float | float64 | double | float | Float |
| float | | float | float | float | float32 | float | float | Float |
| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
| uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
| sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass |
| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |