Metadata-Version: 2.1
Name: batou_ext
Version: 2.4.8
Summary: A library of components for batou.
Home-page: https://github.com/flyingcircusio/batou_ext
Author: Flying Circus <support@flyingcircus.io>
Author-email: support@flyingcircus.io
License: BSD (2-clause)
Keywords: deployment
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: batou>=2.3b4
Requires-Dist: pyaml
Requires-Dist: setuptools
Requires-Dist: six
Requires-Dist: InquirerPy
Provides-Extra: test
Requires-Dist: boto3; extra == "test"
Requires-Dist: passlib>=1.7; extra == "test"
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-mock; extra == "test"
Provides-Extra: version-select
Requires-Dist: InquirerPy; extra == "version-select"
Provides-Extra: s3-bootstrap
Requires-Dist: boto3; extra == "s3-bootstrap"
Requires-Dist: InquirerPy; extra == "s3-bootstrap"

# batou_ext - a library of components for batou

`batou_ext` master is now supporting Python3 and is depending on batou2. If you still want to use batou_ext with batou 1.x running Python2 you still can use the [batou1-py2](https://github.com/flyingcircusio/batou_ext/tree/batou1-py2) branch.

To add `batou_ext` to your deployment, add a like to the `requirements.txt` of your batou deployment::

```
batou_ext>=2.4
```

## Development and release process

* Changes should be accompanied with a changelog entry. Use `./changelog.sh` to create one.

* Releasing will create a tag and publishes the package to pypi. Use `./release-this.sh` to create a release.

## Bootstrapping of S3 buckets

Only applicable for administrators of the Flying Circus.

Install the `s3-bootstrap` feature:

```
batou_ext[s3-bootstrap]>=2.4.6
```

Then run

```
./appenv update-lockfile
./appenv run s3_bootstrap
```

The script will interactively walk you through the creation of
creating an [S3 bucket](https://wiki.flyingcircus.io/S3) and - if needed -
an access keypair and lifecycle rules.

On an activated virtualenv this can be tested with `python -m batou_ext.s3_bootstrap`.



## 2.4.8 (2024-05-08)


- systemd timers: add an option to enable persistence
  breaking change: systemd timers are now non-persistent by default.
  The previous default behaviour was a problem for cronjobs that should
  not be started immediately following a reboot / downtime

* Added a component `batou_ext.python.FixELFRunPath` which modifies `DT_RUNPATH` & `DT_RPATH` of `.so`-files in a venv to load the correct libraries (from either a Nix env or other Python libraries). Please read the docstring carefully before using it.

- OCI: cache validation result during deployment.

  Caching results speeds up deployments where multiple containers with the same image are deployed.


## 2.4.7 (2024-04-29)


* Added component `batou_ext.http.HTTPServiceWatchdog` that adds a check to a systemd unit
  whether a given URL is reachable (e.g. a `/health` endpoint). If the URL cannot be reached within
  a certain interval, the service will be restarted. Further details are documented in the
  docstring.

- Fix `SymlinkAndCleanup` async delete and allow custom extra arguments to `systemd run`.


## 2.4.6 (2024-04-23)


- OCI: Support registries where the docker login is different than the registry used in referencing containers.

- OCI: Improve change detection of remote images (required for docker.io)

- OCI: The nix file does not contain sensitive data, so don’t mark it as such.

- OCI: add support for extraOptions

* Added a script `s3_bootstrap` that interactively creates an S3 bucket (including a radosgw account & keys if needed). Will be installed with `batou_ext` if the `s3-bootstrap` extra is requested.


## 2.4.5 (2024-04-17)


- add an option to move mailhog log output (`stdout` + `stderr`) to a different namespace, e.g. "mailhog". see systemd.exec(5) for more information

- add an option to disable `stdout` logging for the mailhog service

- improve dectection of a versions file for versions updates

- fix the oci.Container verify method not throwing an updaterequired on changes to the docker container's environment file

- Add systemd-run async cleanup option for SymlinkAndCleanup removals


## 2.4.4 (2024-04-05)


- Change the behaviour of the batou_ext.versions updater to allow environments to share a branch

* Added a component `batou_ext.git.Remote` which allows to manipulate remotes of a git repository.


## 2.4.3 (2024-01-17)


- Improve output handling for the `PurgePackage` component. Will not appear like a fatal error in logs anymore when the package has been purged already or is not installed for another reason


## 2.4.2 (2023-12-08)


* Make it possible to add arbitrary additional configuration to a service created by a `SystemdTimer()`.

* Add `nixos.NixOSModule` to inject component attributes into .nix files.


## 2.4.1 (2023-11-16)


* Add `*.md` to the release, so it can actually be used.


## 2.4.0 (2023-11-16)

- Add release process with changelog (FC-33250).
