A workflow engine based on Kopf
Project description
Fastflow
Deploy to Kubernetes with helm chart
kubectl create ns fastflow
helm -n fastflow upgrade --install fastflow chart
Run examples
Apply examples
kubectl -n fastflow create -f examples/01-helloworld/workflow.yaml
kubectl -n fastflow create -f examples/02-digraph/workflow.yaml
Inspect results
kubectl -n fastflow get workflows
kubectl -n fastflow get tasks -l workflow=helloworld
Developer setup
For developing the fastflow project
Generate CRDS
python3 generate_crds.py
Create CRDS
Can also be installed by applying the helm chart
kubectl create -f chart/crds/kopfpeering-crd.yaml
find chart/crds/generated -name *.yaml -exec kubectl create -f '{}' \;
Delete CRDS
find chart/crds/generated -name *.yaml -exec kubectl delete -f '{}' \;
Virtual environment
python3 -m venv ~/venvs/fastflow
. ~/venvs/fastflow/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install -e .
Run from outside cluster
Will use kubectl config for cluster access. Greate for development, and can run with debugger attached.
Prepare namespace
kubectl create ns fastflow-dev
kubectl -n fastflow-dev apply -f - << EOYML
apiVersion: kopf.dev/v1
kind: KopfPeering
metadata:
name: default
EOYML
Run as module (useful for debugger)
python3 -m fastflow \
--namespace fastflow-dev \
--dev
Run from cli
fastflow --namespace fastflow-dev --dev
Run Tests
Install test-requirements
python3 -m pip install -e . -r test-requirements.txt
Prepare namespace
kubectl create ns fastflow-test
kubectl -n fastflow-test apply -f test/kopf-test-peering.yaml
Run the tests as module
python3 -m pytest --color=yes
Run the tests from cli
pytest --color=yes
Building whl package and Docker image
Cleanup old packages
rm -Rf dist
Build package
python3 -m pip install build
python3 -m build
Build Docker image
eval $(minikube -p minikube docker-env)
DOCKER_BUILDKIT=1 docker build -t fastflow .
Use helm to run the image in Kubernetes
helm -n fastflow-dev upgrade --install --set imageOverride=fastflow fastflow chart
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
python_fastflow-0.3.0.tar.gz
(28.0 kB
view details)
Built Distribution
File details
Details for the file python_fastflow-0.3.0.tar.gz
.
File metadata
- Download URL: python_fastflow-0.3.0.tar.gz
- Upload date:
- Size: 28.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 034d7b8bc3e5dcfddedc3c7aeafa9159b352431a8bb3070f67adddc5ce55b1a7 |
|
MD5 | c27db43fef9c59b7768e0e0503e8acfe |
|
BLAKE2b-256 | fce56cf08480a04d2e55b8d625dddc573a17a2e5a796c45efc60bf86b5cce545 |
File details
Details for the file python_fastflow-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: python_fastflow-0.3.0-py3-none-any.whl
- Upload date:
- Size: 16.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17dd4f558b3c557f4d2c38917fa2d7780a5a3b8d1f216317f42339611b3c479c |
|
MD5 | 0314aadaaf5a60b1afb23aed1362fb2c |
|
BLAKE2b-256 | ead249aac27eb5f8d64dce13217daf002e80372abcb657de4357ec41a7906663 |