Commit 6d7604b0 authored by Georges Racinet's avatar Georges Racinet 🦑
Browse files

README: documented the production server mode

--HG--
branch : stable
parent 71683a6fc7a0
Pipeline #19925 failed with stage
in 16 minutes and 24 seconds
# Heptapod automated functional tests
WARNING: don't try and run these if you're not willing to sacrifice the server
data.
This can be used for preflight validation of production servers, provided the
data is fully wiped afterwards.
WARNING: to test production instances, use the dedicated mode exclusively. Other
modes assume that you are ready to **throw all data away** after the test
run, and hence are suitable at most for preflight full testing of a fresh
production instance.
## Installation
......@@ -25,13 +24,17 @@ These tests can work against Heptapod servers provided either as
- (default) local Docker containers manageable by the system user running the
tests, or
- installed from source and being run by the same user as the tests, or
- completely remote, skipping some of the tests.
- completely remote, skipping some of the tests, or
- production, relying on users with at most ownership of a dedicated projects
group, and running a subset of suitable tests.
The Gitlab root password will be initialized by the first test to run.
Except in production server mode, the Gitlab root password
will be initialized by the first test to run.
The tests will fail if the Gitlab root password is already set
and does not match the expected one.
### Default Docker setup
In the Docker case, the expected container name is by default `heptapod`.
......@@ -143,6 +146,42 @@ about all network options:
The root password option is listed because you probably don't want to have
an instance with the default root password available on the internet.
### Testing a production instance
*New on 2021-02-18*: see !80
To run the tests suitable for production instances, you will need first to
prepare:
- a projects group entirely dedicated to these functional tests
- a dedicated user that owns the dedicated group (more users will probably be
needed in the future).
The production mode is activated by an explicit command-line option. Another
option is used to pass the dedicated user credentials.
Example:
```
~/heptapod/heptapod-tests $ tox -- --heptapod-prod-server \
--heptapod-prod-group-owner-credentials ID:USERNAME:PASSWORD \
--heptapod-url https://foss.heptapod.net \
--heptapod-ssh-port 22 \
--heptapod-ssh-user hg
```
where ID is the numeric user id, and USERNAME is the user login name
(e.g `testfonct`).
Remarks and safety:
- The user password must be fully operational: the functional tests won't
take care of the finalization sequence that occurs at first login.
- Do not give the dedicated user any rights outside of the dedicated groups.
- It is advisable to block the dedicated user when not in use.
- Be prepared to receive email for Merge Requests on the dedicated user address.
Arguably, this is part of the testing.
### Docker: choosing the version to test
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment