Files
computer-playbook/roles/web-app-openbao/meta/services.yml

95 lines
3.0 KiB
YAML

---
# nocheck: seaweedfs-required - OpenBao keeps every secret, policy and PKI object in its own encrypted raft store on {{ lookup('volume', 'web-app-openbao', 'data').target }}; it has no S3/object-store surface.
sso:
bond: 1
enabled: "{{ 'web-app-keycloak' in group_names }}"
shared: "{{ 'web-app-keycloak' in group_names }}"
flavor: oidc
ldap:
bond: 1
enabled: "{{ 'svc-db-openldap' in group_names }}"
shared: "{{ 'svc-db-openldap' in group_names }}"
logout:
bond: 1
enabled: "{{ 'web-svc-logout' in group_names }}"
shared: "{{ 'web-svc-logout' in group_names }}"
dashboard:
bond: 1
enabled: "{{ 'web-app-dashboard' in group_names }}"
shared: "{{ 'web-app-dashboard' in group_names }}"
matomo:
bond: 1
enabled: "{{ 'web-app-matomo' in group_names }}"
shared: "{{ 'web-app-matomo' in group_names }}"
css:
bond: 1
enabled: "{{ 'web-svc-css' in group_names }}"
shared: "{{ 'web-svc-css' in group_names }}"
# nocheck: email, dynamic-flag - OpenBao has no outbound mail surface: it notifies nothing and owns no user mailboxes; audit trails leave through the logging stack.
email:
bond: 0
enabled: false
shared: false
prometheus:
bond: 1
enabled: "{{ 'web-app-prometheus' in group_names }}"
shared: "{{ 'web-app-prometheus' in group_names }}"
native_metrics:
enabled: true
port: 8200
openbao:
# nocheck: default-placement-manager raft keeps its BoltDB store mmap'd with fsync durability, so it cannot live on NFS; the node is pinned in swarm to stay with its volume
placement: manager
modes:
compose:
enabled: true
swarm:
enabled: true
cpus: 0.5
mem_reservation: 128m
mem_limit: 512m
pids_limit: 512
min_storage: 60MB
image: openbao/openbao
version: "2.7.2"
custom: true
backup:
no_stop_required: false
# nocheck: single-replica single-node raft: a second replica would need a real raft join/bootstrap flow, and two tasks against one BoltDB directory corrupt the store
replicas: 1
name: openbao
pki:
enabled: false
log_level: info
ports:
internal:
http: 8200
local:
http: 8093
healthcheck:
flavor: wget
path: "v1/sys/health?uninitcode=200&sealedcode=200&standbyok=true"
run_after:
- web-app-keycloak
- svc-db-openldap
lifecycle: beta
# nocheck: playwright-service-flag build-stage image of the LDAP auth plugin binary, never deployed as a container
# nocheck: dynamic-flag build-stage image, not group-gated
auth-ldap:
image: ghcr.io/openbao/openbao-plugin-auth-ldap
version: "v0.2.0"
enabled: false
# nocheck: playwright-service-flag
# nocheck: variants-coverage — sso-variant-tor requires the onion on in every variant, so the false polarity has no variant left to live in
tor:
bond: 0.5
enabled: "{{ 'svc-net-tor' in group_names }}"
shared: true # nocheck: dynamic-flag
# nocheck: playwright-service-flag, dynamic-flag infrastructure backup consumer
container_backup: # nocheck: bond-baseline backup host joins outside the variant topology
bond: 1
enabled: "{{ 'svc-bkp-volume-2-local' in group_names }}"
shared: true