mirror of
https://bitbucket.org/atlassian-docker/docker-atlassian-confluence-server.git
synced 2024-08-30 18:22:16 +00:00
Merged in DCCLIP-586-introduce-secret-store-class (pull request #143)
DCCLIP-586 introduce secret store class Approved-by: Eugene Ivantsov Approved-by: Jun Jeong Approved-by: Minh Tran Approved-by: Adam Brokes Approved-by: Dylan Rathbone
This commit is contained in:
commit
2778ec1123
24
README.md
24
README.md
@ -160,7 +160,7 @@ Example:
|
|||||||
|
|
||||||
docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 atlassian/confluence
|
docker run -e JVM_SUPPORT_RECOMMENDED_ARGS=-Djavax.net.ssl.trustStore=/var/atlassian/application-data/confluence/cacerts -v confluenceVolume:/var/atlassian/application-data/confluence --name="confluence" -d -p 8090:8090 -p 8091:8091 atlassian/confluence
|
||||||
|
|
||||||
For additional settings that can be supplied, see: [Recognized System Properties](https://confluence.atlassian.com/doc/recognized-system-properties-190430.html)
|
For additional settings that can be supplied, see: [Recognized System Properties](https://confluence.atlassian.com/doc/recognized-system-properties-190430.html)
|
||||||
|
|
||||||
## Confluence-specific settings
|
## Confluence-specific settings
|
||||||
|
|
||||||
@ -233,6 +233,28 @@ page.
|
|||||||
|
|
||||||
### Optional database settings
|
### Optional database settings
|
||||||
|
|
||||||
|
* `ATL_JDBC_SECRET_CLASS`
|
||||||
|
|
||||||
|
[Encryption class](https://confluence.atlassian.com/doc/encrypt-database-password-1115674739.html) for the database password.
|
||||||
|
Depending on the secret class, the value of `ATL_JDBC_PASSWORD` will differ. Defaults to plaintext.
|
||||||
|
|
||||||
|
**WARNING:** JDBC encryption can only be used with Confluence instances that have already been set up.
|
||||||
|
|
||||||
|
Starting from 8.6 [AWS SecretsManager](https://confluence.atlassian.com/doc/configuring-confluence-with-aws-secrets-manager-1299911239.html) is supported.
|
||||||
|
|
||||||
|
For non-clustered Confluence, manually edit `jdbc.password.decrypter.classname` and `hibernate.connection.password` properties as instructed by step 5 of official [documentation](https://confluence.atlassian.com/doc/configuring-confluence-with-aws-secrets-manager-1299911239.html), then restart container.
|
||||||
|
|
||||||
|
For clustered Confluence, set this property while making sure environment variables in [cluster configuration](#cluster-configuration) are kept intact as well.
|
||||||
|
Example:
|
||||||
|
|
||||||
|
docker run -v /data/your-confluence-home:/var/atlassian/application-data/confluence \
|
||||||
|
--name="confluence" -d -p 8090:8090 -p 8091:8091 \
|
||||||
|
-e ATL_JDBC_SECRET_CLASS='com.atlassian.secrets.store.aws.AwsSecretsManagerStore' \
|
||||||
|
-e ATL_JDBC_PASSWORD='{"region": "us-east-1", "secretId": "mysecret", "secretPointer": "password"}' \
|
||||||
|
-e ATL_CLUSTER_RELATED_VARIABLES='variable-value' \
|
||||||
|
atlassian/confluence
|
||||||
|
|
||||||
|
|
||||||
The following variables are for the database connection pool, and are
|
The following variables are for the database connection pool, and are
|
||||||
optional.
|
optional.
|
||||||
|
|
||||||
|
@ -26,6 +26,9 @@
|
|||||||
|
|
||||||
<property name="hibernate.connection.url">{{ atl_jdbc_url }}</property>
|
<property name="hibernate.connection.url">{{ atl_jdbc_url }}</property>
|
||||||
<property name="hibernate.connection.username">{{ atl_jdbc_user }}</property>
|
<property name="hibernate.connection.username">{{ atl_jdbc_user }}</property>
|
||||||
|
{% if atl_jdbc_secret_class is defined %}
|
||||||
|
<property name="jdbc.password.decrypter.classname">{{ atl_jdbc_secret_class }}</property>
|
||||||
|
{% endif %}
|
||||||
<property name="hibernate.connection.password">{{ atl_jdbc_password }}</property>
|
<property name="hibernate.connection.password">{{ atl_jdbc_password }}</property>
|
||||||
<property name="hibernate.connection.driver_class">{{ databases[atl_db_type][0] }}</property>
|
<property name="hibernate.connection.driver_class">{{ databases[atl_db_type][0] }}</property>
|
||||||
<property name="hibernate.dialect">com.atlassian.confluence.impl.hibernate.dialect.{{ databases[atl_db_type][1] }}</property>
|
<property name="hibernate.dialect">com.atlassian.confluence.impl.hibernate.dialect.{{ databases[atl_db_type][1] }}</property>
|
||||||
|
@ -306,7 +306,6 @@ def test_confluence_xml_postgres_all_set(docker_cli, image, run_user):
|
|||||||
assert xml.findall('.//property[@name="hibernate.connection.provider_class"]')[0].text == "com.example.class"
|
assert xml.findall('.//property[@name="hibernate.connection.provider_class"]')[0].text == "com.example.class"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def test_confluence_xml_postgres_c3p0(docker_cli, image, run_user):
|
def test_confluence_xml_postgres_c3p0(docker_cli, image, run_user):
|
||||||
environment = {
|
environment = {
|
||||||
'CONFLUENCE_VERSION': '7.10.0',
|
'CONFLUENCE_VERSION': '7.10.0',
|
||||||
@ -368,6 +367,25 @@ def test_confluence_xml_postgres_all_set_c3p0(docker_cli, image, run_user):
|
|||||||
assert xml.findall('.//property[@name="hibernate.c3p0.preferredTestQuery"]')[0].text == "xselect 1"
|
assert xml.findall('.//property[@name="hibernate.c3p0.preferredTestQuery"]')[0].text == "xselect 1"
|
||||||
|
|
||||||
|
|
||||||
|
def test_confluence_xml_secretsmanager(docker_cli, image, run_user):
|
||||||
|
environment = {
|
||||||
|
'ATL_DB_TYPE': 'postgresql',
|
||||||
|
'ATL_JDBC_URL': 'atl_jdbc_url',
|
||||||
|
'ATL_JDBC_USER': 'atl_jdbc_user',
|
||||||
|
'ATL_JDBC_SECRET_CLASS': 'com.atlassian.secrets.store.aws.AwsSecretsManagerStore',
|
||||||
|
'ATL_JDBC_PASSWORD': '{"region": "us-east-1", "secretId": "mysecret"}',
|
||||||
|
}
|
||||||
|
container = run_image(docker_cli, image, user=run_user, environment=environment)
|
||||||
|
_jvm = wait_for_proc(container, get_bootstrap_proc(container))
|
||||||
|
|
||||||
|
xml = parse_xml(container, f'{get_app_home(container)}/confluence.cfg.xml')
|
||||||
|
assert xml.findall('.//property[@name="hibernate.connection.url"]')[0].text == "atl_jdbc_url"
|
||||||
|
assert xml.findall('.//property[@name="hibernate.connection.username"]')[0].text == "atl_jdbc_user"
|
||||||
|
assert xml.findall('.//property[@name="hibernate.connection.password"]')[0].text == '{"region": "us-east-1", "secretId": "mysecret"}'
|
||||||
|
assert xml.findall('.//property[@name="jdbc.password.decrypter.classname"]')[0].text == "com.atlassian.secrets.store.aws.AwsSecretsManagerStore"
|
||||||
|
assert xml.findall('.//property[@name="hibernate.connection.driver_class"]')[0].text == "org.postgresql.Driver"
|
||||||
|
|
||||||
|
|
||||||
def test_confluence_xml_cluster_aws(docker_cli, image, run_user):
|
def test_confluence_xml_cluster_aws(docker_cli, image, run_user):
|
||||||
environment = {
|
environment = {
|
||||||
'ATL_CLUSTER_TYPE': 'aws',
|
'ATL_CLUSTER_TYPE': 'aws',
|
||||||
|
Loading…
Reference in New Issue
Block a user