With Argo CD, you can deploy your applications to the OpenShift cluster either by using the Argo CD dashboard or by using the oc tool.

Prerequisites
  • Red Hat OpenShift GitOps is installed in your cluster.

Logging in to the Argo CD instance by using your OpenShift credentials

Red Hat OpenShift GitOps Operator automatically creates a ready-to-use Argo CD instance that is available in the openshift-gitops namespace.

Prerequisites
  • You have installed the Red Hat OpenShift GitOps Operator in your cluster.

Procedure
  1. In the Administrator perspective of the web console, navigate to OperatorsInstalled Operators to verify that the Red Hat OpenShift GitOps Operator is installed.

  2. Navigate to the red hat applications menu icon menu → Application StagesArgo CD. The login page of the Argo CD UI is displayed in a new window.

  3. Obtain the password for the Argo CD instance:

    1. Navigate to the Developer perspective of the web console. A list of available projects is displayed.

    2. Navigate to the openshift-gitops project.

    3. Use the left navigation panel to navigate to the Secrets page.

    4. Select the openshift-gitops-cluster instance to display the password.

    5. Copy the password.

  4. Use this password and admin as the username to log in to the Argo CD UI in the new window.

Creating an application by using the Argo CD dashboard

Argo CD provides a dashboard which allows you to create applications.

Procedure
  1. In the Argo CD dashboard, click the New App button to add a new Argo CD application.

  2. For this workflow, create a spring-petclinic application with the following configurations:

    Application Name

    spring-petclinic

    Project

    default

    Sync Policy

    Automatic

    Repository URL

    https://github.com/redhat-developer/openshift-gitops-getting-started

    Revision

    HEAD

    Path

    app

    Destination

    https://kubernetes.default.svc

    Namespace

    spring-petclinic

    Directory Recurse

    checked

  3. Click Create to create your application.

Creating an application by using the oc tool

You can create Argo CD applications in your terminal by using the oc tool.

Procedure
  1. Download the sample application:

    $ git clone git@github.com:redhat-developer/openshift-gitops-getting-started.git
  2. Create the application:

    $ oc create -f openshift-gitops-getting-started/argo/app.yaml
  3. Run the oc get command to review the created application:

    $ oc get application -n openshift-gitops

Verifying Argo CD self-healing behavior

Argo CD constantly monitors the state of deployed applications, detects differences between the specified manifests in Git and live changes in the cluster, and then automatically corrects them. This behavior is referred to as self-healing.

You can test and observe the self-healing behavior in Argo CD.

Prerequisites
  • The sample app-spring-petclinic application is deployed and configured.

Procedure
  1. In the Argo CD dashboard, verify that your application has the Synced status.

  2. Click the app-spring-petclinic tile in the Argo CD dashboard to view the application resources that are deployed to the cluster.

  3. In the OpenShift web console, navigate to the Developer perspective.

  4. Modify the Spring PetClinic deployment and commit the changes to the app/ directory of the Git repository. Argo CD will automatically deploy the changes to the cluster.

  5. Test the self-healing behavior by modifying the deployment on the cluster and scaling it up to two pods while watching the application in the OpenShift web console.

    1. Run the following command to modify the deployment:

      $ oc scale deployment spring-petclinic --replicas 2  -n spring-petclinic
    2. In the OpenShift web console, notice that the deployment scales up to two pods and immediately scales down again to one pod. Argo CD detected a difference from the Git repository and auto-healed the application on the OpenShift cluster.

  6. In the Argo CD dashboard, click the app-spring-petclinic tile → App DetailsEvents. The Events tab displays the following events: Argo CD detecting out of sync deployment resources on the cluster and then resyncing the Git repository to correct it.