RQA custom resource definition

The RQA is a Custom Resource Definition (CRD) that is used to deploy and manage an IBM® RQA instance.

The following are the RQA Custom Resource Definition Specs:
Table 1. Creating RQA instance
Property Description Required (Y/N) Default
metadata.name Name of RQA deployment. Y RQA
oidc_url Enter the OIDC URL.

Example:
https://jas.my.company.com:9643/oidc/endpoint/jazzop/.well-known/openid-configuration

Y  
sessiontimeout Session timeout configured for the authorization server. The value is specified in hours. Y 8
isliberty When you use the liberty-based authentication, such as Jazz® Authorization Server authentication, enter the value of the isliberty flag as true.
When you use the non-liberty-based authorization, such as cloud identity, enter the value of the isliberty flag as false.
Y  
license.accept Enter the value as true.
Review and accept the license before you create the RQA instance. If the license is not accepted, RQA instance creation fails.
Y false
license server.host Host details of your IBM Common Licensing server. Y  
license server.port Port number of your IBM Common Licensing server. Y 27001
license server.lmgrdport LMGRD Port number of your IBM Common Licensing server. Y 27000
rqa.admin Jazz ID of the user that is added as the RQA administrator. Y  
rqa.redis.storageclass Storage class that is used to create Persistent Volume (PV) for Redis database. Y  
rqa.domain Provide the domain name of your OpenShift® cluster.
For example, if your OpenShift Cluster URL is https://console-openshift-console.apps.clusteraddress.xyz.com, then provide the domain name as apps.clusteraddress.xyz.com.
Y  
rqa.hostname_admindashboard
(Optional)
By default, RQA generates a route for the administrator dashboard in the <your-RQA-instance-name>-admindash-route-<project-name>.<rqa.domain> format.

If you want to use the custom route name, provide the Fully Qualified Domain Name (FQDN) in the <custom-route-name>.<rqa.domain> format.

Example:
my-admindash.apps.clusteraddress.xyz.com.

If you want to use the custom hostname, provide the FQDN in the <hostname>.<custom-domain-name> format.

Example: admindash.mycompany.com

  Format:

https://<meta.name> -admindash-route-< meta.namespace>.<rqa.domain>

Example:

https://rqa-admindash-route-projectname.apps.clusteraddress.xyz.com

rqa.hostname_dngwidget
(Optional)
By default, RQA generates a route for the RQA widget in the <your-RQA-instance-name>-dngwidget-route-<project-name>.<rqa.domain> format.

If you want to use the custom route name, provide the FQDN in the <custom-route-name>.<rqa.domain> format.

Example:
my-dngwidget.apps.clusteraddress.xyz.com.

If you want to use the custom hostname, provide the FQDN in the <hostanme>.<custom-domain-name> format.

Example: dngwidget.mycompany.com

  Format:

https://<meta.name>-dngwidget-route-<meta.namespace>.<rqa.domain>

Example:

https://rqa-dngwidget-route-projectname.apps.clusteraddress.xyz.com

version RQA version that you want to install.   Example: 3.0.0

License

Description

The License property contains one required field:

accept: A boolean value that must be true for the IBM RQA pods to start successfully.

See the following example to view the full license terms:
apiVersion: apiVersion: rqa.ibm.com/v1
kind: RQA
metadata:
  name: rqa
     
namespace: rqainstance
spec:
  license:
    accept: true
  ...

version

Description

The version property specifies the desired RQA version to reconcile. The value must match with the available version or channel that the CRD and operator provide. By subscribing to a channel, automatic updates to future versions on that channel are allowed. If the RQA instance is created with a channel specified in version, the latest available version in that channel gets reconciled.

After the RQA instance is created, when you see it's status, you can view the reconciled and available versions.

Example
apiVersion: rqa.ibm.com/v1
kind: RQA
metadata:
  name: rqa
spec:
  version: 3.1.2

oidc

Description

The oidc property contains the following three required values:
  • oidc_url: The well-known configuration url of the oidc provider.

    Example

    https://jas.my.company.com:9643/oidc/endpoint/jazzop/.well-known/openid-configuration

  • sessiontimeout: The sessiontimeout is configured for the authorization server. The value is specified in hours. The default value is 8 hours. Set the sessiontimeout according to the session timeout that is configured on your oidc provider.
  • isliberty: When you use the liberty-based authentication, such as Jazz Authorization Server authentication, enter the value for the isliberty flag as true.
    When you use the non-liberty-based authorization, such as cloud identity, enter the value for the isliberty flag as false.
    Example
    apiVersion: apiVersion: rqa.ibm.com/v1
    kind: RQA
    metadata:
      name: rqa    
     
    namespace: rqainstance
    spec:
      license:
        accept: true
      oidc:
        isliberty: true
        oidc_url: >-
          https://testrqawind1.fyre.ibm.com:9643/oidc/endpoint/jazzop/.well-known/openid-configuration
        sessiontimeout: 2
      rqa:
      ...
    

licenseserver

Description

The licenseserver property contains the following three required fields:
  • host: Enter the host details of your IBM Common Licensing server.
  • port: The port property is an integer. Enter the port number for your IBM Common Licensing Server.
  • lmgrdport: The lmgrdport property is an integer. Enter the value for lmgrdport for your IBM Common Licensing Server.
Example
apiVersion: apiVersion: rqa.ibm.com/v1
kind: RQA
metadata:
  name: rqa    
 
namespace: rqainstance
spec:
  license:
    accept: true
  licenseserver:
    host: rqaclm1.fyre.ibm.com
    port: 27001
    lmgrdport: 27000
rqa:
  ...

rqa

Description

The rqa property contains three required fields and two optional fields. The following are the required fields:
  • admin: Enter the userId that is added as the RQA administrator. The RQA administrator can login to the RQA administration dashboard after the RQA instance is created and deployed.
  • domain: Enter the domain name of your OpenShift cluster. For example, if your OpenShift Cluster URL is https://console-openshift-console.apps.clusteraddress.xyz.com, then provide the domain name as apps.clusteraddress.xyz.com.
  • Redis.storageclass: Enter the Storage class that is used to create the Persistent Volume (PV) for the Redis database.
The following are the optional fields:
  • hostname_admindashboard: By default, RQA generates a route for the administrator dashboard in the <your-RQA-instance-name>-admindash-route-<project-name>.<rqa.domain> format.

    If you want to use the custom route name, provide the Fully Qualified Domain Name (FQDN) in the <custom-route-name>.<rqa.domain> format.

    Example
    my-admindash.apps.clusteraddress.xyz.com.

    If you want to use the custom hostname, provide the FQDN in the <hostname>.<custom-domain-name> format.

    Example
    admindash.mycompany.com

  • hostname_dngwidget: By default, RQA generates a route for the RQA widget in the <your-RQA-instance-name>-dngwidget-route-<project-name>.<rqa.domain> format.

    If you want to use the custom route name, provide the FQDN in the <custom-route-name>.<rqa.domain> format.

    Example
    my-dngwidget.apps.clusteraddress.xyz.com.

    If you want to use the custom hostname, provide the FQDN in the <hostanme>.<custom-domain-name> format.

    Example
    dngwidget.mycompany.com.

    Example
    apiVersion: apiVersion: rqa.ibm.com/v1
    kind: RQA
    metadata:
      name: rqa    
     
    namespace: rqainstance
    spec:
      licenseserver:
        host: rqaclm1.fyre.ibm.com
        port: 27001
        lmgrdport: 27000
      rqa:
        admin: ADMIN
        domain: apps.rqacluster.xyz.com
        redis:
          storageclass: rook-ceph-block
    … 
    

Status

The following details are shown:
  • conditions
  • phase
  • version
Example
status:
  conditions:
    - lastTransitionTime: '2021-08-25T01:00:23Z'
      message: Running reconciliation
      reason: Running
      status: 'True'
      type: Running
  phase: Running
  reason: Setup Completed
  version:
    reconciled: 3.1.2
… 
conditions

RQA supports Kubernetes conditions that you can view as a snapshot of the current and the most up-to-date status of the RQA instance.

The Pending condition is set to True when RQA is first created and is reconciling the desired StatefulSet. When the StatefulSet is created and Ready, the Pending condition gets removed.

The Ready condition is set True when all of the Pods in the StatefulSet are Ready, and the number of replicas in the StatefulSet matches the desired number of replicas set by the RQA instance specifications.

The Error condition will be set to True when an error is encountered during reconciliation of the RQA. The Reason and Message should have details regarding what the error may have been, such as a referenced ConfigMap not being found.

The Warning condition is set to True when a warning is generated at the time of RQA reconciliation. The Reason and the Message provides the details about the warning.

phase
The Phase status property provides the current phase of the RQA. The following are the phase values:
  • Pending: No errors exist but RQA is not yet Ready.
  • Running: No errors exist and RQA is Ready.
  • Failed: A Reconcile Error is found.
versions

The version status provides information about the currently reconciled version of the operand, the available versions, and channels that the operator supports.

A channel, allows for a user to subscribe to a stream of releases. When initially deployed with the version property in the CR specification set to a channel, the operator automatically installs the latest available version within that channel. When new versions are released in the respective channel, the operands that is CR instances are automatically upgraded by the operator.

The currently reconciled version is always available in the status.version.reconciled, even if channel is specified as the version in the CR specification.