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
Note:Worker OEA Installation via curl commandv4.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.
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
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
-------------------------------------------------------
Once the installation is successfully completed, you can find the URLs of ISD, Argo CD, Argo Rollouts and Login Credentials in the output.
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
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.
Now you can create applications in Argo CD/Argo Rollouts and they will get synced in ISD automatically.