MySQL 8.x with SSL Developer Testing
These are some notes to test mysql 8.x using the docker-compose set up from the CSITs:
https://git.onap.org/policy/docker/tree/csit/docker-compose-all.yml
Replace mariadb components in docker-compose-all.yml with:
mariadb replacement
mariadb:
image: mysql/mysql-server
command: ['--lower-case-table-names=1', '--wait_timeout=28800', '--default-authentication-plugin=mysql_native_password', '--require_secure_transport=ON']
container_name: mariadb
hostname: mariadb
env_file: config/db/db.conf
volumes:
- ./config/db:/docker-entrypoint-initdb.d:ro
expose:
- 3306
db-migrator only need changes in the environment variables to use the ssl flag in the script for mysql cli tool it the config/db/db.conf file.
DB Migrator component: config/db/db.conf
...
MYSQL_CMD=mysql --ssl
API configuration changes like this in config/api/apiParameters.yaml
API component configuration: config/api/apiParameters.yaml
datasource:
url: jdbc:mariadb://mariadb:3306/policyadmin?useSSL=true&disableSslHostnameVerification=true&trustServerCertificate=true
driverClassName: org.mariadb.jdbc.Driver
username: XXXXXX
password: XXXXX
hikari:
maximumPoolSize: 20
jpa:
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL8Dialect
hibernate:
ddl-auto: none
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
implicit-strategy: org.onap.policy.common.spring.utils.CustomImplicitNamingStrategy
Similaly PAP configuration changes in config/pap/papParameters.yaml to:
PAP component configuration: papParameters.yaml
datasource:
url: jdbc:mariadb://mariadb:3306/policyadmin?useSSL=true&disableSslHostnameVerification=true&trustServerCertificate=true
driverClassName: org.mariadb.jdbc.Driver
username: XXXX
password: XXXX
hikari:
maximumPoolSize: 20
jpa:
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL8Dialect
hibernate:
ddl-auto: none
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
implicit-strategy: org.onap.policy.common.spring.utils.CustomImplicitNamingStrategy
XACML-PDP should mount a guard config/xacml/xacml.properties with these properties:
XACML-PDP component Guard configuration: config/xacml/xacml.properties
#
# Properties that the embedded PDP engine uses to configure and load
#
# Standard API Factories
#
xacml.dataTypeFactory=com.att.research.xacml.std.StdDataTypeFactory
xacml.pdpEngineFactory=com.att.research.xacmlatt.pdp.ATTPDPEngineFactory
xacml.pepEngineFactory=com.att.research.xacml.std.pep.StdEngineFactory
xacml.pipFinderFactory=com.att.research.xacml.std.pip.StdPIPFinderFactory
xacml.traceEngineFactory=com.att.research.xacml.std.trace.LoggingTraceEngineFactory
#
# AT&T PDP Implementation Factories
#
xacml.att.evaluationContextFactory=com.att.research.xacmlatt.pdp.std.StdEvaluationContextFactory
xacml.att.combiningAlgorithmFactory=com.att.research.xacmlatt.pdp.std.StdCombiningAlgorithmFactory
xacml.att.functionDefinitionFactory=com.att.research.xacmlatt.pdp.std.StdFunctionDefinitionFactory
#
# ONAP PDP Implementation Factories
#
xacml.att.policyFinderFactory=org.onap.policy.pdp.xacml.application.common.OnapPolicyFinderFactory
#
# Use a root combining algorithm
#
xacml.att.policyFinderFactory.combineRootPolicies=urn:oasis:names:tc:xacml:3.0:policy-combining-algorithm:deny-overrides
#
# PIP Engine Definitions
#
count-recent-operations.classname=org.onap.policy.pdp.xacml.application.common.operationshistory.CountRecentOperationsPip
count-recent-operations.issuer=urn:org:onap:xacml:guard:count-recent-operations
count-recent-operations.name=CountRecentOperations
count-recent-operations.description=Returns operation counts based on time window
count-recent-operations.persistenceunit=OperationsHistoryPU
get-operation-outcome.classname=org.onap.policy.pdp.xacml.application.common.operationshistory.GetOperationOutcomePip
get-operation-outcome.issuer=urn:org:onap:xacml:guard:get-operation-outcome
get-operation-outcome.name=GetOperationOutcome
get-operation-outcome.description=Returns operation outcome
get-operation-outcome.persistenceunit=OperationsHistoryPU
#
# Make pips available to finder
#
xacml.pip.engines=count-recent-operations,get-operation-outcome
#
# JPA Properties
#
eclipselink.target-database=MySQL
javax.persistence.jdbc.driver=org.mariadb.jdbc.Driver
javax.persistence.jdbc.url=jdbc:mariadb://mariadb:3306/operationshistory?useSSL=true&disableSslHostnameVerification=true&trustServerCertificate=true
javax.persistence.jdbc.user=XXXXX
javax.persistence.jdbc.password=XXXX
For the guard xacml.properties to to be mounted have this set in the docker-compose.yaml
docker compose: xacml volume
volumes:
- ./config/xacml-pdp:/opt/app/policy/pdpx/etc/mounted
- ./wait_for_port.sh:/opt/app/policy/pdpx/bin/wait_for_port.sh:ro
For drools-applications component have the config/drools-applications/env/base.conf containing these environment variables:
Drool Use Cases: config/drools-applications/env/base.conf Environment Variables
JDBC_URL=jdbc:mariadb://mariadb:3306/
JDBC_OPTS=?useSSL=true&disableSslHostnameVerification=true&trustServerCertificate=true
MYSQL_CMD=mysql --ssl