The endpoint-configuration-service is the central service to manage and provide configuration about the endpoints to be handled by the sidecar-proxy. The service stores information about the endpoints and provides them via REST-Api. It generates dynamic resources for configuring listners and clusters on envoy and ServiceMeshExtension's for applying the configured auth via the sidecar-proxy in Openshift Service Mesh.
The project uses maven for build and dependency management.
The endpoint-configuration-service is part of the endpoint-authentication-service, so that the other components also need to be taken into account. It uses a SQL-Database as backend, currently are MySQL and the in-memory db H2 are supported.
Start the service through its container: docker run quay.io/repository/fiware/endpoint-configuration-service
Since it is built using the Micronaut-Framework all configurations can be provided either via configuration file (application.yaml) or as environment variables. For detailed information about the configuration mechanism, see the framework documentation.
The following table concentrates on the most important configuration parameters:
Property | Env-Var | Description | Default |
---|---|---|---|
micronaut.server.port |
MICRONAUT_SERVER_PORT |
Server port to be used for mintaka | 8080 |
micronaut.metrics.enabled |
MICRONAUT_METRICS_ENABLED |
Enable the metrics gathering | true |
endpoints.all.port |
ENDPOINTS_ALL_PORT |
Port to provide the management endpoints | 8080 |
endpoints.metrics.enabled |
ENDPOINTS_METRICS_ENABLED |
Enable the metrics endpoint | true |
endpoints.health.enabled |
ENDPOINTS_HEALTH_ENABLED |
Enable the health endpoint | true |
datasources.default.host |
DATASOURCES_DEFAULT_URL |
URL for accessing db | jdbc:h2:mem:devDb;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE |
datasources.default.username |
DATASOURCES_DEFAULT_USERNAME |
Username to be used for db connections | sa |
datasources.default.password |
DATASOURCES_DEFAULT_PASSWORD |
Password to be used for db connections | |
general.updateDelayInS |
GENERAL_UPDATE_DELAY_IN_S |
How much delay until the config generation shoudl start | 2 |
envoy.enabled |
ENVOY_ENABLED |
Should configuration for envoy be generated. | true |
envoy.externalAuth.address |
ENVOY_EXTERNAL_AUTH_ADDRESS |
Domain of the auth-provider | auth-service |
envoy.externalAuth.port |
ENVOY_EXTERNAL_AUTH_PORT |
Port of the auth-provider | 7070 |
envoy.listenerYamlPath |
ENVOY_LISTENER_YAML_PATH |
Path to store the generated listener.yaml | ./listener.yaml |
envoy.clusterYamlPath |
ENVOY_CLUSTER_YAML_PATH |
Path to store the generated cluster.yaml | ./cluster.yaml |
envoy.wasmFilterPath |
ENVOY_WASM_FILTER_PATH |
Path the cached-auth-filter wasm-file. | /cache-filter/cache-filter.wasm |
meshExtension.enabled |
MESH_EXTENSION_ENABLED |
Should configuration for Openshift Service Mesh extensions be generated. | true |
meshExtension.authProviderName |
MESH_EXTENSION_AUTH_PROVIDER_NAME |
Name to access the auth provider, as defined by the service mesh. | |
meshExtension.workloadSelector |
MESH_EXTENSION_WORKLOAD_SELECTOR_(NAME/VALUE) |
Label to be used in the mesh extension for selecting the workloads to be handled | app/app |
meshExtension.filterVersion |
MESH_EXTENSION_FILTER_VERSION |
Version of the cached-auth-filter to be used in the extension | ${project.version} |
meshExtension.extensionName |
MESH_EXTENSION_EXTENSION_NAME |
Name of the extension resource to be created inside Openshift | cached-auth-filter-extension |
meshExtension.extensionNamespace |
MESH_EXTENSION_EXTENSION_NAMESPACE |
Namespace(Project) to create the resource at inside Openshift | extension-namespace |
meshExtension.meshExtensionYamlPath |
MESH_EXTENSION_MESH_EXTENSION_YAML_PATH |
Path to generate the ServiceMeshExtension yaml-file at. | ./service-mesh-extension.yaml |
Code-coverage reports are automatically created by Jacoco when the test are executed by maven. Public reports are available at Coveralls.io.
Static code analyzes("linting") are provided via Spotbugs.
Reports can be created via: mvn -B verify spotbugs:spotbugs -DskipTests
The code is documented in the Javadoc comments format.