Configure ISW Custom Resource

To install an instance of IBM Industry Solutions Workbench, you have to create an ISW Custom Resource like described in the installation process. The Custom Resource provides different configurations for the product which can be edited at any time. The IBM Industry Solutions Workbench Operator always applies the current configuration of the Custom Resource. The following page will give you a description about the configuration possibilities.

Description

Main configuration

The following values are the main configuration for IBM Industry Solutions Workbench and should be thought of at installation. They will most likely not change.

VariableDescriptionRequiredDefault
designer.enabledA boolean value that enables or disables the Solution Designernotrue
domainA value that defines the ingress domain which is used to create routes. It can be retrieved by calling oc get ingresses.config/cluster -o jsonpath={.spec.domain}yes-
license.acceptA value that confirms that you accept the license. Value must be "true"!yes-

Extended configuration

For more detailed configuration, there is the values key because it gives the opportunity to freely configure multiple aspects of IBM Industry Solutions Workbench. All values are optional and can be edited at any time.

VariableDescriptionDefault
values.global.documentation.enabledA boolean value that enables or disables the deployment of the documentation in the clusterfalse
values.global.endpoints.assetManager.hostA String value that defines the url for the k5-asset-manager Route'k5-asset-manager-YOUR_INGRESS_DOMAIN'
values.global.endpoints.configurationManagement.hostA String value that defines the url for the k5-configuration-management Route'k5-configuration-YOUR_INGRESS_DOMAIN'
values.global.endpoints.designer.hostA String value that defines the url for the k5-designer Route'k5-designer-YOUR_INGRESS_DOMAIN'
values.global.endpoints.hub.hostA String value that defines the url for the k5-hub Route'k5-hub-YOUR_INGRESS_DOMAIN'
values.global.endpoints.query.hostA String value that defines the url for the k5-query Route'k5-query-YOUR_INGRESS_DOMAIN'
values.global.frontend.changePasswordLinkA String value that defines the url to change the password in your OIDC provider'/account/#/security/signingin'
values.global.frontend.defaultTimeoutA Integer value that defines the default timeout in the frontend in milliseconds.30000
values.global.network.egressPolicy.allowListA list with domains that IBM Industry Solutions Workbench is allowed to connect to. Each entry in the list is a key-value pair that has either the key dnsName with a domain name as value (without protocol) or cidrSelector with an IP address range in CIDR format as value. See also Network Policies-
values.global.network.egressPolicy.enabledA boolean value that enables or disables the EgressNetworkPolicytrue
values.global.network.ingressPolicy.enabledA boolean value that enables or disables the NetworkPolicytrue
values.global.routes.annotationsKey-value pairs that are added as annotations to every route (Care: Adding annotations removes the default ones, see right column)haproxy.router.openshift.io/hsts_header: max-age=31536000;includeSubDomains;preload haproxy.router.openshift.io/rate-limit-connections: 'true' haproxy.router.openshift.io/rate-limit-connections.concurrent-tcp: '25'
values.service-builder.k5-asset-manager.routingExpose.enabledA boolean value that enables or disables the route for k5-asset-managerfalse
values.service-builder.k5-cli-provider.routes.annotationsA String value that defines additional route annotations name for the k5-cli-provider. They are not overwriting the annotations, which are defined byvalues.global.routes.annotations nor the default annoations of values.global.routes.annotations.-
values.service-builder.k5-code-generation-provider.routes.annotationsA String value that defines additional route annotations name for the k5-code-generation-provider. They are not overwriting the annotations, which are defined byvalues.global.routes.annotations nor the default annoations of values.global.routes.annotations.-
values.service-builder.k5-designer-backend.mongoDb.dbNameA String value that defines the used database name for the k5-designer-backend'k5-solution-designer'
values.service-builder.k5-git-integration-controller.mongoDb.dbNameA String value that defines the used database name for the k5-git-integration-controller'k5-git-integration'
values.service-builder.k5-pipeline-manager.tekton.workspace.storageA String value that defines size of the requested storage for the pipeline run workspace PVC'1024Mi'
values.service-builder.k5-pipeline-manager.tekton.workspace.storageClassNameA String value that defines the storage class name that is used for the workspace PVC for a new PipelineRun (if not set the default StorageClass of the cluster is used)-
values.service-builder.k5-pipeline-manager.tekton.cleanup.enabledA boolean value that enables or disables the cleanup of the created PipelineRuns and related PVCfalse
values.service-builder.k5-pipeline-manager.tekton.cleanup.scheduleInMinutesA String value that defines in minutes how often the cleanup job should be scheduled'30'
values.service-builder.k5-pipeline-manager.tekton.cleanup.keepLastPipelineRunsA String value that defines the number of the last PipelineRuns the cleanup job should keep per service project (can be disabled with the value '-1'), e.g. the value '2' would mean every time the cleanup job runs, all PipelineRuns will be deleted except the latest 2 of every service project'1'
values.service-builder.k5-pipeline-manager.tekton.cleanup.keepLastPipelineRunsCompletedBeforeA String value that defines which PipelineRuns the cleanup job should keep by the completed timestamp in minutes (can be disabled with the value '-1'), e.g. the value '60' would mean every time the cleanup job runs, all PipelineRuns will be deleted that have been completed at least 60 minutes ago'-1'
values.service-builder.k5-git-integration-controller.encryption.encryptionAlgorithmEncryption Algorithm that should be used to encrypt and decrypt user git token stored in mongoDB. Supported values are "aes-256-gcm", "aes-192-gcm", "aes-128-gcm", “aes-256-cbc", “aes-192-cbc" and “aes-128-cbc". Changing the encryptionAlgorithm will cause data loss, because user tokens are encrypted with that and can't be decrypted without it! In this case all encrypted data is invalid, hence all users have to remove and renew the saved Git Tokens and API Keys.'aes-256-gcm'

Example ISW Custom Resource

The following describes an exemplary ISW Custom Resource:

apiVersion: k5.ibm.com/v1beta1
kind: ISW
metadata:
  name: k5-tools
  namespace: k5-tools
spec:
  designer:
    enabled: true
  domain: apps.openshift.my.cloud
  license:
    accept: true
  values:
    global:
      endpoints:
        assetManager:
          host: k5-asset-manager.apps.openshift.my.cloud
        configurationManagement:
          host: k5-configuration-management.apps.openshift.my.cloud
        designer:
          host: k5-designer.apps.openshift.my.cloud
        hub:
          host: k5-hub.apps.openshift.my.cloud
        query:
          host: k5-query.apps.openshift.my.cloud
      frontend:
        changePasswordLink: "accounts/password/change"
        defaultTimeout: 30000
      network:
        egressPolicy:
          enabled: true
          allowList:
            - dnsName: auth.openshift.my.cloud
            - cidrSelector: 1.2.3.0/24
        ingressPolicy:
          enabled: false
      routes:
        annotations:
          haproxy.router.openshift.io/rate-limit-connections: 'false'
    service-builder:
      k5-asset-manager:
        routingExpose:
          enabled: true
      k5-cli-provider:
        routes:
          annotations:
            haproxy.router.openshift.io/timeout: 45s
      k5-code-generation-provider:
        routes:
          annotations:
            haproxy.router.openshift.io/timeout: 1m
      k5-designer-backend:
        mongoDb:
          dbName: my-designer-database
      k5-git-integration-controller:
        mongoDb:
          dbName: my-gic-database