From 29b5a862c42fd4cb3bc23f1f7a3da9e4cf12f0ea Mon Sep 17 00:00:00 2001 From: Haishi Bai Date: Tue, 4 Jun 2024 11:37:39 +0200 Subject: [PATCH] agent deployment doc updates --- docs/symphony-book/agent/_overview.md | 49 +++- docs/symphony-book/agent/polling-agent.md | 96 ++++++- docs/symphony-book/agent/symphony-agent.md | 157 +++++++++++ docs/symphony-book/agent/target-agent.md | 251 +++++++----------- .../images/deployment-topologies.png | Bin 0 -> 95018 bytes docs/symphony-book/images/polling-agent.png | Bin 0 -> 28847 bytes docs/symphony-book/images/target-agent.png | Bin 0 -> 27717 bytes 7 files changed, 385 insertions(+), 168 deletions(-) create mode 100644 docs/symphony-book/agent/symphony-agent.md create mode 100644 docs/symphony-book/images/deployment-topologies.png create mode 100644 docs/symphony-book/images/polling-agent.png create mode 100644 docs/symphony-book/images/target-agent.png diff --git a/docs/symphony-book/agent/_overview.md b/docs/symphony-book/agent/_overview.md index b8dc09ed4..8e7886797 100644 --- a/docs/symphony-book/agent/_overview.md +++ b/docs/symphony-book/agent/_overview.md @@ -1,23 +1,46 @@ # Symphony agents -_(last edit: 3/14/2024)_ +_(last edit: 6/4/2024)_ Symphony doesn’t mandate an agent to be installed on the targets it manages. Symphony prefers remote management interfaces when possible. On the other hand, if a target doesn’t support a remote management interface, a Symphony agent can be installed on the target so that Symphony control plane can manage it. -Symphony has four types of agents –Symphony target agent, Symphony proxy agent, Symphony poll agent, and a lightweight Symphony poll agent (code name Piccolo), as summarized in the following table: +Symphony has four types of agents: Symphony agent, Symphony target agent, Symphony poll agent, and a lightweight Symphony poll agent (code name Piccolo), as summarized in the following table: -| Agent Type | Protocol | -|--------|--------| -| Lightweight poll agent | HTTPS (outbound) | -| Poll agent | HTTPS (outbound) | -| Proxy agent | MQTT or HTTPS (inbound) | -| Target agent | HTTPS (outbound) | +| Agent Type | Protocol | Summary | +|--------|--------|--------| +| Lightweight poll agent | HTTPS (outbound) | Polls and applies target desired state | +| Poll agent | HTTPS (outbound) | Polls and applies target desired state | +| Target agent | MQTT or HTTPS (inbound) | Control plane pushes desired state | +| Symphony agent | N/A | Runs on a target to provide additional functionalities1 | -> **NOTE:** Except for Piccolo, you can also combine agents into a combined agent, such has a Poll agent + Target agent. +1: The Symphony agent provides additional features to a target, such as the ability to take camera snapshots. This agent has nothing to do with the [state seeking](../concepts/state_seeking.md) process, nor the different deployment topologies. -## Related topics +> **NOTE:** Except for Piccolo, you can also combine agents into a combined agent, such as a Poll agent + Target agent. + +## Symphony Deployment Topologies + +Symphony supports several different deployment topologies to accommodate different requirements, as summarized by the following diagram. -* [Symphony lightweight polling agent (Piccolo)](./polling-agent.md) -* [Symphony polling agent](./polling-agent.md) -* [Symphony target agent](./target-agent.md) +![deployment-topologies](../images/deployment-topologies.png) + +### In-proc providers (without separate agents) +By default, all Symphony target providers are loaded into the Symphony API process. This means that all providers are invoked through direct in-process calls. The provider in turn uses APIs from corresponding toolchains to interact with the underlying systems. For example, when a Kubernetes target provider is used, the provider is invoked in-process in the Symphony API process and uses a Kubernetes client to interact with the Kubernetes API server (either on the same cluster or on a different cluster). +### Proxy providers (with target agents) +In some cases, you may want to run the target providers in a separate process. For example, when you need to manage a target on a different network, you may want to use a proxy provider to interact with the remote target. In this case, targe providers will be loaded and executed on a separate Symphony agent. +Symphony control plane communicates with these Symphony agents through either HTTP or MQTT. In the case of HTTP, the Symphony agent needs to host a Web server that exposes the expected HTTP endpoints; in the case of MQTT, the Symphony agent and the Symphony control plane are connected to a shared MQTT broker. +Running target providers in a separate agent has several advantages: +1. Fine-granular access control. Instead of granting Symphony API with access to all managed systems, you can isolate different systems into separate Symphony agents and assign minimum required accesses. +2. If needed, you can implement your own agent from the ground up with any programming language of your choice. Or you can use the default Symphony agent implementation that supports both HTTP and MQTT protocol. A custom agent implementation can be used in scenarios where you need specific programming languages (such as certified Rust versions) or implementations. +3. Support different network topologies. For example, if you manage a remote target that can’t be directly reached, you can use a MQTT proxy to bridge connection between the control plane and the target through outbound connections. + ### Poll-based agents +The proxy providers above use a “push” mode, in which the desired state is pushed to the target agents. In cases where inbound connections are impossible, you can use poll-based agents that communicate with the control plane through a single outbound connection. These agents periodically poll the control plane for the new desired state and apply the state to local targets. +Symphony provides two poll-based agents: a full-scale agent that supports all Symphony target provider types, and a light-weight agent (Piccolo) that supports deploying Web Assemblies and eBPF modules only. The light-weight agent is less than 4MB in size, so it’s suitable for tiny devices. +### Multi-site deployment +You can link multiple Symphony control planes together into a cascaded control plane tree. Please see [multi-site](../multi-site/_overview.md) for more details on multi-site deployments. + +## Related topics +* [Target agent](./target-agent.md) +* [Polling agent](./polling-agent.md) +* [Lightweight polling agent (Piccolo)](./piccolo-agent.md) +* [Symphony agent](./symphony-agent.md) \ No newline at end of file diff --git a/docs/symphony-book/agent/polling-agent.md b/docs/symphony-book/agent/polling-agent.md index 17e01dc21..98c232daf 100644 --- a/docs/symphony-book/agent/polling-agent.md +++ b/docs/symphony-book/agent/polling-agent.md @@ -1,10 +1,102 @@ -# Symphony polling agent +# Polling agent -_(last edit: 3/14/2024)_ +_(last edit: 6/4/2024)_ Symphony polling agent connects to the Symphony control plane through a single outbound HTTPS connection. It reports target current states and retrieves the new desired states from the control plane. Then, it runs a local reconciliation process. The polling agent is used in conjunction with Staging Target provider, which stages the desired state on the control plane itself instead of pushing it out to the target. The polling agent periodically polls the control plane for updated desired states. +![polling-agent](../images/polling-agent.png) +## Workflow to configure a polling agent +1. Configure and launch a polling agent process. A polling agent can run as a single process, a Docker container, or a Kubernetes service (while running on a Kubernetes cluster). The polling agent uses the same binary that is used by Symphony API. It’s just loaded with a different configuration file that puts itself into the agent mode. +2. Define your target definition. The target should use a staged provider (either `providers.target.stage`. This provider writes the target desired state to a `Catalog` object, which can be then queried by a polling agent through Symphony API. +3. Define your solutions and instances as usual. When the solution is deployed to the target, Symphony realizes that the desired state of the components needs to be staged on the control plane itself as a `Catalog` object. Once the object is written, it can be queried by a polling agent through the Symphony API. + +## Polling agent configuration file + +> **NOTE:** You can see a sample polling agent configuration file at [api/symphony-api-poll-agent.json](../../../api/symphony-k8s-poll-agent.json) + +The core target agent functionality is delivered by the `vendors.solution` vendor (a vendor is a microservice in Symphony's architecture). +```json +{ + "type": "vendors.solution", + "loopInterval": 15, + "route": "solution", + "managers": [ + { + "name": "solution-manager", + "type": "managers.symphony.solution", + "properties": { + ... + "isTarget": "true", + "targetNames": "test-target", + "poll.enabled": "true" + }, + "providers": { + ... + "helm.v3": { + "type": "providers.target.helm", + "config": { + "inCluster": true + } + }, + "yaml.k8s": { + "type": "providers.target.kubectl", + "config": { + "inCluster": true + } + }, + "instance": { + "type": "providers.target.k8s", + "config": { + "inCluster": true, + "deploymentStrategy": "services" + } + }, + "configmap": { + "type": "providers.target.configmap", + "config": { + "inCluster": true + } + }, + "ingress": { + "type": "providers.target.ingress", + "config": { + "inCluster": true + } + } + } + } + ] + } +``` +The vendor loads a `managers.symphony.solution` (a manager is a reusable business logic unit in Symphony's architecture), which defines how the agent represents on or more Symphony targets. + +* **isTarget**: This is the flag that puts the process into the target agent mode. Like mentioned earlier, target agent is the same binary as what's used by the Symphony API. This flag puts the process into agent mode. +* **targetNames"**: This is a comma-separate list that lists out Symphony target names the agent represents. An agent can represent one or more Symphony targets. **The names listed here must match with target names defined on the Symphony control plane.** +* **poll.enabled**: This is the attribute that enables the polling agent. +* Provider definitions. These provider definitions maps component types to target providers. For example, in the above configuration, the `rtos` component type is mapped to a `providers.target.script` provider. + +> **NOTE**: You don't need to define any protocol bindings as you do for the [target agent](target-agent.md), because the polling agent always uses HTTPS. + +## Target definition +Your target definition needs to use a `providers.target.staging` to stage the target desired state on the control plane as a `Catalog` object, named as `-state`. For example: + +```yaml +apiVersion: fabric.symphony/v1 +kind: Target +metadata: + name: sample-staged-k8s +spec: + topologies: + - bindings: + - role: instance + provider: providers.target.staging + config: + targetName: "sample-staged-k8s" + inCluster: "true" +``` ## Related topics * [Symphony lightweight polling agent (Piccolo)](./piccolo-agent.md) + + diff --git a/docs/symphony-book/agent/symphony-agent.md b/docs/symphony-book/agent/symphony-agent.md new file mode 100644 index 000000000..27b18e607 --- /dev/null +++ b/docs/symphony-book/agent/symphony-agent.md @@ -0,0 +1,157 @@ +# Symphony agent + +_(last edit: 6/4/2024)_ + +A Symphony agent runs on a `target` and provides several services to Symphony payloads running on the same target, including: + +* Get object references from the control plane. +* Probe and report on health of associated `device` objects. +* Capture and upload camera images for camera `device` objects. + +A Symphony agent is a microservice that exposes an HTTP endpoint to Symphony payloads. We offer a Symphony container (`ghcr.io/eclipse-symphony/symphony-agent`) as well as a cross-platform binary that can be configured as a system daemon or service. + +## Prepare for Symphony agent deployment + +In this example, the Symphony agent needs a service principal to access an Azure Storage account to upload camera snapshots. In the current version of Symphony, we support service principal with a secret. + +1. Create a service principal. For more information, see [Azure SDK for GO authentication with a service principal](https://learn.microsoft.com/azure/developer/go/azure-sdk-authentication-service-principal?tabs=azure-cli). + + ```azurecli + # create resource group + az group create --name --location + # create key vault + az keyvault create --location --name --resource-group + # create service principal + az ad sp create-for-rbac --name --role Contributor --scope /subscriptions//resourceGroups/ + ``` + + Copy the `password` output before closing your terminal window. + + > **NOTE:** we'll support certificate-based principals in future versions. + +2. If needed, create an Azure Storage account and a container for storing the snapshots: + + ```bash + az storage account create --name --resource-group --location --sku Standard_LRS + az storage container create -n snapshots --account-name + + # grant permission to access storage account + az role assignment create --assignee --role "Storage Blob Data Owner" --scope /subscriptions//resourceGroups//providers/Microsoft.Storage/storageAccounts/ + ``` + +3. If you plan to run Symphony agent as a process or a service, install [FFmpeg](https://ffmpeg.org/) on your target machine. You can skip this step if you plan to run Symphony agent as a container, which has FFmpeg pre-installed. + + ```bash + sudo apt update + sudo apt install ffmpeg + # verify installation + ffmpeg -version + ``` + +## Option 1: Run Symphony agent as a container + +To test Symphony agent on your local dev machine, you can use the prebuilt container: + +```bash +docker run -p 8088:8088 -e SYMPHONY_URL=http://:8080/v1alpha2/agent/references -e AZURE_CLIENT_ID= -e AZURE_TENANT_ID= -e AZURE_CLIENT_SECRET= -e STORAGE_ACCOUNT= -e STORAGE_CONTAINER= -e TARGET_NAME= eclipse-symphony/symphony-agent:0.1.26 +``` + +Where `` is the DNS/IP of Symphony control plane endpoint. For example, when you run Symphony control plane on a Kubernetes cluster, the control plane exposes a load-balanced service endpoint for agents. You can get the service endpoint with: + +```bash +kubectl get svc symphony-service-ext #use returned EXTERNAL-IP to connect +``` + +## Option 2: Run Symphony agent as a process + +To run Symphony agent as a process, you need to set required environment variables first, and then launch the agent: + +```bash +export AZURE_CLIENT_ID= +export AZURE_TENANT_ID= +export AZURE_CLIENT_SECRET= +export STORAGE_ACCOUNT= +export STORAGE_CONTAINER= +export SYMPHONY_URL=http://:8080/v1alpha2/agent/references # point to your local Symphony API endpoint, or the public Symphony API service endpoint on K8s +export TARGET_NAME= #the name of the Target object representing the current compute device + +./symphony-agent -c ./symphony-agent.json -l Debug +``` + +## Get object reference + +You can get Symphony object specs, such as AI [skill](../concepts/unified-object-model/ai-skill.md) and [solution](../concepts/unified-object-model/solution.md), through the Symphony agent: + +* **Route**: `http://:8088/v1alpha2/agent/references` +* **Method**: GET +* **Parameters**: + + | Parameter | Comment | + |--------|--------| + | alias | AI Skill alias1| + | field-selector | Field selector (optional), for example: `metadata.name=redis-server`| + | group | Resource group, like `ai.symphony`, `solution.symphony` and `fabric.symphony`| + | id | Resource name (optional)| + | instance | Solution instance id1| + | kind | Resource kind, like `skills`, `solutions` and `devices`| + | label-selector | Label selector (optional), for example: `foo=bar`| + | ref | Reference provider type. Use `v1alpha2.ReferenceK8sCRD` to query K8s objects | + | namespace | Namespace, like `default`| + | version | Resource version, like `v1`| + + **1**: This parameter is supposed to be used in `skill` queries only. When supplied, `skill` parameter values will be overridden by corresponding values (named as `.`) in the `instance` object. In addition, if the `alias` parameter is specified, Symphony uses `..` to locate instance overrides instead. For more information, see [parameter management](../ai-management/parameter-management.md). + + The reference endpoint can also be used to resolve Azure Custom Vision model download URLs. Some addition parameters are used for such queries: + + | Parameter | Comment | + |--------|--------| + | flavor | Custom Vision model export flavor (such as `TensorFlowNormal`)| + | lookup |set to `download` when querying download URLs| + | iteration | Custom Model iteration | + | platform| Custom Vision model export platform (such as `TensorFlow`)| + + > **NOTE** if `flavor` and `platform` are omitted, the reference endpoint only returns existing exports. If both are provided, the reference endpoint will request a new export if necessary (such as when existing exports have expired). + +### Examples + +* Get AI Skill with name `cv-model`: + + ```bash + http://localhost:8088/v1alpha2/agent/references?scope=default&kind=skills&version=v1&group=ai.symphony&id=cv-model&&ref=v1alpha2.ReferenceK8sCRD + ``` + +* List AI Skill with label `foo=bar`: + + ```bash + http://localhost:8088/v1alpha2/agent/references?scope=default&kind=skills&version=v1&group=ai.symphony&label-selector=foo=bar&&ref=v1alpha2.ReferenceK8sCRD + ``` + +* Get AI Skill with name `sv-skill`, overwrite its parameters with values in instance `dummy-instance`, aliased as `abc`. For more information, see [parameter management](../ai-management/parameter-management.md). + + ```bash + http://localhost:8088/v1alpha2/agent/references?scope=default&kind=skills&version=v1&group=ai.symphony&id=cv-skill&ref=v1alpha2.ReferenceK8sCRD&instance=dummy-instance&alias=abc + ``` + +## Report object state + +You can report object state through Symphony agent. + +* **Route**: `http://:8088/v1alpha2/agent/references` +* **Method**: POST +* **Parameters**: + | Parameter | Comment | + |--------|--------| + | group | Resource group, like `ai.symphony`, `solution.symphony`, and `fabric.symphony` | + | id | Resource name (optional)| + | kind | Resource type, like `skills`, `solutions`, and `devices`| + | overwrite | If set to true, the object state will be reset to reported properties. Otherwise, the reported properties are merged into existing state (optional, default = false) | + | namespace | Namespace, like `default` | + | version | resource version, like `v1` | + +* **Body**: A key-value pair collection of reported properties + + >**NOTE:** Symphony always reports object state as a key-value collection named `properties`. + +## Capture camera frame + +Capturing camera frames happens automatically, and captured image URL will be reported as part of `device` state as a `snapshot` property. diff --git a/docs/symphony-book/agent/target-agent.md b/docs/symphony-book/agent/target-agent.md index 4a685dd5d..8adc2a05a 100644 --- a/docs/symphony-book/agent/target-agent.md +++ b/docs/symphony-book/agent/target-agent.md @@ -1,155 +1,100 @@ -# Symphony target agent - -A Symphony target agent runs on a `target` and provides several services to Symphony payloads running on the same target, including: - -* Get object references from the control plane. -* Probe and report on health of associated `device` objects. -* Capture and upload camera images for camera `device` objects. - -A Symphony agent is a microservice that exposes an HTTP endpoint to Symphony payloads. We offer a Symphony container (`ghcr.io/eclipse-symphony/symphony-agent`) as well as a cross-platform binary that can be configured as a system daemon or service. - -## Prepare for Symphony target agent deployment - -In this example, the Symphony agent needs a service principal to access an Azure Storage account to upload camera snapshots. In the current version of Symphony, we support service principal with a secret. - -1. Create a service principal. For more information, see [Azure SDK for GO authentication with a service principal](https://learn.microsoft.com/azure/developer/go/azure-sdk-authentication-service-principal?tabs=azure-cli). - - ```azurecli - # create resource group - az group create --name --location - # create key vault - az keyvault create --location --name --resource-group - # create service principal - az ad sp create-for-rbac --name --role Contributor --scope /subscriptions//resourceGroups/ - ``` - - Copy the `password` output before closing your terminal window. - - > **NOTE:** we'll support certificate-based principals in future versions. - -2. If needed, create an Azure Storage account and a container for storing the snapshots: - - ```bash - az storage account create --name --resource-group --location --sku Standard_LRS - az storage container create -n snapshots --account-name - - # grant permission to access storage account - az role assignment create --assignee --role "Storage Blob Data Owner" --scope /subscriptions//resourceGroups//providers/Microsoft.Storage/storageAccounts/ - ``` - -3. If you plan to run Symphony agent as a process or a service, install [FFmpeg](https://ffmpeg.org/) on your target machine. You can skip this step if you plan to run Symphony agent as a container, which has FFmpeg pre-installed. - - ```bash - sudo apt update - sudo apt install ffmpeg - # verify installation - ffmpeg -version - ``` - -## Option 1: Run Symphony agent as a container - -To test Symphony agent on your local dev machine, you can use the prebuilt container: - -```bash -docker run -p 8088:8088 -e SYMPHONY_URL=http://:8080/v1alpha2/agent/references -e AZURE_CLIENT_ID= -e AZURE_TENANT_ID= -e AZURE_CLIENT_SECRET= -e STORAGE_ACCOUNT= -e STORAGE_CONTAINER= -e TARGET_NAME= hbai/symphony-agent:0.1.26 -``` - -Where `` is the DNS/IP of Symphony control plane endpoint. For example, when you run Symphony control plane on a Kubernetes cluster, the control plane exposes a load-balanced service endpoint for agents. You can get the service endpoint with: - -```bash -kubectl get svc symphony-service-ext #use returned EXTERNAL-IP to connect -``` - -## Option 2: Run Symphony agent as a process - -To run Symphony agent as a process, you need to set required environment variables first, and then launch the agent: - -```bash -export AZURE_CLIENT_ID= -export AZURE_TENANT_ID= -export AZURE_CLIENT_SECRET= -export STORAGE_ACCOUNT= -export STORAGE_CONTAINER= -export SYMPHONY_URL=http://:8080/v1alpha2/agent/references # point to your local Symphony API endpoint, or the public Symphony API service endpoint on K8s -export TARGET_NAME= #the name of the Target object representing the current compute device - -./symphony-agent -c ./symphony-agent.json -l Debug +# Target agent + +_(last edit: 6/4/2024)_ + +A Symphony target agent hosts [target providers](../providers/target_provider.md) outside of the Symphony API process. The Symphony API process communicates with target agents through either HTTP or MQTT. You can configure a target agent to represent one or multiple [targets](../concepts/unified-object-model/target.md). + +![Target Agent](../images/target-agent.png) + +## Workflow to configure a target agent +1. Configure and launch a target agent process. A target agent can run as a single process, a Docker container, or a Kubernetes service (while running on a Kubernetes cluster). The target agent uses the same binary that is used by Symphony API. It’s just loaded with a different configuration file that puts itself into the agent mode. +2. Define your target definition. The target should use a proxy provider (either `providers.target.mqtt` for MQTT or `providers.target.proxy` for HTTP). +3. Define your solutions and instances as usual. When the solution is deployed to the target, Symphony realizes that the components need to be deployed through a proxy provider and uses the proxy provider to communicate with the remote target agent process. + +## Target agent configuration file + +> **NOTE:** You can see a sample agent configuration file at [docs/samples/multi-os/symphony-agent.json](../../samples/multi-os/symphony-agent.json) + +The core target agent functionality is delivered by the `vendors.solution` vendor (a vendor is a microservice in Symphony's architecture). +```json +{ + "type": "vendors.solution", + "loopInterval": 15, + "route": "solution", + "managers": [ + { + "name": "solution-manager", + "type": "managers.symphony.solution", + "properties": { + ... + "isTarget": "true", + "targetNames": "pc,rtos" + }, + "providers": { + "pc": { + "type": "providers.target.win10.sideload", + "config": { + ... + } + }, + "rtos": { + "type": "providers.target.script", + "config": { + ... + } + }, + ... + } + } + ] + } ``` - -## Get object reference - -You can get Symphony object specs, such as AI [skill](../concepts/unified-object-model/ai-skill.md) and [solution](../concepts/unified-object-model/solution.md), through the Symphony agent: - -* **Route**: `http://:8088/v1alpha2/agent/references` -* **Method**: GET -* **Parameters**: - - | Parameter | Comment | - |--------|--------| - | alias | AI Skill alias1| - | field-selector | Field selector (optional), for example: `metadata.name=redis-server`| - | group | Resource group, like `ai.symphony`, `solution.symphony` and `fabric.symphony`| - | id | Resource name (optional)| - | instance | Solution instance id1| - | kind | Resource kind, like `skills`, `solutions` and `devices`| - | label-selector | Label selector (optional), for example: `foo=bar`| - | ref | Reference provider type. Use `v1alpha2.ReferenceK8sCRD` to query K8s objects | - | namespace | Namespace, like `default`| - | version | Resource version, like `v1`| - - **1**: This parameter is supposed to be used in `skill` queries only. When supplied, `skill` parameter values will be overridden by corresponding values (named as `.`) in the `instance` object. In addition, if the `alias` parameter is specified, Symphony uses `..` to locate instance overrides instead. For more information, see [parameter management](../ai-management/parameter-management.md). - - The reference endpoint can also be used to resolve Azure Custom Vision model download URLs. Some addition parameters are used for such queries: - - | Parameter | Comment | - |--------|--------| - | flavor | Custom Vision model export flavor (such as `TensorFlowNormal`)| - | lookup |set to `download` when querying download URLs| - | iteration | Custom Model iteration | - | platform| Custom Vision model export platform (such as `TensorFlow`)| - - > **NOTE** if `flavor` and `platform` are omitted, the reference endpoint only returns existing exports. If both are provided, the reference endpoint will request a new export if necessary (such as when existing exports have expired). - -### Examples - -* Get AI Skill with name `cv-model`: - - ```bash - http://localhost:8088/v1alpha2/agent/references?scope=default&kind=skills&version=v1&group=ai.symphony&id=cv-model&&ref=v1alpha2.ReferenceK8sCRD - ``` - -* List AI Skill with label `foo=bar`: - - ```bash - http://localhost:8088/v1alpha2/agent/references?scope=default&kind=skills&version=v1&group=ai.symphony&label-selector=foo=bar&&ref=v1alpha2.ReferenceK8sCRD - ``` - -* Get AI Skill with name `sv-skill`, overwrite its parameters with values in instance `dummy-instance`, aliased as `abc`. For more information, see [parameter management](../ai-management/parameter-management.md). - - ```bash - http://localhost:8088/v1alpha2/agent/references?scope=default&kind=skills&version=v1&group=ai.symphony&id=cv-skill&ref=v1alpha2.ReferenceK8sCRD&instance=dummy-instance&alias=abc +The vendor loads a `managers.symphony.solution` (a manager is a reusable business logic unit in Symphony's architecture), which defines how the agent represents on or more Symphony targets. + +* **isTarget**: This is the flag that puts the process into the target agent mode. Like mentioned earlier, target agent is the same binary as what's used by the Symphony API. This flag puts the process into the agent mode. +* **targetNames"**: This is a comma-separate list that lists out Symphony target names the agent represents. An agent can represent one or more Symphony targets. **The names listed here must match with target names defined on the Symphony control plane.** +* Provider definitions. These provider definitions maps component types to target providers. For example, in the above configuration, the `rtos` component type is mapped to a `providers.target.script` provider. + +The communication channel between the agent and the Symphony control plane is configured by the `bindings` configuration. The following example shows a sample MQTT binding: +```json +"bindings": [ + { + "type": "bindings.mqtt", + "config": { + "name": "mqtt-1", + "brokerAddress": "tcp://:1883", + "clientID": "windows-pc", + "requestTopic": "coa-request", + "responseTopic": "coa-response", + "timeoutSeconds": 30 + } + } + ] ``` - -## Report object state - -You can report object state through Symphony agent. - -* **Route**: `http://:8088/v1alpha2/agent/references` -* **Method**: POST -* **Parameters**: - | Parameter | Comment | - |--------|--------| - | group | Resource group, like `ai.symphony`, `solution.symphony`, and `fabric.symphony` | - | id | Resource name (optional)| - | kind | Resource type, like `skills`, `solutions`, and `devices`| - | overwrite | If set to true, the object state will be reset to reported properties. Otherwise, the reported properties are merged into existing state (optional, default = false) | - | namespace | Namespace, like `default` | - | version | resource version, like `v1` | - -* **Body**: A key-value pair collection of reported properties - - >**NOTE:** Symphony always reports object state as a key-value collection named `properties`. - -## Capture camera frame - -Capturing camera frames happens automatically, and captured image URL will be reported as part of `device` state as a `snapshot` property. +You can define multiple bindings, including multiple bindings for the same protocol, on a target agent. + +## Target definition +Your target definition needs to use a `providers.target.mqtt` (MQTT) or a `providers.target.proxy` (HTTP), as shown in the following example. +Note your target name needs to match with the names in your agent's `targetNames` definition. And when you use MQTT, you need to make sure you are using the same `requestTopic` and `responseTopic` but different `clientID` on either side. + +```yaml +apiVersion: fabric.symphony/v1 +kind: Target +metadata: + name: pc +spec: + properties: + location: "pc" + scenario: "multi-os" + topologies: + - bindings: + - role: win.uwp + provider: providers.target.mqtt + config: + name: proxy1 + brokerAddress: "tcp://:1883" + clientID: "test-cluster-1" + requestTopic: "coa-request" + responseTopic: "coa-response" + timeoutSeconds: "30" +``` \ No newline at end of file diff --git a/docs/symphony-book/images/deployment-topologies.png b/docs/symphony-book/images/deployment-topologies.png new file mode 100644 index 0000000000000000000000000000000000000000..351ed8d219d27ac5402f430656362583634c9df5 GIT binary patch literal 95018 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 CBOj^& literal 0 HcmV?d00001 diff --git a/docs/symphony-book/images/polling-agent.png b/docs/symphony-book/images/polling-agent.png new file mode 100644 index 0000000000000000000000000000000000000000..abab04b0b00dca7b91929f73029f4af8daf7bbef GIT binary patch literal 28847 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 TmFAlvbUXrHTP5R&h2Q@G&_$zJ literal 0 HcmV?d00001 diff --git a/docs/symphony-book/images/target-agent.png b/docs/symphony-book/images/target-agent.png new file mode 100644 index 0000000000000000000000000000000000000000..d9f35a42a86e1abd69563d584d30b7dadc5d67c6 GIT binary patch literal 27717 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 literal 0 HcmV?d00001