summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-flask-healthz.spec454
-rw-r--r--sources1
3 files changed, 456 insertions, 0 deletions
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 <Python_Bot@openeuler.org> - 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