From 8196c7c27ec6ca73759c8bf630357eabc22a05e7 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Thu, 9 Mar 2023 11:08:17 +0000 Subject: automatic import of python-flask-healthz --- .gitignore | 1 + python-flask-healthz.spec | 454 ++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 456 insertions(+) create mode 100644 python-flask-healthz.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..2288f32 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/flask-healthz-0.0.3.tar.gz diff --git a/python-flask-healthz.spec b/python-flask-healthz.spec new file mode 100644 index 0000000..127e5a5 --- /dev/null +++ b/python-flask-healthz.spec @@ -0,0 +1,454 @@ +%global _empty_manifest_terminate_build 0 +Name: python-flask-healthz +Version: 0.0.3 +Release: 1 +Summary: A simple module to allow you to easily add health endpoints to your Flask application +License: BSD-3-Clause +URL: https://github.com/fedora-infra/flask-healthz +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/14/2c/7a751a7edd0600e7dae1cd8a43104b44701b829298fccda91ec0a16a4bf5/flask-healthz-0.0.3.tar.gz +BuildArch: noarch + +Requires: python3-flask + +%description +# Flask-Healthz + +Define endpoints in your Flask application that Kubernetes can use as +[liveness and readiness probes](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/). + + +## Setting it up + +### Blueprint + +Register the blueprint on your Flask application: + +```python +from flask import Flask +from flask_healthz import healthz + +app = Flask(__name__) +app.register_blueprint(healthz, url_prefix="/healthz") +``` + +Define the functions you want to use to check health. To signal an error, raise `flask_healthz.HealthError`. + +```python +from flask_healthz import HealthError + +def liveness(): + pass + +def readiness(): + try: + connect_database() + except Exception: + raise HealthError("Can't connect to the database") +``` + +Now point to those functions in the Flask configuration: + +```python +HEALTHZ = { + "live": "yourapp.checks.liveness", + "ready": "yourapp.checks.readiness", +} +``` + +It is possible to directly set callables in the configuration, so you could write something like: + +```python +HEALTHZ = { + "live": lambda: None, +} +``` + +Check that the endpoints actually work: + +``` +$ curl http://localhost/yourapp/healthz/live +{"status": 200, "title": "OK"} +$ curl http://localhost/yourapp/healthz/ready +{"status": 200, "title": "OK"} +``` + +Now your can configure Kubernetes or OpenShift to check for those endpoints. + +### Extension + +You can also use the provided Flask extension to register the `healthz` blueprint: + +```python +from flask import Flask +from flask_healthz import Healthz + +app = Flask(__name__) +Healthz(app) +``` + +The rest of the configuration is identical. + +The extension has an additional option, `no_log`, that can disable logging of the HTTP requests +handled by your healthz endpoints, to avoid cluttering your web log files with automated requests. +At the moment, only the [gunicorn](https://gunicorn.org/) web server is supported. + +```python +Healthz(app, no_log=True) +``` + +## Examples + +Here's an example of how you could use flask-healthz in OpenShift's `deploymentconfig`: + +```yaml +kind: DeploymentConfig +spec: + [...] + template: + [...] + spec: + containers: + - name: yourapp + [...] + livenessProbe: + httpGet: + path: /healthz/live + port: 8080 + initialDelaySeconds: 5 + timeoutSeconds: 1 + readinessProbe: + httpGet: + path: /healthz/ready + port: 8080 + initialDelaySeconds: 5 + timeoutSeconds: 1 +``` + +Some projects that have setup flask-healthz: + +- Noggin: https://github.com/fedora-infra/noggin/pull/287 +- FASJSON: https://github.com/fedora-infra/fasjson/pull/81 + + +## License + +Copyright 2020-2021 Red Hat + +Flask-Healthz is licensed under the same license as Flask itself: BSD 3-clause. + + +[![codecov](https://codecov.io/gh/fedora-infra/flask-healthz/branch/dev/graph/badge.svg?token=lwlZLiSImq)](https://codecov.io/gh/fedora-infra/flask-healthz) + + +%package -n python3-flask-healthz +Summary: A simple module to allow you to easily add health endpoints to your Flask application +Provides: python-flask-healthz +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-flask-healthz +# Flask-Healthz + +Define endpoints in your Flask application that Kubernetes can use as +[liveness and readiness probes](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/). + + +## Setting it up + +### Blueprint + +Register the blueprint on your Flask application: + +```python +from flask import Flask +from flask_healthz import healthz + +app = Flask(__name__) +app.register_blueprint(healthz, url_prefix="/healthz") +``` + +Define the functions you want to use to check health. To signal an error, raise `flask_healthz.HealthError`. + +```python +from flask_healthz import HealthError + +def liveness(): + pass + +def readiness(): + try: + connect_database() + except Exception: + raise HealthError("Can't connect to the database") +``` + +Now point to those functions in the Flask configuration: + +```python +HEALTHZ = { + "live": "yourapp.checks.liveness", + "ready": "yourapp.checks.readiness", +} +``` + +It is possible to directly set callables in the configuration, so you could write something like: + +```python +HEALTHZ = { + "live": lambda: None, +} +``` + +Check that the endpoints actually work: + +``` +$ curl http://localhost/yourapp/healthz/live +{"status": 200, "title": "OK"} +$ curl http://localhost/yourapp/healthz/ready +{"status": 200, "title": "OK"} +``` + +Now your can configure Kubernetes or OpenShift to check for those endpoints. + +### Extension + +You can also use the provided Flask extension to register the `healthz` blueprint: + +```python +from flask import Flask +from flask_healthz import Healthz + +app = Flask(__name__) +Healthz(app) +``` + +The rest of the configuration is identical. + +The extension has an additional option, `no_log`, that can disable logging of the HTTP requests +handled by your healthz endpoints, to avoid cluttering your web log files with automated requests. +At the moment, only the [gunicorn](https://gunicorn.org/) web server is supported. + +```python +Healthz(app, no_log=True) +``` + +## Examples + +Here's an example of how you could use flask-healthz in OpenShift's `deploymentconfig`: + +```yaml +kind: DeploymentConfig +spec: + [...] + template: + [...] + spec: + containers: + - name: yourapp + [...] + livenessProbe: + httpGet: + path: /healthz/live + port: 8080 + initialDelaySeconds: 5 + timeoutSeconds: 1 + readinessProbe: + httpGet: + path: /healthz/ready + port: 8080 + initialDelaySeconds: 5 + timeoutSeconds: 1 +``` + +Some projects that have setup flask-healthz: + +- Noggin: https://github.com/fedora-infra/noggin/pull/287 +- FASJSON: https://github.com/fedora-infra/fasjson/pull/81 + + +## License + +Copyright 2020-2021 Red Hat + +Flask-Healthz is licensed under the same license as Flask itself: BSD 3-clause. + + +[![codecov](https://codecov.io/gh/fedora-infra/flask-healthz/branch/dev/graph/badge.svg?token=lwlZLiSImq)](https://codecov.io/gh/fedora-infra/flask-healthz) + + +%package help +Summary: Development documents and examples for flask-healthz +Provides: python3-flask-healthz-doc +%description help +# Flask-Healthz + +Define endpoints in your Flask application that Kubernetes can use as +[liveness and readiness probes](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/). + + +## Setting it up + +### Blueprint + +Register the blueprint on your Flask application: + +```python +from flask import Flask +from flask_healthz import healthz + +app = Flask(__name__) +app.register_blueprint(healthz, url_prefix="/healthz") +``` + +Define the functions you want to use to check health. To signal an error, raise `flask_healthz.HealthError`. + +```python +from flask_healthz import HealthError + +def liveness(): + pass + +def readiness(): + try: + connect_database() + except Exception: + raise HealthError("Can't connect to the database") +``` + +Now point to those functions in the Flask configuration: + +```python +HEALTHZ = { + "live": "yourapp.checks.liveness", + "ready": "yourapp.checks.readiness", +} +``` + +It is possible to directly set callables in the configuration, so you could write something like: + +```python +HEALTHZ = { + "live": lambda: None, +} +``` + +Check that the endpoints actually work: + +``` +$ curl http://localhost/yourapp/healthz/live +{"status": 200, "title": "OK"} +$ curl http://localhost/yourapp/healthz/ready +{"status": 200, "title": "OK"} +``` + +Now your can configure Kubernetes or OpenShift to check for those endpoints. + +### Extension + +You can also use the provided Flask extension to register the `healthz` blueprint: + +```python +from flask import Flask +from flask_healthz import Healthz + +app = Flask(__name__) +Healthz(app) +``` + +The rest of the configuration is identical. + +The extension has an additional option, `no_log`, that can disable logging of the HTTP requests +handled by your healthz endpoints, to avoid cluttering your web log files with automated requests. +At the moment, only the [gunicorn](https://gunicorn.org/) web server is supported. + +```python +Healthz(app, no_log=True) +``` + +## Examples + +Here's an example of how you could use flask-healthz in OpenShift's `deploymentconfig`: + +```yaml +kind: DeploymentConfig +spec: + [...] + template: + [...] + spec: + containers: + - name: yourapp + [...] + livenessProbe: + httpGet: + path: /healthz/live + port: 8080 + initialDelaySeconds: 5 + timeoutSeconds: 1 + readinessProbe: + httpGet: + path: /healthz/ready + port: 8080 + initialDelaySeconds: 5 + timeoutSeconds: 1 +``` + +Some projects that have setup flask-healthz: + +- Noggin: https://github.com/fedora-infra/noggin/pull/287 +- FASJSON: https://github.com/fedora-infra/fasjson/pull/81 + + +## License + +Copyright 2020-2021 Red Hat + +Flask-Healthz is licensed under the same license as Flask itself: BSD 3-clause. + + +[![codecov](https://codecov.io/gh/fedora-infra/flask-healthz/branch/dev/graph/badge.svg?token=lwlZLiSImq)](https://codecov.io/gh/fedora-infra/flask-healthz) + + +%prep +%autosetup -n flask-healthz-0.0.3 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-flask-healthz -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Thu Mar 09 2023 Python_Bot - 0.0.3-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..3f5ccdf --- /dev/null +++ b/sources @@ -0,0 +1 @@ +7d33f8e3124ae7ca4474ea8938e72bd7 flask-healthz-0.0.3.tar.gz -- cgit v1.2.3