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.2.0.tar.gz
(27.7 kB
view details)
Built Distribution
File details
Details for the file python_fastflow-0.2.0.tar.gz
.
File metadata
- Download URL: python_fastflow-0.2.0.tar.gz
- Upload date:
- Size: 27.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f042bda7041d02487d53d72545a54bf8e235cc8e4f36a8a583311b7a539d0793 |
|
MD5 | 67c9eea16cd6e0a3ba5aa356dd1a43f4 |
|
BLAKE2b-256 | 71faf06d886190cccd9e2e3ce75b2fea9d455cb1acf62debff567eeb1452b5ca |
File details
Details for the file python_fastflow-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: python_fastflow-0.2.0-py3-none-any.whl
- Upload date:
- Size: 16.1 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 | b5c513c5012afc2a3ce7deb966d9e4438595be3a9ca5edc10760ff112a937bf9 |
|
MD5 | f7d34f56c564508d204d4fde683744c6 |
|
BLAKE2b-256 | e5559835e95d5ca19b0f8b36b7d87e4503495dfaf0d5c1df9d8bd2e35bc1432c |