A plugin for nodestream that manages k8s resources.
Project description
Nodestream Kubernetes Plugin
NOTE: This plugin is still in development and is not ready for production use.
Overview
This plugin allows you to deploy nodestream on a Kubernete cluster. As your project evolves by adding more data pipelines, nodstream-plugin-k8s will be able to manage your kubernetes resources for you.
Installation
pip install nodestream-plugin-k8s
Usage
1. Create a nodestream.yaml file and project.
# nodestream.yaml
scopes:
crons:
pipelines:
- path: pipelines/crons/my_scheduled_pipeline.yaml
perpetual:
pipelines:
- path: pipelines/perpetual/my_kafka_pipeline.yaml
2. Annotate your pipeline with nodestream-plugin-k8s annotations.
# nodestream.yaml
scopes:
crons:
pipelines:
- path: pipelines/crons/my_scheduled_pipeline.yaml
annotations:
nodestream_plugin_k8s_schedule: "0 0 * * *"
perpetual:
pipelines:
- path: pipelines/perpetual/my_kafka_pipeline.yaml
annotations:
nodestream_plugin_k8s_conccurency: 1
3. Run nodestream-plugin-k8s to deploy your pipelines.
nodestream k8s sync --namespace my-nodestream-app-namespace
4. Check your kubernetes cluster for your deployed pipelines.
kubectl get cronjobs -n my-nodestream-app-namespace
kubectl get deployments -n my-nodestream-app-namespace
5. Update your nodestream.yaml file and re-run nodestream-plugin-k8s to update your pipelines.
# nodestream.yaml
scopes:
crons:
pipelines:
- path: pipelines/crons/my_scheduled_pipeline.yaml
annotations:
nodestream_plugin_k8s_schedule: "30 0 * * *"
perpetual:
pipelines:
- path: pipelines/perpetual/my_kafka_pipeline.yaml
annotations:
nodestream_plugin_k8s_conccurency: 100
nodestream k8s sync --namespace my-nodestream-app-namespace
6. Check your kubernetes cluster for your updated pipelines.
kubectl get cronjobs -n my-nodestream-app-namespace
kubectl get deployments -n my-nodestream-app-namespace
7. Delete your pipelines.
nodestream k8s destroy --namespace my-nodestream-app-namespace
Annotations
nodestream_plugin_k8s_schedule
This annotation is used to schedule a cronjob. The value of this annotation should be a cron expression.
nodestream_plugin_k8s_concurrency
This annotation is used to set the concurrency of a deployment. The value of this annotation should be an integer.
nodestream_plugin_k8s_image
This annotation is used to set the image of a deployment or job. The value of this annotation should be a valid docker image.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nodestream_plugin_k8s-0.15.0a0.tar.gz.
File metadata
- Download URL: nodestream_plugin_k8s-0.15.0a0.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5377ac42c40b5b2445fe0e7701806db87def0cf69d3267e6db8688e541c7faf6
|
|
| MD5 |
31de496d75fb51de4172fa4809e3133f
|
|
| BLAKE2b-256 |
4fdddefb2d1ca8c8c431b3d8730e8fefbbd97ea112322ec66b76fc1ecf3b003d
|
Provenance
The following attestation bundles were made for nodestream_plugin_k8s-0.15.0a0.tar.gz:
Publisher:
release.yaml on nodestream-proj/nodestream-plugin-k8s
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nodestream_plugin_k8s-0.15.0a0.tar.gz -
Subject digest:
5377ac42c40b5b2445fe0e7701806db87def0cf69d3267e6db8688e541c7faf6 - Sigstore transparency entry: 839805507
- Sigstore integration time:
-
Permalink:
nodestream-proj/nodestream-plugin-k8s@b774b7345e2c54b373f78f66950772a3f4b22380 -
Branch / Tag:
refs/tags/0.15.0a0 - Owner: https://github.com/nodestream-proj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@b774b7345e2c54b373f78f66950772a3f4b22380 -
Trigger Event:
release
-
Statement type:
File details
Details for the file nodestream_plugin_k8s-0.15.0a0-py3-none-any.whl.
File metadata
- Download URL: nodestream_plugin_k8s-0.15.0a0-py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad4ee26b46f1277b1daf173e04ab5882acde4f7f11985c639dd2184133b52da0
|
|
| MD5 |
fd2d7579442735a7fa815009f7caaa12
|
|
| BLAKE2b-256 |
8554ab698b3ee587b0444469f5caf675bdc73ef55232ba6e172dd771a4521fab
|
Provenance
The following attestation bundles were made for nodestream_plugin_k8s-0.15.0a0-py3-none-any.whl:
Publisher:
release.yaml on nodestream-proj/nodestream-plugin-k8s
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nodestream_plugin_k8s-0.15.0a0-py3-none-any.whl -
Subject digest:
ad4ee26b46f1277b1daf173e04ab5882acde4f7f11985c639dd2184133b52da0 - Sigstore transparency entry: 839805522
- Sigstore integration time:
-
Permalink:
nodestream-proj/nodestream-plugin-k8s@b774b7345e2c54b373f78f66950772a3f4b22380 -
Branch / Tag:
refs/tags/0.15.0a0 - Owner: https://github.com/nodestream-proj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@b774b7345e2c54b373f78f66950772a3f4b22380 -
Trigger Event:
release
-
Statement type: