Worker OEA Installation via curl command

Note: This installation is only for installing the Argo Components, intended to be used with the agent.

Introduction:

This document provides step-by-step instructions for installing Argo + Agent on a Kubernetes cluster using a single curl command; it is assumed that the user is already using ISD in his environment.

The installation involves the following components:

  • Argo Components (ArgoCD, Rollouts)

  • Agent configuration and Integration of ArgoCD with ISD

  • Additional supporting/common components (Redis, OpenLDAP)

Note: Worker OEA Installation via curl command v4.1.1 supports the following Argo Components:

  • Argo CD - v2.4.8

  • Argo Rollout - v1.2.0

Environment requirements:

It is assumed that you have a Kubernetes cluster with Nginx and cert-manager already installed. If not, refer to the document here for more information on the Environment setup for ISD for Argo.

For production-grade installation, please refer to the Infrastructure requirements here.

Pre-requisites:

  • kubeconfig of the Argo CD installed cluster

  • ISD installed

  • URL and Username/Password

  • Mapping of host URL with agent-grpc service. If not, do the mapping using this doc.

Worker OEA Installation Steps:

Worker OEA installation can be done using a single curl command. It is Helm in the backend.

Follow the instructions below for installation of Worker OEA and Integration of Argo CD with ISD.

  1. Run the following curl command for installation.

    curl -o argo-agent.sh https://raw.githubusercontent.com/opsmx/enterprise-argo/main/curl/4.1.1/argo-agent.sh && chmod 777 argo-agent.sh && ./argo-agent.sh

  2. After running the above curl command, enter the following inputs.

    • Specify Namespace: argoagent

    • Specify ISD-UI URL: isd.ninja-test.opsmx.net

    • Specify ISD Username: admin

    • Specify ISD Password: Execute the following command to retrieve the password kubectl get secret openldap -o jsonpath='{.data.LDAP_ADMIN_PASSWORD}'| base64 -d

    • Specify Controller DNS: isdcontroller.agent.opsmx.net

    • Specify ArgoCD URL: argocdagent.argo.opsmx.net

    • Specify ArgoRollout URL: argorolloutagent.argo.opsmx.net

    • Specify Agent name: argoremote

    After passing the above parameters, the output appears as follows. Wait for the installation to complete.

    $ curl -o argo-agent.sh https://raw.githubusercontent.com/opsmx/enterprise-argo/main/curl/4.1.1/argo-agent.sh && chmod 777 argo-agent.sh && ./argo-agent.sh
    
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100 13870  100 13870    0     0  20609      0 --:--:-- --:--:-- --:--:-- 20578
    
        A R G O - A G E N T                                                                                                                                                            
    ------------------------------------------------------------
     System Requirements 
    ------------------------------------------------------------
       Configuration with at least 4 cores and 16 GB memory
       Kubernetes cluster 1.19 or later                    
       Helm 3 is setup on the client system   Installation - https://helm.sh/docs/intro/install/
       Nginx ingress controlled installed     Installation - https://kubernetes.github.io/ingress-nginx/deploy/
       Cert-manager installed                 Installation - https://cert-manager.io/docs/installation/kubernetes/
    ------------------------------------------------------------
     Prerequisite:
    ------------------------------------------------------------
                 1. ISD installed
                 2. Controller mapped to the DNS
                        CHECK: nslookup <controller DNS>
    -------------------------
    Press enter to continue...
    -------------------------------------
               Pre Installation          
    -------------------------------------
    Please Specify the required data for installation ....
    
    Specify Namespace: argoagent
    Specify ISD-UI URL: isd.ninja-test.opsmx.net
    Specify ISD Username: admin
    Specify ISD Password: Execute the following command to retrieve the password
    kubectl get secret openldap -o jsonpath='{.data.LDAP_ADMIN_PASSWORD}'| base64 -d
    Specify Controller DNS: isdcontroller.agent.opsmx.net
    Specify ArgoCD URL: argocdagent.argo.opsmx.net
    Specify ArgoRollout URL: argorolloutagent.argo.opsmx.net
    ---
    Specify Agent name: argoremote
    Checking for dependency......
    Kubectl present in server..
    Helm present in server..
    yq present in server..
    Installed ArgoCLI dependency
    Existing CRD's analysisruns.argoproj.io
    -------------------------------------
                 Installation     
    -------------------------------------
    Adding the helm repo....
    Updating the helm repo ...
    Creating the Namespace ...
    namespace/argoagent created
    
    Installing...
    
    NAME: isdargoargoagent
    LAST DEPLOYED: Thu Nov  3 11:20:02 2022
    NAMESPACE: argoagent
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    -------------------------------------
                 Post Installation       
    -------------------------------------
    ARGO services to be stabilize
           Waiting for ARGO services to be ready
           ARGO services are Up and Ready..
    
    'admin:login' logged in successfully
    Context 'argocdagent.argo.opsmx.net' updated
    {"id":14}  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100 11105  100 11105    0     0   3207      0  0:00:03  0:00:03 --:--:--  3207
    LICENSE
    README.md
    kubectl-slice
    Wrote /tmp/yamls/serviceaccount-opsmx-agent-argoremote.yaml -- 163 bytes.
    Wrote /tmp/yamls/clusterrole-opsmx-agent-argoremote.yaml -- 897 bytes.
    Wrote /tmp/yamls/clusterrolebinding-opsmx-agent-argoremote.yaml -- 382 bytes.
    Wrote /tmp/yamls/role-opsmx-role-argoremote.yaml -- 293 bytes.
    Wrote /tmp/yamls/rolebinding-opsmx-binding-argoremote.yaml -- 348 bytes.
    Wrote /tmp/yamls/deployment-opsmx-agent-argoremote.yaml -- 1619 bytes.
    Wrote /tmp/yamls/configmap-opsmx-agent-argoremote.yaml -- 2704 bytes.
    Wrote /tmp/yamls/secret-opsmx-agent-argoremote.yaml -- 4675 bytes.
    8 files generated.
    
    -------------------------------------------------
       Applying the agent file in argocd namespcace
    clusterrole.rbac.authorization.k8s.io/opsmx-agent-argoremote created
    clusterrolebinding.rbac.authorization.k8s.io/opsmx-agent-argoremote created
    configmap/opsmx-agent-argoremote created
    deployment.apps/opsmx-agent-argoremote created
    configmap/opsmx-services-argoremote created
    role.rbac.authorization.k8s.io/opsmx-role-argoremote created
    rolebinding.rbac.authorization.k8s.io/opsmx-binding-argoremote created
    secret/opsmx-agent-argoremote created
    serviceaccount/opsmx-agent-argoremote created
    
    -------------------------------------------------------
               ....Installation Completed Sucessfully....
    
    Access the URL's:
            ISD   : isd.ninja-test.opsmx.net
            ArgoCD: argocdagent.argo.opsmx.net
            ArgoRollouts: argorolloutagent.argo.opsmx.net
            Login with Openldap Credentials
    -------------------------------------------------------

  3. Once the installation is successfully completed, you can find the URLs of ISD, Argo CD, Argo Rollouts and Login Credentials in the output.

  4. Access the URLs (ISD/Argo CD/Argo Rollouts) through browser & login into application using the credentials listed below:

    • User Name: admin

    • Password: Execute the following command to retrieve the password

      kubectl get secret openldap -o jsonpath='{.data.LDAP_ADMIN_PASSWORD}'| base64 -d
  5. Now go to the ISD UI and refresh it, you will see the Agent in healthy status, which means the agent is successfully connected to ISD. Refer to the image below.

  6. Now you can create applications in Argo CD/Argo Rollouts and they will get synced in ISD automatically.

Last updated