Console Initial Setup
Prerequisites
- Access to Keycloak Master Realm
- SSO has been setup for:
SSO setup for tools that are disabled is not required.
Keycloak
SmoothGlue will automatically configure this client and group out of the box. This serves primarily as reference if opting out of the auto-SSO feature. Skip to Create Initial Admin User if not manually setting up the Keycloak client and group.
Create Keycloak Client
- In the
smoothgluerealm, click onClientsunderManagein the left pane. - Click
Create client. - Ensure the
Client typeisOpenId Connect. - Enter a unique client name (e.g.,
console) forClient ID. - Click on the
Nextbutton. - Leave
Client authenticationtoggled off, and ensureDirect access grantsis unchecked. - Click on the
Nextbutton. - Set
Valid Redirect URIstohttps://console.${DOMAIN}/api/auth/callback/keycloak. - Set
Valid post logout redirect URIstohttps://console.${DOMAIN}. - Click on the
Savebutton. - In the
Settingstab and in theCapability configsection, ensureStandard flowis enabled. - In the
Advancedtab and in theOpenID Connect Compatibility Modessection, ensureUse refresh tokensisOn. - Click
Saveat the bottom of the screen.
Configure Dedicated Mapper
- Go to the
consoleclient and click on theClient scopestab. - Click on the
console-dedicatedclient scope. - Click
Configure a new mapper. - Select
User Attribute. - Enter
toolsforName,User AttributeandToken Claim Name. - Set
Claim JSON TypetoString. - Ensure
Add to ID tokenisOFF. - Ensure
Add to access tokenandAdd to userinfoisON. - Ensure
MultivaluedandAggregate attribute valuesisON. - Click
Save.
Configure _structsureAdmins Group
Console assigns SmoothGlue admins configured in Console to the _structsureAdmins group in Keycloak. It is important that this group has the realm-admin role mapping so that admins can manage users in Keycloak via Console:
- In the
smoothgluerealm, clickGroupsin the left-hand panel. - Select
_structsureAdmins. - Go to
Role mappingtab. - Click
Assign role. - Ensure the drop-down filter in the top left is set to
Filter by clients. - Search for and enable the
realm-adminrole. - Click
Assign.
Create Initial Admin User
Console needs an initial Keycloak user with the realm-admin role in order to be able to fully initialize. This initial Keycloak user will be able to create other users and admin users with Keycloak. This user will also be used to setup access keys and permissions within tools Console supports integrations for.:
- In the
smoothgluerealm, clickUsersin the left-hand panel. - Click
Add user. - Fill in following information for the initial user:
- Email verified: Enabled.
- Username:
console-initial-admin. - Email:
console-initial-admin@<your-domain>.com - First name:
Console - Last name:
SmoothGlue - Groups:
_structsureAdmins
- Click
Create.
Set a password for the console-initial-admin user:
- From the
smoothgluerealm, go toUsers>console-initial-admin. - Go to the
Credentialstab. - Click
Set password. - Enter a password.
- Disable
Temporary.
It is recommended to remove the password for this user once the initial setup is complete for Console.
Configure Console for Keycloak
Console uses the permissions of the logged-in user to interact with Keycloak. As such, a client secret is not required. However, Console will need be configured with a client ID.
If Keycloak is using non-publicly trusted or self-signed certificates, Console will need to be configured with additional CAs in order for Console to talk to Keycloak.
Add the following to bigbang-values.yaml:
packages:
console:
values:
keycloak:
host: keycloak.<DOMAIN>
envs:
# Keycloak Client ID configured above
KEYCLOAK_ID: console
extraCACerts: |
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Configure Console Integrations
Console has integrations with the following tools for managing users and access to resources:
- GitLab
- Mattermost
- Jira
- Confluence
If Console is to be deployed without one or more of these tools, Console needs to be configured to disable the integration. The following shows example bigbang-values.yaml that could be used to disable any of the integrations:
packages:
console:
values:
mattermost:
enable: false
gitlab:
enable: false
confluence:
enable: false
jira:
enable: false
Failing to disable unused integrations can lead to initialization failures.
GitLab
Users are dynamically created upon login to GitLab, so the System Integrator needs to login to GitLab as the console-initial-admin user in order to create the user within GitLab.
After logging in as console-initial-admin logout of GitLab and log in as the default admin user for GitLab.
Assign admin privileges to the console-initial-admin user:
- Go to the admin panel by clicking
Adminnear the bottom-left of the screen or by going tohttps://{{GitLab_Hostname}}/admin. - Go to
Users. - Click
Editfor theconsole-initial-adminuser. - Change
Access leveltoAdministrator - Click
Save changes.
Create Personal Access Token:
- Impersonate or log in as the
console-initial-adminuser. - Click the user icon in the top-left corner, and select
Preferences. - Click
Access Tokenson the left-hand panel. - Click a
Add a new token:- Name:
console-admin-integration. - Remove the expiration date.
- Scopes:
apiandadmin_mode. - Click
Create personal access token.
- Name:
- Save the value for the token.
To configure Console to use the access token, the following config should be placed into the bigbang-secrets.yaml:
packages:
console:
values:
gitlab:
accessToken: '<Personal Access Token Value>'
host: 'gitlab.<DOMAIN>'
Jira/Confluence
Users are dynamically created upon login to Jira, so the System Integrator needs to login to Jira as the console-initial-admin before proceeding.
Assign admin privileges to console-initial-admin user:
- Log in to Jira with an admin-level account.
- Click on the Settings gear icon in the top-right corner.
- Click
User management. - Edit user groups for
console-initial-adminby clicking the kebab icon (3 vertical dots) to add the following groups: a.jira-administratorsb.confluence-usersc.confluence-administrators
Create Jira Personal Access Token:
- Log into Jira as the
console-initial-adminuser. - Click the user icon in the top right corner, and go to
Profile. - Click
Personal Access Tokensin the left-hand panel. - Click
Create token:- Token name:
console-admin-integration. - Disable
Automatic expiry.
- Token name:
- Click
Create. - Save token value.
Create Confluence Personal Access Token:
- Log into Confluence as the
console-initial-adminuser. - Click the user icon in the top right corner, and go to
Settings. - Click
Personal Access Tokensin the left-hand panel. - Click
Create token:- Token name:
console-admin-integration. - Disable
Automatic expiry.
- Token name:
- Click
Create. - Save token value.
To configure Console to use the access tokens, the following config should be placed into the bigbang-secrets.yaml:
packages:
console:
values:
jira:
host: 'jira.<DOMAIN>'
accessToken: '<Jira Access Token Value>'
confluence:
host: 'confluence.<DOMAIN>'
accessToken: '<Confluence Access Token Value>'
envs:
JIRA_USERNAME: 'console-initial-admin'
Mattermost
Enable Personal Access Tokens for Admins:
- Login to Mattermost with an admin-level account
- Click the 9 dot symbol in the top-left (left of the Mattermost logo).
- Click
System Console. - Click
Integration Managementin the left-hand panel. - Enable Personal Access Tokens:
True - Click
Save. - Leave
System Consoleby clickingBack to <team name>.
Create Personal Access Token
- Login to Mattermost with an admin-level account
- Click profile icon in the top-right.
- Click
Profile. - Click
Security. - Click
EditforPersonal Access Tokens. - Click
Create Token:- Token Description:
console-admin-integration. - Click
Yes, Create.
- Token Description:
- Save
Access Tokenvalue.
packages:
console:
values:
mattermost:
host: 'chat.<DOMAIN>'
accessToken: 'Access Token Value'
Initialize Console
After a fresh installation of SmoothGlue Console, the application needs to perform some initialization of its database. This initialization needs to be triggered by a Keycloak user within the smoothglue realm and the user needs to have realm-management roles/permissions in Keycloak. Assuming the steps above have been followed for Creating the Initial Admin User, the console-initial-admin should be used for the following steps:
- Visit the
{console-url}/api/initializeendpoint in a browser to initialize the database with the necessary tools. - Visit
{console-url}in a browser and log in as theconsole-initial-adminuser. - Visit
{console-url}/api/initializeagain. This time, you will be established properly in SmoothGlue Console as a SmoothGlue Admin. - Restart the smoothglue console processes.
The first user to complete these initialization steps will become the default admin within SmoothGlue Console.
To learn more about Console's capabilities, continue reading our Introduction to SmoothGlue Console.
More information on available configuration options and technical descriptions of Console actions can be found in the Console Technical Manual.