Kubernetes real execution
This example executes two real container activities on a local Kind cluster. Use it after the simulation walkthrough to validate runtime credentials, persistent storage, Kubernetes Jobs, logs, artifacts, and provenance.
The checked-in access manifest intentionally grants broad permissions for a disposable local cluster. Do not reuse it in production.
Download the inputs
- AkôFlow Desktop
- API
Run with AkôFlow Desktop
- Create the Kind cluster and apply
akoflow-access.yamlandstorage.yaml. - Generate a short-lived ServiceAccount token. In Infrastructure → Environments, create the Kubernetes connection and store the token through the credential flow; do not paste it into the workflow.
- Test the connection and run discovery. Confirm that the Kind worker appears as a schedulable resource.
- Create a scope and topology matching the supplied YAML, then import
dag.yamlunder Workflows → Definitions. - Create a manual plan or generate candidates, select the Kind resource, and start a Real execution.
- Inspect activity logs, generated files, artifacts, timeline, events, and provenance after completion.
Run through the API
After creating the cluster and token as described in the complete Kind README, submit the same objects:
export AKOFLOW_API_URL="http://127.0.0.1:8080/akoflow-api"
export AKOFLOW_API_TOKEN="<token>"
for pair in \
"environments examples/kind/environment.yaml" \
"execution-scopes examples/kind/scope.yaml" \
"network-topologies examples/kind/topology.yaml" \
"workflow-definitions examples/kind/dag.yaml" \
"schedule-plans examples/kind/requests/plan-request.yaml" \
"execution-runs examples/kind/requests/execution-request.yaml"
do
set -- $pair
curl --fail-with-body \
-H "Authorization: Bearer $AKOFLOW_API_TOKEN" \
-H 'Content-Type: application/yaml' \
--data-binary "@$2" "$AKOFLOW_API_URL/$1/"
done
Expected evidence
A successful run produces two Kubernetes Jobs, a workspace PVC for each activity, persisted logs, transfer observations, and artifacts from the activity workspaces. The prepare Job writes result.txt; the process Job reads that transferred file and writes consumed.txt.
The checked-in bundle was executed from a clean Kind cluster on 2026-09-11 as kind-dag-run-v8: both activities completed, 9 bytes were transferred, and both files had checksum sha256:cb064c1339ffa3d7777bcb0459de3dceddb9146156dde58065a4ac826b029aa7. Its observed makespan was 17.776 s. Kubernetes scheduling and Pod startup are included in that wall-clock result.
If the consumer Job remains Pending, use kubectl describe pod <pod-name> to inspect PVC/node affinity. The full setup, verification, and cleanup procedure is in the Kind README.