tests: Change OpenLDAP image to bitnami/openldap (#3494)

**TL;DR:**
- New image is actively maintained vs existing one that is over 5 years old. 
- Slight improvement to LDAP tree config via `.ldif` files.
- No more `Dockerfile` required to build, we can just rely on `docker run`.

`osixia/openldap` has not seen any activity since Feb 2021, while our `Dockerfile` was fixed to v1.1.6` (Feb 2018).

Startup time for this new image is around 5 seconds? (_The LDAP test uses a standard 20 second timeout check to wait until the server is ready before continuing with starting the DMS image_).

This commit migrates to `bitnami/openldap` which required modifying the `01_mail-tree.ldif` to also include adding the root object to start successfully. This image is actively maintained and one of the most popular OpenLDAP images on DockerHub.

The user account `.ldif` files have minimal changes:
- Lines moved around for better organization
- Additional comments for context
- Removal of inherited `objectClass` attributes (`person`, `top`) from the `orgnizationalPerson` class. Attribute `sn` changed to long form `surname` and values corrected with `givenName`. `changetype: add` was also not necessary.

Additionally the image does not support the `.schema` format, they must be converted to `.ldif` which has been done for `postfix-book.schema`.

See PR for more details.
This commit is contained in:
Brennan Kinney 2023-08-22 21:38:25 +12:00 committed by GitHub
parent cf9eb8278a
commit 39ae101266
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 69 additions and 128 deletions

View file

@ -1,5 +1,11 @@
# The root object, all entries will branch off this one:
dn: dc=localhost,dc=localdomain
objectClass: dcObject
objectClass: organization
dc: localhost
o: DMS Test
# User accounts will belong to this subtree:
dn: ou=people,dc=localhost,dc=localdomain
changetype: add
objectClass: organizationalUnit
objectClass: top
ou: people

View file

@ -1,25 +1,22 @@
# --------------------------------------------------------------------
# Create mail accounts
# --------------------------------------------------------------------
# Some User
# NOTE: A standard user account to test against
dn: uniqueIdentifier=some.user,ou=people,dc=localhost,dc=localdomain
changetype: add
objectClass: organizationalPerson
objectClass: person
objectClass: top
objectClass: PostfixBookMailAccount
objectClass: extensibleObject
cn: Some User
givenName: User
givenName: Some
surname: User
uniqueIdentifier: some.user
# Password is: secret
userPassword: {SSHA}eLtqGpid+hkSVhxvsdTPztv4uapRofGx
mail: some.user@localhost.localdomain
# postfix-book.schema:
mailAlias: postmaster@localhost.localdomain
mailGroupMember: employees@localhost.localdomain
mailEnabled: TRUE
mailGidNumber: 5000
mailHomeDirectory: /var/mail/localhost.localdomain/some.user/
mailQuota: 10240
mailStorageDirectory: maildir:/var/mail/localhost.localdomain/some.user/
# postfix-book.schema generic options:
mailEnabled: TRUE
mailUidNumber: 5000
sn: Some
uniqueIdentifier: some.user
userPassword: {SSHA}eLtqGpid+hkSVhxvsdTPztv4uapRofGx
mailGidNumber: 5000
mailQuota: 10240

View file

@ -1,25 +1,23 @@
# --------------------------------------------------------------------
# Create mail accounts
# --------------------------------------------------------------------
# Some User
# NOTE: This user differs via the domain-part of their mail address
# They also have their mail directory attributes using the primary domain, not their domain-part
dn: uniqueIdentifier=some.other.user,ou=people,dc=localhost,dc=localdomain
changetype: add
objectClass: organizationalPerson
objectClass: person
objectClass: top
objectClass: PostfixBookMailAccount
objectClass: extensibleObject
cn: Some Other User
givenName: Other User
givenName: Some
surname: Other User
uniqueIdentifier: some.other.user
# Password is: secret
userPassword: {SSHA}eLtqGpid+hkSVhxvsdTPztv4uapRofGx
mail: some.other.user@localhost.otherdomain
# postfix-book.schema:
mailAlias: postmaster@localhost.otherdomain
mailGroupMember: employees@localhost.otherdomain
mailEnabled: TRUE
mailGidNumber: 5000
mailHomeDirectory: /var/mail/localhost.localdomain/some.other.user/
mailQuota: 10240
mailStorageDirectory: maildir:/var/mail/localhost.localdomain/some.other.user/
# postfix-book.schema generic options:
mailEnabled: TRUE
mailUidNumber: 5000
sn: Some
uniqueIdentifier: some.other.user
userPassword: {SSHA}eLtqGpid+hkSVhxvsdTPztv4uapRofGx
mailGidNumber: 5000
mailQuota: 10240

View file

@ -1,23 +1,21 @@
# --------------------------------------------------------------------
# Create mail accounts
# --------------------------------------------------------------------
# Some User
# NOTE: This user differs by local-part of mail address not matching their uniqueIdentifier attribute
# They also do not have any alias or groups configured
dn: uniqueIdentifier=some.user.id,ou=people,dc=localhost,dc=localdomain
changetype: add
objectClass: organizationalPerson
objectClass: person
objectClass: top
objectClass: PostfixBookMailAccount
objectClass: extensibleObject
cn: Some User
givenName: User
mail: some.user.email@localhost.localdomain
mailEnabled: TRUE
mailGidNumber: 5000
mailHomeDirectory: /var/mail/localhost.localdomain/some.user.id/
mailQuota: 10240
mailStorageDirectory: maildir:/var/mail/localhost.localdomain/some.user.id/
mailUidNumber: 5000
sn: Some
givenName: Some
surname: User
uniqueIdentifier: some.user.id
# Password is: secret
userPassword: {SSHA}eLtqGpid+hkSVhxvsdTPztv4uapRofGx
mail: some.user.email@localhost.localdomain
# postfix-book.schema:
mailHomeDirectory: /var/mail/localhost.localdomain/some.user.id/
mailStorageDirectory: maildir:/var/mail/localhost.localdomain/some.user.id/
# postfix-book.schema generic options:
mailEnabled: TRUE
mailUidNumber: 5000
mailGidNumber: 5000
mailQuota: 10240