k5-project configuration

Introduction

The k5-project configuration provides configurations that apply to all new deployments within a k5-project. It is meant as a default configuration for deployments that can be overwritten by a deployment configuration.

New service bindings can only be created within the k5-project configuration.

Note:

This configuration has to be done for each new k5-project.

You can find the k5-project configuration in Solution Hub after you selected a project.

Tip:

Alternatively, you can do the settings via a REST API called Configuration Management API ( see API documentation). This API provides a Swagger UI for ease-of-use but you can use the tool of your choice for calling APIs (e.g. cURL, Postman).

As long as not configured otherwise, the default URL where you can find the Configuration Management Swagger UI is built like this:

https://k5-configuration-<namespace>.apps.openshift-cluster.mydomain.cloud

The exact URL can be found within the route named k5-configuration-management. It can be easily retrieved by executing

oc get route k5-configuration-management -n <namespace>

whereby <namespace> points to the namespace, where IBM Industry Solutions Workbench is installed (e.g. k5-tools)..

See deployment configuration if you want to change the settings for a specific deployment.

The k5-project configuration tab provides the following categories of settings:

  • Authentication
  • Database
  • Features
  • Logging
  • Messaging
  • Operations
  • Testing

Authentication

Identity provider service binding:

Select an existing service binding from the list or create a new binding for the identity provider.

Form FieldDescription
NameSpecify a unique name for this binding.
Client IdThe client ID of a registered OAuth client
Client SecretThe secret value which is bound to the referenced OAuth client.
IssuerThe issuer which has issued the JWT.
JWK URIThe URL of the JSON Web Key (JWK) set.
User Authorization URIThe URL of the OAuth authorization endpoint.
Token URIThe URL of the OAuth token endpoint.

Database

Database service binding:

Select an existing service binding from the list or create a new binding for the database connection.

Form FieldDescription
NameSpecify a unique name for this binding.
Database URIThe MongoDB connection string

Example:

mongodb://username:password@mongodb.domain.svc.cluster.local:27017/admin?ssl=false

Features

Enable usage of DEV bindings:

Defines that deployments can use DEV bindings, that are defined in Solution Designer if no service binding was specified in the Configuration Management.

Enable CORS:

Defines if Cross-Origin Resource Sharing is enabled or not.

Publish internal helper API:

Defines if the internal helper API of a deployment is exposed within the Swagger UI.

Logging

Log level of the domain server:

Adjust the log level configuration used for the domain server. This can be one of the following values:

  • ALL
  • DEBUG
  • INFO
  • WARN
  • ERROR
  • FATAL
  • TRACE

Log level of deployments:

Set the default log level for the deployments.

You can set the log level for a specific path by creating a key/value pair for it. Enter the path to the files for which you want to set the log level into the left column and select the desired log level from the drop-down menu in the right column. Then click on the "+" sign to save this entry.

Messaging

Message hub binding:

Select an existing service binding from the list or create a new binding for the message hub.

Form FieldDescription
bindingNameSpecify a unique name for this binding.
kafka_brokers_saslThe URL(s) of the bootstrap broker(s).
userThe provided Kafka user must have the permission to read and create topics.
passwordEnter the password for the specified message hub user.
saslMechanismSelect the SASL mechanism to use with the message hub.
saslJaasConfigLoginModuleQualifiedNameThe SASL JAAS Config Login Module used for the SASL mechanism. This field will be auto-filled depending on the selected SASL mechanism.

Enable audit trail:

Defines if deployments shall send events to a project-wide topic that records all access to any data.

Schema Registry

The Schema Registry provides a shared repository of schema definitions. Those schema definitions are used in events to describe their payload and therefore define a reliable contract between event producers and consumers.

In order to setup the Schema Registry integration, please add the secrets k5-schema-registry-binding and k5-schema-registry-oauth-secret to the deployment target using the below key-value pairs:

k5-schema-registry-binding

KeyValue
urlSchema Registry url
securityEnabledBoolean indicating whether security is enabled for the Schema Registry. If yes, more data for authentication will have to be provided

k5-schema-registry-oauth-secret (only needed if k5-schema-registry-binding.securityEnabled is true)

KeyValue
baseurlBase url of Schema Registry authentication server
realmSchema Registry authentication realm
client.idSchema Registry client id
client.secretSchema Registry client secret

Operations

Automatic horizontal scaling:

Defines whether automatic horizontal scaling of the deployment is enabled or not.

Target CPU utilization:

Defines at with CPU usage percentage an additional pod will be started.

Min. number of pods:

Set the minimum number of running pods (1-100).

Max. number of pods:

Set the maximum number of running pods (1-100). Has to be greater or equal to Min. Number of Pods value.

Testing

Enable testing support:

Defines if an additional API for testing is available. If disabled, integration tests within the pipeline are not possible.

Warning:

Activation of this feature is not recommended for PROD-deployments.

Username (default user for testing):

Default username used for executing the deployment tests (e.g. dev-envoy-test-user).

Password (default user for testing):

Password used for the specified default user for executing the deployment tests.