Installing an external agent for Deploy in DevOps Loop

You can install and connect an external Deploy agent to a DevOps Loop instance running on Kubernetes (K8s), IBM Kubernetes Service (IKS), or OpenShift Container Platform (OCP).

Ensure that the following prerequisites are met:

  • Installed DevOps Loop on Kubernetes (K8s), IKS, or OCP.
  • You have access to the Kubernetes or OpenShift cluster where DevOps Loop is running.
  1. Obtain the Deploy web agent communication URL for the Deploy server running in the DevOps Loop instance.
    The Deploy web agent communication URL varies in Kubernetes and OpenShift installations.
    • In a Kubernetes cluster, the URL is indicated as: wss://service-{{.Values.global.domain}}:7919

      Here, the value for the Values.global.domain is the same URL used to access the DevOps Loop UI.

    • In an OpenShift cluster, the URL is derived from the Route resource named <releaseName>-ibm-ucd-prod-wss.
      You can run the following command to get the full web agent URL:
      echo "wss://$(oc get route devops-loop-ibm-ucd-prod-wss -o jsonpath='{.spec.host}'):443"
      Note: Replace devops-loop with your actual Helm release name if different.
  2. Install the Deploy agent using the Deploy web agent communication URL obtained in step 1.
    During the agent installation, you must specify any teams you want the Deploy agent to be included in. Refer to Installing agents for more information on Deploy agent installation.
  3. Start the external Deploy agent.
    The agent is displayed under the Agents section in the Deploy UI.
    If you encounter issues connecting the Deploy agent to the Deploy server running in DevOps Loop, verify that the Emissary Ingress service is configured to route traffic on port 7919 to the Deploy server WSS service:
    1. Run the following command to inspect the service:
      $ kubectl get svc -n emissary
      A correct output lists 7919 in PORT(S) column, like the following:
      NAME                     TYPE         CLUSTER-IP     EXTERNAL-IP PORT(S)                                                  AGE
      emissary-ingress         LoadBalancer 172.21.20.31   xx.xx.xx.xx 443:31734/TCP,80:32086/TCP,7919:31941/TCP,9022:31708/TCP 112d
      emissary-ingress-admin   ClusterIP    172.21.9.14    <none>      8877/TCP,8005/TCP                                        112d
    2. If the port 7919 is not listed for the emissary-ingress service, edit the service configuration:
      $ kubectl edit svc emissary-ingress -n emissary
    3. Under the spec.ports section, add the following lines:
      - name: deploy-wss
       port: 7919
       protocol: TCP
       targetPort: 7919

      After port 7919 is configured in the emissary-ingress service, your Deploy agent should successfully connect to the Deploy server running in DevOps Loop.

  4. Perform the following steps to manually assign a license type:
    1. Navigate to Deploy
    2. Go to Resources → Agents
    3. Locate the connected agent
    4. Click the Actions menu for the agent
    5. Select Set License Type
    6. Choose the appropriate license type:
      • Authorized (Assigned) or
      • Floating
    7. Click Save
  5. For IKS, configure the cluster service domain, if it is not configured.
    Follow steps in the Installing DevOps Loop on IBM Cloud Kubernetes Service (IKS) topic for setting up the service domain.

You have installed and connected the external Deploy agent to DevOps Loop.

You can now use this agent to run deployments.