Get desktop application:
View/edit binary Protocol Buffers messages
TODO: merge ProcessCollector service into ModuleDeployer, add new gRPC(id,nodeName) register
A gRPC bi-directional streaming RPC that connects between Agents and API Server. Agents would initiate the connect, once connected, agent reports its ID, and API Server maintains per-agent state, and requests eBPF+WASM data collection modules to be deployed.
The ID of the module being deployed.
This field is set only in the first message sent from agent to API Server.
The actual state of the deployment.
A description for the receiver to figure out what's going on. It could be an explanation of the status, or other error situations.
A unique ID assigned to the module
Describe a complete eBPF+WASM module.
The desired state for this module. UNDEPLOY means this module should be undeployed, if it's already deployed, or no-op if it's not deployed. DEPLOY means this module should be deployed, if it's not deployed yet, or no-op if it's already deployed.
Uniquely identifies an agent that connect with API Server.
Used in:
A uuid assigned to the running agent process.
The ID of the running Agent Pod.
The name of the pod that runs this agent.
Used to describe the state of a agent.
Agent connected to API Server, and everything seems working as expected.
gRPC streaming channel between agent and API Server is broken. But the agent might reconnect with API Server later.
The agent's pod has been terminated, as indicated by K8s API Server.
Used as response type in: ProcessCollector.ReportProcess
Used as field type in:
Used in:
Describe a modules's deployment status TODO(jun): Remove this enum once all existing code has migrated to use the new enum.
Module is created. Has not been instructed to be deployed. This is the initial state after creating the module.
Module is selected by users from the management web UI to be deployed. There is no action performed about the module yet.
After module enters the TO_BE_DEPLOYED state, API Server picks up this module and instructs agents to deploy the module, now the module's state enters DEPLOYMENT_IN_PROGRESS.
Deployment has failed on agents. TODO(zhihui): The IDs of the agents that have failed to deploy this module should be recorded. It's not useful to just record a state.
Deployment has succeeded. TODO(zhihui): The IDs of the agents that have failed to deploy this module should be recorded. It's not useful to just record a state.
Module is selected by **users** to be undeployed.
Similar to DEPLOYMENT_IN_PROGRESS, after module enters TO_BE_UNDEPLOYED state, API Server picks up this module, and instructs agents to undeploy this module.
Describes the state of a module instance on an agent. ModuleState and ModuleInstanceState together describe the progress of a module's deployment over the whole cluster. As of 2023-02-27, a module always deploy to all agents/nodes. In the future, only a subset of agents/nodes get deployed. And that means selectively picking agents/nodes in module_instance table.
Used in:
The initial state assigned to a module instance. Indicates this module instance has been put into deployment, but the actual deployment has not been performed yet.
This module instance reaches its desired state. No further action is needed.
This module instance failed to reach its desired state. No further action could be done. API Server can retry by cleanup this state, and reset the state to INIT.
This module instance is in the process of transitioning to the desired state. Need to wait the process to succeed or fail.
Describes the state of a module in the scope of a whole Kubernetes cluster. These states are desired, which describes the eventual state of the module when everything comes to success. ModuleState and ModuleInstanceState together fully describe the state of a module in the whole cluster. In other words, ModuleState describes the eventual state, ModuleInstanceState describes the state on individual agent/node.
Module is created. Has not been instructed to be deployed. This is the initial state after creating the module. TODO(jun/yzhao): The trailing _ is to distinguish with the CREATED in DeploymentState, which is kept around for not breaking existing code. Remove trailing _ when removing DeploymentState.
Module is selected by **users** (from the management Web UI or CLI) to be deployed. Further actions on all agents are required to deploy this module on every agent.
Module is selected by **users** to be undeployed.
Module is selected to be deleted.
Used in:
PID create time
Describe ProcessID(s) and container/pod relation
Used in: