mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 10:59:59 +00:00
OpenBao 2.7 removed the builtin LDAP auth engine from the server binary (openbao/openbao GH-3882). `bao auth enable ldap` answered "plugin not found in the catalog: ldap" and the deploy stopped there. The role now builds its own image. A multi-stage Dockerfile copies the openbao-plugin-auth-ldap binary out of the image declared as the `auth-ldap` service entry into /opt/openbao/plugins. A second server config file, plugins.hcl, names that directory and registers the plugin declaratively. It sets plugin_auto_register = true explicitly: the image starts the server with a config directory, and on that path 2.7.1 does not apply the documented default, so without the line the catalog stays empty. The Dockerfile sets the file mode in a helper stage instead of COPY --chmod, which only BuildKit accepts. The mount is enabled with -plugin-version=latest, so it follows whichever plugin version the image ships. A mount created by the former builtin engine is tuned and reloaded onto the plugin, which needs `update` on sys/plugins/reload/backend in the ansible-admin policy. The LDAP tasks move into tasks/addons/auth-ldap.yml and the plugin is declared under meta/addons as a required addon bridged to `ldap`. Its Playwright spec logs in through the mount and asserts that sys/auth reports an external running plugin version. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
22 lines
607 B
Docker
22 lines
607 B
Docker
ARG OPENBAO_IMAGE
|
|
ARG OPENBAO_VERSION
|
|
ARG OPENBAO_LDAP_PLUGIN_IMAGE
|
|
ARG OPENBAO_LDAP_PLUGIN_VERSION
|
|
|
|
FROM ${OPENBAO_LDAP_PLUGIN_IMAGE}:${OPENBAO_LDAP_PLUGIN_VERSION} AS ldap-plugin
|
|
|
|
FROM ${OPENBAO_IMAGE}:${OPENBAO_VERSION} AS plugins
|
|
|
|
ARG OPENBAO_PLUGIN_DIR
|
|
ARG OPENBAO_LDAP_PLUGIN_BINARY
|
|
|
|
USER root
|
|
COPY --from=ldap-plugin /${OPENBAO_LDAP_PLUGIN_BINARY} ${OPENBAO_PLUGIN_DIR}/${OPENBAO_LDAP_PLUGIN_BINARY}
|
|
RUN chmod 0555 "${OPENBAO_PLUGIN_DIR}/${OPENBAO_LDAP_PLUGIN_BINARY}"
|
|
|
|
FROM ${OPENBAO_IMAGE}:${OPENBAO_VERSION}
|
|
|
|
ARG OPENBAO_PLUGIN_DIR
|
|
|
|
COPY --from=plugins ${OPENBAO_PLUGIN_DIR} ${OPENBAO_PLUGIN_DIR}
|