Hybrid local or Kind to GCP
These are two separate two-activity workflows. The producer writes handoff.txt either on the AkôFlow server host or in a Kind cluster. A cloud activity on an on-demand GCP worker checks the file's exact content and writes receipt.txt. This tests a real data dependency across runtimes, not merely a network estimate.
Running this example provisions a GCP VM and may incur charges. The checked-in plans contain IDs from a specific test instance and a manual predicted value; they are not portable plans or calibrated forecasts. Review the project, network access, capacity target, and VM cleanup before submitting.
Prerequisites
- Connect and test a GCP environment. Save it, then wait for asynchronous resource discovery to complete and confirm the cloud target is usable.
- For the Kind variant, prepare a Kind cluster and AkôFlow access. The local variant runs its producer on the AkôFlow server host.
- Register an execution scope, network topology, and resources that cover both the producer and GCP worker. In the checked-in plans these are
goal-hybrid-scope,goal-hybrid-network, andgoal-gcp-worker-e2-small. The instance's environment, resource, and runtime IDs must match the plans and submission script, or you must edit those files for your instance. - Install
curlandjqon the submission host, obtain API access, and allow the server's transfer path to reach the GCP worker. Use only the network access required by your deployment.
Download the inputs
The full bundle below includes the workflows, plans, runner, and an explicit description of the environment, scope, topology, runtime bindings, and cloud resource that must be registered in the target instance. Those cloud values deliberately remain instance-specific rather than shipping unusable credentials or project IDs.
- AkôFlow Desktop
- API
Inspect the run in Desktop
Use Desktop connected to the same AkôFlow server as the API submission. First confirm that the saved environment and discovered cloud worker are healthy. After submission, open the workflow's run and check both activities, the data transfer, the output files, and the cloud instance lifecycle.
This bundle was submitted through the API. A Desktop-only setup and submission of the full hybrid configuration has not been verified.
Submit through the API
Complete API connection setup and use a checkout containing this example. Review and adapt the plan and script IDs before submitting them to another instance. Set the API URL to your own AkôFlow server; the loopback address below is only an example.
git clone --depth 1 https://github.com/UFFeScience/akoflow.git akoflow-showcase
cd akoflow-showcase
export AKOFLOW_API_URL=http://127.0.0.1:8080/akoflow-api
export AKOFLOW_API_TOKEN='replace-with-your-daemon-token'
curl --fail-with-body -H "Authorization: Bearer $AKOFLOW_API_TOKEN" \
-H 'Content-Type: application/yaml' \
--data-binary @examples/real/hybrid-cloud-transfer/local-cloud-workflow.yaml \
"$AKOFLOW_API_URL/workflow-definitions/"
curl --fail-with-body -H "Authorization: Bearer $AKOFLOW_API_TOKEN" \
-H 'Content-Type: application/yaml' \
--data-binary @examples/real/hybrid-cloud-transfer/local-cloud-plan.yaml \
"$AKOFLOW_API_URL/schedule-plans/import/"
sh examples/real/hybrid-cloud-transfer/submit-run.sh local my-local-cloud-run
For Kind, submit kind-cloud-workflow.yaml and kind-cloud-plan.yaml, then call the script with kind my-kind-cloud-run. Run one variant at a time; wait for execution and cloud cleanup before starting the next.
Expected evidence
In the verified runs on 2026-09-13, each producer and consumer completed, the consumer read the transferred file, and the GCP VM was destroyed afterward:
| Source → destination | Run | Data transferred | Observed makespan |
|---|---|---|---|
| Local → GCP | goal-local-cloud-run-v6 | 21 B | 70.051 s |
| Kind → GCP | goal-kind-cloud-run-v1 | 20 B | 131.993 s |
Those are observations from one GCP project and an e2-small target, not guaranteed timings for another environment. The plans' predicted.makespanSeconds: 120 and cost are manual placeholder values; do not use them to assess scheduler accuracy. Check the run's activity and transfer records, then verify the VM is absent from both AkôFlow's cloud-instance list and GCP Compute Engine. If cleanup is delayed or a run fails, investigate the active transfer and VM lifecycle before retrying.