Compare commits

..
Author SHA1 Message Date
carla 9c000634c7 adds LIt as reviewers 2026-08-28 09:01:57 +02:00
carla 04cbec1cb0 updates readme 2026-08-26 12:03:41 +02:00
carla ca72a13d30 Adds maintenance and updates readme 2026-08-26 11:57:15 +02:00
moritz 041eb3e4b9 fix(check_blueprints): reapply failed blueprints 2026-08-25 23:03:30 +02:00
moritz e2cb5d2aae fix abra.sh return states of quitened functions 2026-08-25 21:27:30 +02:00
moritz 2f01ac90a2 add readiness-hook check_blueprints 2026-08-25 21:22:14 +02:00
4 changed files with 75 additions and 4 deletions
+32
View File
@@ -0,0 +1,32 @@
# Authentik Recipe Maintenance
All contributions should be made via a pull request. This is to ensure a
certain quality and consistency, that others can rely on.
## Maintainer Responsibilities
A recipe maintainer has the following responsibilities:
- Respond to pull requests / issues within two weeks
- Make image security updates within a week
- Make image major updates every three months
In order to fullfill these responsibilities a recipe maintainer:
- Has to watch the repository (to get notifications)
- Needs to make sure renovate is configured properly
## Pull Requests
A pull request can be merged if it is approved by at least one maintainer. For
pull requests opened by a maintainer they need to be approved by another
maintainer. Even though it is okay to merge a pull request with one approval, it
is always better if all maintainers looked at the pull request and approved it.
## Become a maintainer
Everyone can apply to be a recipe maintainer:
1. Watch the repository to always get updates
2. Simply add your self to the list in the [README.md](./README.md) and open a new pull request with the change.
3. Once the pull request gets merged you will be added to the [authentik maintainers team](https://git.coopcloud.tech/org/coop-cloud/teams/authentik-maintainers).
4. Join the room [#cc-|-authentik-maintenance:matrix.org](#cc-|-authentik-maintenance:matrix.org) and chat to other maintainers.
+2 -1
View File
@@ -6,7 +6,8 @@
[List of all possible environment variables](https://goauthentik.io/docs/installation/configuration)
<!-- metadata -->
* **Maintainer**: Local-IT: [@moritz](https://git.coopcloud.tech/moritz), [@msimon](https://git.coopcloud.tech/simon), [@carla](https://git.coopcloud.tech/carla)
* **Status**: `stable`
* **Category**: Apps
* **Status**: 0, work-in-progress
* **Image**: [ghcr/goauthentik/server](https://ghcr.io/goauthentik/server), 4, upstream
+36 -3
View File
@@ -78,6 +78,7 @@ for group_name in groups:
group.users.add(admin)
print(f'add akadmin to group {group_name}')
""" 2>&1 | quieten
return ${PIPESTATUS[0]}
}
@@ -108,6 +109,7 @@ with open('/tmp/$1', newline='') as file:
group.users.add(new_user)
print(f'add {username} to group {group_name}')
""" 2>&1 | quieten
return ${PIPESTATUS[0]}
}
set_user_pass() {
@@ -119,7 +121,7 @@ user.set_password('$password')
user.save()
print('Changed $username password')
""" 2>&1 | quieten
return ${PIPESTATUS[0]}
}
set_admin_pass() {
@@ -157,6 +159,7 @@ else:
)
print('Created authentik-bootstrap-token')
""" 2>&1 | quieten
return ${PIPESTATUS[0]}
}
rotate_db_pass() {
@@ -182,6 +185,7 @@ update_and_disable_blueprint() {
apply_blueprint $@
sleep 1
disable_blueprint $@ 2>&1 | quieten
return ${PIPESTATUS[0]}
}
disable_blueprint() {
@@ -195,6 +199,7 @@ enable_blueprint() {
apply_blueprint() {
echo apply blueprint $@
ak apply_blueprint $@ 2>&1 | quieten
return ${PIPESTATUS[0]}
}
blueprint_state() {
@@ -212,7 +217,7 @@ time.sleep(1)
blueprint.save()
print(f'{blueprint.name} enabled: {blueprint.enabled}')
""" 2>&1 | quieten
return ${PIPESTATUS[0]}
}
# This function adds each application with its name, slug and group if passed
@@ -242,6 +247,7 @@ for name, details in applications.items():
app.open_in_new_tab = True
app.save()
""" 2>&1 | quieten
return ${PIPESTATUS[0]}
}
# This function adds one application with its name, slug and group if passed
@@ -271,6 +277,7 @@ else:
app.open_in_new_tab = True
app.save()
""" 2>&1 | quieten
return ${PIPESTATUS[0]}
}
## This function is for renaming apps - usage: rename "old name" "new name"
@@ -287,12 +294,13 @@ if app:
else:
print(f'No application found with name: {old_name}')
""" 2>&1 | quieten
return ${PIPESTATUS[0]}
}
quieten() {
# 'SyntaxWarning|version_regex|"http\['
# is a workaround to get rid of some verbose syntax warnings, this might be fixed with another version
grep -Pv '"level": "(info|debug)"|SyntaxWarning|version_regex|"http\[|RuntimeWarning:|### authentik shell|### Node| objects imported automatically|^$'
grep -Pv '"level": "(info|debug)"|SyntaxWarning|version_regex|"http\[|RuntimeWarning:|### authentik shell|### Node| objects imported automatically|^$' || true
}
add_email_templates() {
@@ -386,6 +394,29 @@ Brand.objects.filter(default=True).delete()
apply_blueprints
}
check_blueprints() {
failed_blueprints=$(/manage.py shell -c """
print(','.join(b.path for b in BlueprintInstance.objects.exclude(status='successful').exclude(name='Default - Out-of-box-experience flow')))
""" 2>&1 | quieten | tail -n1)
if [ -z "$failed_blueprints" ]; then
echo "All Blueprints Successful"
return 0
fi
echo "These Blueprints failed:"
echo "$failed_blueprints" | tr ',' '\n'
echo "execute failed Blueprints"
export AUTHENTIK_LOG_LEVEL=warning
for bp in $(echo "$failed_blueprints" | tr ',' '\n'); do
echo "Applying: $bp"
ak apply_blueprint "/blueprints/$bp" 2>&1 | quieten
done
return 1
}
get_certificate() {
/manage.py shell -c """
provider_name='$1'
@@ -397,12 +428,14 @@ saml = provider.samlprovider
cert = saml.signing_kp
print(''.join(cert.certificate_data.splitlines()[1:-1]))
""" 2>&1 | quieten
return ${PIPESTATUS[0]}
}
get_user_uid() {
/manage.py shell -c """
print(User.objects.filter(username='$1').first().uid)
""" 2>&1 | quieten
return ${PIPESTATUS[0]}
}
get_secrets() {
+5
View File
@@ -2,5 +2,10 @@
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended"
],
"reviewers": [
"moritz",
"simon",
"carla"
]
}