This documentation is for a release that is no longer maintained
See documentation for the latest supported version.Chapter 1. Adding secrets to GitLab CI for secure integration with external tools
Prerequisites
Before you configure GitLab CI, ensure you have the following:
- Admin access to your GitLab repository and CI/CD settings.
- Container registry credentials for pulling container images from Quay.io, JFrog Artifactory, or Sonatype Nexus.
Authentication details for specific GitLab CI tasks:
For ACS security tasks:
- ROX Central server endpoint
- ROX API token
For SBOM and artifact signing tasks:
- Cosign signing key password
- Private key and public key
- Trustification URL
- Client ID and secret
- Supported CycloneDX version
NoteThe credentials and other details are already Base64-encoded, so you do not need to encode them again. You can find these credentials in your
private.env
file, which you created during RHTAP installation.
1.1. Option 1: Using GitLab UI Copy linkLink copied to clipboard!
Procedure
- Log in to GitLab and open your source repository.
- Expand the Setting menu and select CI/CD.
- In the Variables section, select Expand, and then select Add variable.
Enter the following details:
- Under Flags, select Mask variable to hide sensitive values.
- In the Key field, enter MY_GITLAB_TOKEN.
- In the Value field, enter the token associated with your GitLab account.
Repeat steps 3-4 to add the required variables:
Expand Variable Description Provide image registry credentials for only one image registry.
QUAY_IO_CREDS_USR
Username for accessing Quay.io repository.
QUAY_IO_CREDS_PSW
Password for accessing Quay.io repository.
ARTIFACTORY_IO_CREDS_USR
Username for accessing JFrog Artifactory repository.
ARTIFACTORY_IO_CREDS_PSW
Password for accessing JFrog Artifactory repository.
NEXUS_IO_CREDS_USR
Username for accessing Sonatype Nexus repository.
NEXUS_IO_CREDS_PSW
Password for accessing Sonatype Nexus repository.
Set these variables if Gitlab CI runners do not run on the same cluster as the RHTAP instance.
REKOR_HOST
URL of your Rekor server.
TUF_MIRROR
URL of your TUF service.
GitOps configuration for GitLab
GITOPS_AUTH_PASSWORD
The token the system uses to update the GitOps repository for newly built images.
GITOPS_AUTH_USERNAME
(optional)The parameter required for GitLab to work with Jenkins. You also need to uncomment a line with this parameter in a Jenkinsfile: GITOPS_AUTH_USERNAME = credentials('GITOPS_AUTH_USERNAME'). By default, this line is commented out.
Variable required for ACS tasks.
ROX_CENTRAL_ENDPOINT
Endpoint for the ROX Central server.
ROX_API_TOKEN
API token for accessing the ROX server.
Variables required for SBOM tasks.
COSIGN_SECRET_PASSWORD
Password for Cosign signing key.
COSIGN_SECRET_KEY
Private key for Cosign.
COSIGN_PUBLIC_KEY
Public key for Cosign.
TRUSTIFICATION_BOMBASTIC_API_URL
URL for Trustification Bombastic API used in SBOM generation.
TRUSTIFICATION_OIDC_ISSUER_URL
OIDC issuer URL used for authentication when interacting with the Trustification Bombastic API.
TRUSTIFICATION_OIDC_CLIENT_ID
Client ID for authenticating to the Trustification Bombastic API using OIDC.
TRUSTIFICATION_OIDC_CLIENT_SECRET
Client secret used alongside the client ID to authenticate to the Trustification Bombastic API.
TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION
Specifies the CycloneDX SBOM version that is supported and generated by the system.
- Select Add variable.
Rerun the last pipeline run to verify the secrets are applied correctly.
- Alternatively, switch to you application’s source repository in GitLab, make a minor change, and commit it to trigger a new pipeline run.
1.2. Option 2: Using CLI Copy linkLink copied to clipboard!
Procedure
Create a project with two files in your preferred text editor, such as Visual Studio Code:
- env_vars.sh
- glab-set-vars
Update the
env_vars.sh
file with the following environment variables:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Update the
glab-set-vars
file with the following information:Copy to Clipboard Copied! Toggle word wrap Toggle overflow (Optional) Modify the
glab-set-vars
file to disable variables that are not required. For example, to disablesetVars ROX_API_TOKEN $ROX_API_TOKEN
, addfalse
next to it.ROX_API_TOKEN $ROX_API_TOKEN false
ROX_API_TOKEN $ROX_API_TOKEN false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Load the environment variables into your current shell session:
source env_vars.sh
source env_vars.sh
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Make the
glab-set-vars
script executable, and run it with your repository name to set the variables in your GitLab repository.chmod +x glab-set-vars ./glab-set-vars your_repository_name
chmod +x glab-set-vars ./glab-set-vars your_repository_name
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Rerun the last pipeline run to verify the secrets are applied correctly.
- Alternatively, switch to you application’s source repository in GitLab, make a minor change, and commit it to trigger a new pipeline run.
Revised on 2025-02-12 15:08:44 UTC