Installing DevOps Loop on a RHEL system for a demo setup
You can find information about the tasks that you can perform to install HCL DevOps Loop on a Red Hat Enterprise Linux (RHEL) system for a demo setup.
Before you begin
You must have completed the following tasks before running the infrastructure setup script:
- Verifed that the RHEL system on which you are deploying DevOps Loop meets the
following minimum requirements:
- Operating system: RHEL 9.4 or later
- Disk space: 300 GB
- RAM: 64 GB
- CPU: 16 Core
- Registered your RHEL system by using the subscription
manager.
subscription-manager register - (Recommended) Created a snapshot of your VM before running the infrastructure setup script.
- Obtained the user credentials of the licensed Docker account.Note:If you do not provide the licensed Docker account credentials, the system might take approximately 6 hours to become operational.
Procedure
-
Run the following command to download and extract the DevOps Loop Helm chart and
scripts:
helm pull oci://hclcr.io/devops-automation-helm/hcl-devops-loop --version 2.0.100 --untar -
Set the following environment variables:
export USERNAME=<docker_username> export PASSWORD=<docker_password>Note:The<docker_username>and<docker_password>are your Docker Hub credentials. If these values are not set, you are prompted to log in during script execution. -
Run the following RHEL9-K8S-Infra-Setup.sh script:
hcl-devops-loop/scripts/demo/RHEL9-K8S-Infra-Setup.sh 2>&1 | tee infra-setup.log -
Run the following command to create a namespace:
kubectl create namespace devops-loop -
Perform the following steps to access the HCL Harbor container registry:
- Log in to the HCL Harbor container registry using your HCL ID and password by selecting the LOGIN VIA OIDC PROVIDER authentication method.
- Copy the CLI secret by opening your User
Profile from the top right corner of the page.
This value serves as the password for the
docker-registrysecret creation command. - Create an
imagePullSecretto authenticate and pull images from the HCL Entitled Registry.Note:Secrets are namespace-scoped and must be created in each namespace where you plan to install DevOps Loop.
Use the following command to create animagePullSecretnamedhcl-entitlement-key:kubectl create secret docker-registry hcl-entitlement-key \ --docker-username=<username> \ --docker-password=<password> \ --docker-server=hclcr.io --namespace devops-loop \For example:kubectl create secret docker-registry hcl-entitlement-key \ --docker-username=xxxx@hcl.com \ --docker-password=AOve4CzW2Hs0yCnuQxxxxxxvX \ --docker-server=hclcr.io --namespace devops-loop \ -
Update the following values in the HCL-devops-Install.sh script:
LICENSE_SERVER=<port>@<hostname_or_IP> EMAIL_SERVER_HOST=<smtp_host> EMAIL_SERVER_PORT=<smtp_port> EMAIL_FROM_ADDRESS=<sender_email> EMAIL_SERVER_USERNAME="<smtp_username> EMAIL_SERVER_PASSWORD="<smtp_password> -
Run the installation script:
./HCL-devops-Install.shAfter the successful installation, the following URLs are displayed:
Application URL: https://<system_IP_address>.nip.io
Keycloak URL to add users: https://<system_IP_address>.nip.io/auth
Note:If you are installing DevOps Loop on a computer that is newly set up, then the installation might fail sometimes. If the installation fails, to resolve the issue, you must uninstall the application by running the uninstall.sh script and then reinstall it.Note:If the installation fails due to a timeout, you must run the installation script again. - Optional:
Run the following command to check whether all the pods are running:
kubectl get pods -n devops-loop - Open a browser and enter the application URL to get started with DevOps Loop.
-
Run the following command to log out of Docker to remove any cached
authentication tokens, after completing the DevOps Loop
installation:
docker logoutThis command removes the login credentials forhttps://index.docker.io/v1/and cleans up Docker credentials stored in the cache (for example,/root/.docker/config.json). Logging out is recommended for security, as Docker authentication tokens are otherwise retained on the system.Note:- When you run DevOps Loop on a
RHEL-based system for an extended period (approximately 30 days),
you might need to restart the Calico DaemonSet to ensure continued
creation of new loops and Kubernetes pods (for example, when running
tests in Test Hub).
This behaviour is due to Kubernetes security tokens used by the Calico networking component are rotated periodically. In some RHEL demo environments, the updated token is not automatically picked up, and a restart ensures the networking components recognize the refreshed credentials.
To perform this maintenance step, you must run the following command:
kubectl rollout restart daemonset calico-node -n kube-systemRestarting the Calico DaemonSet is safe and ensures normal system operation during extended demo periods.
- Use the following script to recover a Kubernetes node that is
experiencing full disk usage:
-
Locate the recovery script in the repository:
ibm-devops-loop/scripts/demo/Recover-K8s-Node.sh -
Run the script on the affected Kubernetes node.
-
This script cleans logs, caches, and unused containers to free up disk space and restore node functionality.
- When you run DevOps Loop on a
RHEL-based system for an extended period (approximately 30 days),
you might need to restart the Calico DaemonSet to ensure continued
creation of new loops and Kubernetes pods (for example, when running
tests in Test Hub).