Skip to content

Commit

Permalink
Minimize # of needed free ports for tests
Browse files Browse the repository at this point in the history
Created a special version of docker-compose files that do not expose
any ports unless really needed for test execution. This is to minimize
potential conflicts during test execution.
  • Loading branch information
mederly committed Oct 9, 2018
1 parent 6e0e503 commit e2dc3c3
Show file tree
Hide file tree
Showing 4 changed files with 182 additions and 3 deletions.
71 changes: 71 additions & 0 deletions demo/postgresql/docker-compose-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# Version for running Bats tests.
# Minimizes the number of ports mapped to localhost, to avoid collisions during testing.

version: "3.3"

services:
midpoint_data:
image: postgres:9.5
environment:
- POSTGRES_PASSWORD_FILE=/run/secrets/mp_database_password.txt
- POSTGRES_USER=midpoint
- POSTGRES_INITDB_ARGS=--lc-collate=en_US.utf8 --lc-ctype=en_US.utf8
expose:
- 5432
networks:
- net
secrets:
- mp_database_password.txt
volumes:
- midpoint_data:/var/lib/postgresql/data

midpoint_server:
image: tier/midpoint:latest
ports:
- 8443:443
environment:
- ENV
- USERTOKEN
- REPO_DATABASE_TYPE=postgresql
- REPO_HOST=midpoint_data
- REPO_DATABASE=midpoint
- REPO_USER=midpoint
- REPO_MISSING_SCHEMA_ACTION
- REPO_UPGRADEABLE_SCHEMA_ACTION
- REPO_SCHEMA_VERSION_IF_MISSING
- REPO_SCHEMA_VARIANT
- MP_MEM_MAX
- MP_MEM_INIT
- MP_JAVA_OPTS
- TIER_BEACON_OPT_OUT
- TIMEZONE
networks:
- net
secrets:
- mp_database_password.txt
- mp_keystore_password.txt
- mp_host-key.pem
volumes:
- midpoint_home:/opt/midpoint/var
- type: bind
source: ./configs-and-secrets/midpoint/httpd/host-cert.pem
target: /etc/pki/tls/certs/host-cert.pem
- type: bind
source: ./configs-and-secrets/midpoint/httpd/host-cert.pem
target: /etc/pki/tls/certs/cachain.pem

networks:
net:
driver: bridge

secrets:
mp_database_password.txt:
file: ./configs-and-secrets/midpoint/application/database_password.txt
mp_keystore_password.txt:
file: ./configs-and-secrets/midpoint/application/keystore_password.txt
mp_host-key.pem:
file: ./configs-and-secrets/midpoint/httpd/host-key.pem

volumes:
midpoint_data:
midpoint_home:
2 changes: 1 addition & 1 deletion demo/postgresql/tests/main.bats
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ load ../../../library
}

@test "010 Initialize and start midPoint" {
docker-compose up --build -d
docker-compose -f docker-compose-tests.yml up --build -d
wait_for_midpoint_start postgresql_midpoint_server_1
}

Expand Down
108 changes: 108 additions & 0 deletions demo/shibboleth/docker-compose-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# Version for running Bats tests.
# Minimizes the number of ports mapped to localhost, to avoid collisions during testing.

version: "3.3"

services:

midpoint_data:
image: tier/mariadb:mariadb10
expose:
- 3306
networks:
- net
volumes:
- midpoint_mysql:/var/lib/mysql
- midpoint_data:/var/lib/mysqlmounted
environment:
- CREATE_NEW_DATABASE=if_needed

midpoint_server:
image: tier/midpoint:latest
ports:
- 8443:443
environment:
- AUTHENTICATION
- ENV
- USERTOKEN
- REPO_DATABASE_TYPE
- REPO_JDBC_URL
- REPO_HOST
- REPO_PORT
- REPO_DATABASE
- REPO_USER
- REPO_MISSING_SCHEMA_ACTION
- REPO_UPGRADEABLE_SCHEMA_ACTION
- REPO_SCHEMA_VERSION_IF_MISSING
- REPO_SCHEMA_VARIANT
- MP_MEM_MAX
- MP_MEM_INIT
- MP_JAVA_OPTS
- TIER_BEACON_OPT_OUT
- TIMEZONE
networks:
- net
secrets:
- mp_database_password.txt
- mp_keystore_password.txt
- mp_sp-key.pem
- mp_host-key.pem
volumes:
- midpoint_home:/opt/midpoint/var
- type: bind
source: ./configs-and-secrets/midpoint/httpd/host-cert.pem
target: /etc/pki/tls/certs/host-cert.pem
- type: bind
source: ./configs-and-secrets/midpoint/httpd/host-cert.pem
target: /etc/pki/tls/certs/cachain.pem
- type: bind
source: ./configs-and-secrets/midpoint/shibboleth/shibboleth2.xml
target: /etc/shibboleth/shibboleth2.xml
- type: bind
source: ./configs-and-secrets/midpoint/shibboleth/idp-metadata.xml
target: /etc/shibboleth/idp-metadata.xml
- type: bind
source: ./configs-and-secrets/midpoint/shibboleth/sp-cert.pem
target: /etc/shibboleth/sp-cert.pem

directory:
build: ./directory/
expose:
- 389
networks:
- net
volumes:
- ldap:/var/lib/dirsrv

idp:
build: ./idp/
depends_on:
- directory
ports:
- 443:443
environment:
- JETTY_MAX_HEAP=64m
- JETTY_BROWSER_SSL_KEYSTORE_PASSWORD=password
- JETTY_BACKCHANNEL_SSL_KEYSTORE_PASSWORD=password
networks:
- net

networks:
net:
driver: bridge

secrets:
mp_database_password.txt:
file: ./configs-and-secrets/midpoint/application/database_password.txt
mp_keystore_password.txt:
file: ./configs-and-secrets/midpoint/application/keystore_password.txt
mp_host-key.pem:
file: ./configs-and-secrets/midpoint/httpd/host-key.pem
mp_sp-key.pem:
file: ./configs-and-secrets/midpoint/shibboleth/sp-key.pem

volumes:
midpoint_mysql:
midpoint_data:
midpoint_home:
ldap:
4 changes: 2 additions & 2 deletions demo/shibboleth/tests/main.bats
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ load ../../../library
}

@test "010 Initialize and start containers" {
docker-compose up --build -d
docker-compose -f docker-compose-tests.yml up --build -d
}

@test "012 Wait for Shibboleth to start up" {
Expand Down Expand Up @@ -64,7 +64,7 @@ load ../../../library
}

@test "210 Start with internal authentication" {
env AUTHENTICATION=internal docker-compose up -d
env AUTHENTICATION=internal docker-compose -f docker-compose-tests.yml up -d
}

@test "220 Wait for midPoint to start up" {
Expand Down

0 comments on commit e2dc3c3

Please sign in to comment.