Skip to content

Commit e61d833

Browse files
committed
Merge branch 'master' into delete-old-files
2 parents 2e4dd81 + c64ca91 commit e61d833

File tree

165 files changed

+2648
-746
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

165 files changed

+2648
-746
lines changed

.bumpversion.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[tool.bumpversion]
2-
current_version = "2.18.2"
2+
current_version = "2.21.0"
33
commit = true
44
tag = false
55
tag_name = "{new_version}"

.github/workflows/greetings.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ jobs:
66
greeting:
77
runs-on: ubuntu-latest
88
steps:
9-
- uses: actions/first-interaction@753c925c8d1ac6fede23781875376600628d9b5d # v3.0.0
9+
- uses: actions/first-interaction@1c4688942c71f71d4f5502a26ea67c331730fa4d # v3.1.0
1010
with:
11-
repo-token: ${{ secrets.GITHUB_TOKEN }}
12-
issue-message: >
11+
repo_token: ${{ secrets.GITHUB_TOKEN }}
12+
issue_message: >
1313
Thanks for submitting an issue.
1414
1515
Please make sure to provide enough details for us to be able to replicate your issue or understand your question.
16-
pr-message: >
16+
pr_message: >
1717
Thanks for submitting a PR.
1818
1919
Make sure you have looked at [CONTRIBUTING](https://github.com/bird-house/birdhouse-deploy/blob/master/CONTRIBUTING.rst) guidelines.

.github/workflows/label.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ jobs:
2020
label:
2121
runs-on: ubuntu-latest
2222
steps:
23-
- uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9 # v5.0.0
23+
- uses: actions/labeler@634933edcd8ababfe52f92936142cc22ac488b1b # v6.0.1
2424
with:
2525
repo-token: "${{ secrets.GITHUB_TOKEN }}"

.github/workflows/tests.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ jobs:
1515
runs-on: ubuntu-latest
1616
steps:
1717
- name: Checkout Repository
18-
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
18+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
1919
with:
2020
persist-credentials: false
2121
- name: Set up Python3
22-
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
22+
uses: actions/setup-python@83679a892e2d95755f2dac6acb0bfd1e9ac5d548 # v6.1.0
2323
with:
2424
python-version: "3.11"
2525
cache: 'pip'

CHANGES.md

Lines changed: 697 additions & 0 deletions
Large diffs are not rendered by default.

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ override BIRDHOUSE_MAKE_DIR := $(shell realpath -P $$(dirname $(BIRDHOUSE_MAKE_C
88
# Generic variables
99
override SHELL := bash
1010
override APP_NAME := birdhouse-deploy
11-
override APP_VERSION := 2.18.2
11+
override APP_VERSION := 2.21.0
1212

1313
# utility to remove comments after value of an option variable
1414
override clean_opt = $(shell echo "$(1)" | $(_SED) -r -e "s/[ '$'\t'']+$$//g")

README.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ for a full-fledged production platform.
1818
* - citation
1919
- | |citation|
2020

21-
.. |commits-since| image:: https://img.shields.io/github/commits-since/bird-house/birdhouse-deploy/2.18.2.svg
21+
.. |commits-since| image:: https://img.shields.io/github/commits-since/bird-house/birdhouse-deploy/2.21.0.svg
2222
:alt: Commits since latest release
23-
:target: https://github.com/bird-house/birdhouse-deploy/compare/2.18.2...master
23+
:target: https://github.com/bird-house/birdhouse-deploy/compare/2.21.0...master
2424

25-
.. |latest-version| image:: https://img.shields.io/badge/tag-2.18.2-blue.svg?style=flat
25+
.. |latest-version| image:: https://img.shields.io/badge/tag-2.21.0-blue.svg?style=flat
2626
:alt: Latest Tag
27-
:target: https://github.com/bird-house/birdhouse-deploy/tree/2.18.2
27+
:target: https://github.com/bird-house/birdhouse-deploy/tree/2.21.0
2828

2929
.. |readthedocs| image:: https://readthedocs.org/projects/birdhouse-deploy/badge/?version=latest
3030
:alt: ReadTheDocs Build Status (latest version)

RELEASE.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.18.2 2025-09-24T23:23:18Z
1+
2.21.0 2026-01-27T20:49:01Z

bin/birdhouse

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,19 +42,20 @@ Options:
4242
-L, --log-level {DEBUG|INFO|WARN|ERROR} Set log level, default is INFO
4343
"
4444

45-
CONFIGS_USAGE="USAGE: $THIS_BASENAME [${THIS_BASENAME} options] configs [-h|--help] [-d|--default] {[-p|--print-config-command] | [-c|--command command] | [--print-log-command]}"
45+
CONFIGS_USAGE="USAGE: $THIS_BASENAME [${THIS_BASENAME} options] configs [-h|--help] [-b|--basic] {[-p|--print-config-command] | [-c|--command command] | [--print-log-command]}"
4646
CONFIGS_HELP="$CONFIGS_USAGE
4747
4848
Load or execute commands in the Birdhouse configuration environment.
4949
5050
Options:
5151
-h, --help Print this message and exit
52-
-d, --default Only load/print a command for the default configuration settings, not those specified by the local environment file
52+
-b, --basic Only load/print a command for the basic configuration settings, not those specified by additional components
5353
-p, --print-config-command Print a command that can be used to load configuration settings as environment variables
5454
-c, --command string Execute the given command after loading configuration settings
5555
--print-log-command Print a command that can be used to load the 'log' function used by birdhouse
5656
Deprecated Options:
5757
-q, --quiet Suppress stdout when loading configuration settings for the '--command' option. [DEPRECATED: use the --quiet option directly under birdhouse instead]
58+
-d, --default Same as the --basic flag. [DEPRECATED: use the --basic flag instead]
5859
5960
Example Usage:
6061
@@ -254,12 +255,20 @@ parse_multiple_short_flags() {
254255
parse_configs_args() {
255256
case "$1" in
256257
-d|--default)
258+
source_log
259+
log WARN "DEPRECATED: the '${THIS_BASENAME} configs --default' flag is deprecated use the --basic flag instead"
260+
shift
261+
parse_configs_args --basic "$@"
262+
;;
263+
-b|--basic)
257264
READ_CONFIGS_CMD=read_basic_configs_only
258265
shift
259266
parse_configs_args "$@"
260267
;;
261268
-q|--quiet)
262269
CONFIGS_QUIET=True
270+
source_log
271+
log WARN "DEPRECATED: the '${THIS_BASENAME} configs --quiet' flag is deprecated use the '${THIS_BASENAME} --quiet' flag instead"
263272
shift
264273
parse_configs_args "$@"
265274
;;
@@ -335,6 +344,16 @@ source_env() {
335344
fi
336345
}
337346

347+
# Source the birdhouse logging environment. This will only work the first time it is
348+
# called so that it can be called multiple times within the same process without
349+
# triggering a re-read of the configuration settings every time.
350+
source_log() {
351+
if [ "$_BIRDHOUSE_LOG_ENV_ALREADY_SOURCED" != "true" ]; then
352+
eval "$(print_log_command no-suffix)"
353+
_BIRDHOUSE_LOG_ENV_ALREADY_SOURCED=true
354+
fi
355+
}
356+
338357
# Ensure that the birdhouse stack is running.
339358
# If the stack is not running, this will raise a log ERROR message and exit.
340359
ensure_birdhouse_running() {
@@ -358,13 +377,7 @@ check_backup_create_args() {
358377
"BIRDHOUSE_BACKUP_VOLUME must be specified." \
359378
"${BACKUP_CREATE_USAGE}"
360379
fi
361-
[ -n "${BIRDHOUSE_BACKUP_RESTORE_SNAPSHOT}" ] || \
362-
[ "${BIRDHOUSE_BACKUP_NO_RESTIC}" = 'true' ] || \
363-
log_error_help \
364-
'Use the -s|--snapshot option to specify a snapshot to restore with restic or --no-restic to employ BIRDHOUSE_BACKUP_VOLUME directly.' \
365-
"${BACKUP_CREATE_USAGE}"
366380
if
367-
[ -z "${BIRDHOUSE_BACKUP_RESTORE_SNAPSHOT}" ] && \
368381
[ "${BIRDHOUSE_BACKUP_NO_RESTIC}" = 'true' ] && \
369382
[ $(echo "${BIRDHOUSE_BACKUP_VOLUME}" | grep -c '/' || true) -eq 0 ]; then
370383
log WARN \
@@ -380,6 +393,11 @@ check_backup_restore_args() {
380393
"BIRDHOUSE_BACKUP_VOLUME must be specified." \
381394
"${BACKUP_RESTORE_USAGE}"
382395
fi
396+
[ -n "${BIRDHOUSE_BACKUP_RESTORE_SNAPSHOT}" ] || \
397+
[ "${BIRDHOUSE_BACKUP_NO_RESTIC}" = 'true' ] || \
398+
log_error_help \
399+
'Use the -s|--snapshot option to specify a snapshot to restore with restic or --no-restic to restore from BIRDHOUSE_BACKUP_VOLUME directly.' \
400+
"${BACKUP_CREATE_USAGE}"
383401
if [ "${BIRDHOUSE_BACKUP_NO_RESTIC}" = 'true' ]; then
384402
if [ $(echo "${BIRDHOUSE_BACKUP_VOLUME}" | grep -c '/' || true) -eq 0 ]; then
385403
log WARN \

birdhouse/README.rst

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,11 +106,19 @@ This will source the ``env.local`` file, apply the appropriate variable substitu
106106
".template", and run ``docker-compose`` with all the command line arguments after the ``compose`` argument.
107107
See `env.local.example <env.local.example>`_ (:download:`download </birdhouse/env.local.example>`) for more details on what can go into the ``env.local`` file.
108108

109+
Most variables that can be set in the local environment file (``env.local`` by default) can also be specified as environment variables when running ``bin/birdhouse``
110+
commands. Environment variables will take precedence over those specified in the ``env.local`` file.
111+
109112
If the file `env.local` is somewhere else, symlink it here, next to `docker-compose.yml <docker-compose.yml>`_ (:download:`download </birdhouse/docker-compose.yml>`) because many scripts assume this location.
113+
If autodeploy scheduler job is enabled, the folder containing the `env.local` file needs to be added to `BIRDHOUSE_AUTODEPLOY_EXTRA_REPOS`.
110114

111115
To follow infrastructure-as-code, it is encouraged to source control the above
112116
`env.local` file and any override needed to customized this Birdhouse deployment
113-
for your organization. For an example of possible override, see how the `emu service <optional-components/emu/docker-compose-extra.yml>`_ (:download:`download </birdhouse/optional-components/emu/docker-compose-extra.yml>`)
117+
for your organization. Note this `env.local` file might contains **sensitive**
118+
infos like passwords so it should be in a limitted access private source control
119+
repo, idealy not on the internet.
120+
121+
For an example of possible override, see how the `emu service <optional-components/emu/docker-compose-extra.yml>`_ (:download:`download </birdhouse/optional-components/emu/docker-compose-extra.yml>`)
114122
(`README <optional-components/README.rst#emu-wps-service-for-testing>`_) can be optionally added to the deployment via the `override mechanism <https://docs.docker.com/compose/extends/>`_.
115123
Ouranos specific override can be found in this `birdhouse-deploy-ouranos <https://github.com/bird-house/birdhouse-deploy-ouranos>`_ repo.
116124

@@ -346,6 +354,36 @@ not able to access protected URLs:
346354
not be fully functional when self-signed certificates are enabled. For example, accessing other components through
347355
the JupyterLab interface may fail with an ``SSLError``.
348356

357+
Docker rootless configuration
358+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
359+
360+
If you are using `Docker Rootless Mode <https://docs.docker.com/engine/security/rootless/>`_ on your machine,
361+
you *might* need to execute the following command to allow the `proxy` (Nginx) service to connect to the relevant
362+
HTTP ports.
363+
364+
.. code-block:: shell
365+
sudo sysctl -w net.ipv4.ip_unprivileged_port_start=80
366+
367+
Notably, this could be required when encountering errors such as the following when invoking ``bin/birdhouse compose up -d``.
368+
369+
.. code-block:: text
370+
Error response from daemon: failed to set up container networking: driver failed programming external connectivity on endpoint proxy
371+
372+
.. warning::
373+
Using the ``sysctl`` call grants access to any user able to interact with the machine's IP which could cause security concerns.
374+
Developers should decide whether this approach suits their needs, or if other solutions should be explored.
375+
However, alternatives (some shown below) have not been fully tested and therefore provide no guarantee to work out of the box
376+
with the current deployment configurations and utilities.
377+
378+
.. todo::
379+
Evaluate alternative strategies to limit ports exposure.
380+
381+
.. code-block:: shell
382+
sudo setcap cap_net_bind_service=ep $(which rootlesskit)
383+
384+
.. code-block:: shell
385+
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
386+
349387
Development and testing
350388
-----------------------
351389

@@ -378,7 +416,7 @@ To run the tests:
378416
379417
Some tests require internet access (to access JSON schemas used to validate
380418
JSON structure). If you need to run tests offline, you can skip the tests that
381-
require internet access by using the `-k 'not online'` pytest option.
419+
require internet access by using the ``-k 'not online'`` pytest option.
382420

383421
Alternatively, testing-related targets are available via the `Makefile <../Makefile>`_:
384422

0 commit comments

Comments
 (0)