Enabling SSO and SCM Integration with Docker Compose

This quick start guide demonstrates how to use Docker Compose to enable SSO and SCM integration on HCL Compass with RESTful services.

Before you begin

Note: Using HCL Compass on Docker and Docker Compose is not supported when deployed in a production environment. To use HCL Compass in a container in a production environment, deploy HCL Compass to a Kubernetes environment. For more information, see Deploying HCL Compass on SoFy Sandbox.
Before you can use the SCM integration functionality in HCL Compass, you must first setup HCL Compass with Docker Compose and configure RESTful, search, and dashboard features by performing the following steps:
  1. Compete steps 1-3 in Getting started with Docker Compose.
  2. Complete steps 2-3 in Using HCL Compass RESTful and search features in separate Docker Compose services.
  3. Complete steps 1-2 in Getting started with HCL Compass RESTful, Elasticsearch, and Kibana (EK) services.

About this task

This quick start guide demonstrates how to use Docker Compose to setup and run an HCL Compass with RESTful and SCM integration. In this example, we will create the following:
  • hcl-compass service for RESTful applications with two database connection set.
  • hcl-compass-search1 service for Search application and first database connection set.
  • hcl-compass-search2 service for Search application and second database connection set.
  • hcl-compass-elasticsearch service for the Elasticsearch application in order to support HCL Compass dashboards.
  • hcl-compass-kibana service for the Kibana application in order to support HCL Compass dashboards.
  • hcl-compass-nginx service for the Nginix application in order to support HCL Compass dashboards.

Procedure

  1. Apply the SCM Integration Package to the Application/Records by using the HCL Compass Designer.
  2. Create the environment file for configuring SSO in HCL Compass.
    Create an environment file named sso.env in your project directory and paste in the admin_user_name, admin_user_password, repository_name, and sso_user_name for each repository.
    SSO_ENABLED=TRUE
    SSO_CONFIG_SET=("SSO_CONFIG_1""SSO_CONFIG_2" ..... "SSO_CONFIG_n")
    
    Each SSO configuration SSO_CONFIG_x must be set with the following format:
    -username [Username] -password [User password] -dbset [dbset_name] -ssousername [sso_user_name]
    The following example illustrates the proper configuration for a two SSO configuration. In this case, one is for DefectTracking-SAMPL and the other is for EssentialSAFe-SAMPL repository applications:
    SSO_CONFIG_SET=("-username admin -password "" -dbset DefectTracking  -ssousername SYSTEM_SSO1""-username admin -password "" -dbset EssentialSAFe -ssousername SYSTEM_SSO2")
    Note: The value for [sso_user_name] should be an internal name provided by the administrator. This name should be unique and should not be used for any other function in HCL Compass.
  3. Update the hcl-compass service in a Docker compose file.
    Create a YAML file named docker-compose-sso.yaml in your project directory as shown below. Paste in the sso.env file.
    version: '3.3'
    services:
      hcl-compass:
        env_file:
          - sso.env                          # environment variables file for SSO configuration in hcl-compass container
    

    The docker-compose-sso.yaml file updates the hcl-compass service to set additional environment variables for configuring SSO in the hcl-compass container.

  4. Build and run the HCL Compass application with Docker Compose
    1. From your project directory, start your application by running docker-compuse up.
      $ docker-compose -f docker-compose.yaml -f docker-compose-search-model2.yaml -f docker-compose-ek.yaml up  -d
      
      Creating network "compass_hcl-compass" with driver "bridge"
      Creating volume "compass_hcl-compass-logs" with default driver
      Creating volume "compass_hcl-compass-config" with default driver
      Creating volume "compass_elasticsearch-data" with default driver
      Creating compass_hcl-compass-elasticsearch_1 ... done
      Creating compass_hcl-compass-kibana_1        ... done
      Creating compass_hcl-compass-search1_1       ... done
      Creating compass_hcl-compass-search2_1       ... done
      Creating compass_hcl-compass-nginx_1         ... done
      Creating compass_hcl-compass_1               ... done
    2. After the command has been launched, you can check to see that the service and the container are started by using the following command:
      $ docker-compose -f docker-compose.yaml -f docker-compose-search-model2.yaml -f docker-compose-ek.yaml -f docker-compose-sso.yaml ps
  5. Optionally, you can view the container logs by using the following command:
    $ docker-compose -f docker-compose.yaml -f docker-compose-search-model2.yaml -f docker-compose-ek.yaml -f docker-compose-sso.yaml logs
  6. Enter https://localhost:8190/ in a browser to see the HCL Compass application running with SCMIntegrationConfig, SCMIntegrationEvent, and SCMIntegrationSecurity components support.