Environment setup for ISD-Argo
- Kubernetes cluster 1.22.0 or later with at least 4 cores and 16 GB memory with 1 node
- Helm 3 is setup on the client system with 3.10.3 or later
- Access: Admin access to ONE namespace
- Compute:
- Minimum: 4CPU, 16GB, 1 node
- Preferred: 8CPU/32 GB Ram 2 Nodes
- You should have internet access and should be able to access github.com, docker.io, and quay.io.
- Ensure that the URLs of ISD, KeyCloak, Vela are reachable from your browser. Either the DNS name server record must exist or "hosts" file must be updated. The following 3 URLs need to exist in DNS and point to Loadbalancer IP of the NGINX ingress controller.
- Ip-address ISD.REPLACE.THIS.WITH.YOURCOMPANY.COM
- Ip-address KEYCLOAK.REPLACE.THIS.WITH.YOURCOMPANY.COM
- Ip-address *.VELA.REPLACE.THIS.WITH.YOURCOMPANY.COMFor example, “isd.isd-argo.opsmx.com”Note: For "ISD-Argo Installation with Argo CD and Argo Rollouts", the Argo CD URL in the DNS name server record must exist or "hosts" file must be updated.
- Ip-address ARGO.REPLACE.THIS.WITH.YOURCOMPANY.COM
- Vela Service requires the “Wild-card ingress” and “Wild-card TLS certificates to be provided to the ingress”. If you are using the cert-manager, please use this blog to create a Wild-card TLS certificate. Else please contact your certificate provider for the certificates for your URL equivalent for "*.VELA.REPLACE.THIS.WITH.YOURCOMPANY.COM".
- An additional host URL may be required depending on your requirements.
- Controller host URL
- ArgoCD host URL
Follow the instructions that are specific to your laptop/machine operating system.
Mac:
Windows:
- Use choco package manager to install git, kubectl, and helm.
- To install package manager execute the following command in PowerShell (running in administrator mode).Set-ExecutionPolicy Bypass -Scope Process -Force; `iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
- git: Execute this command at the power shell prompt:
choco install git
- kubectl: Execute the following command at the power shell prompt:choco install Kubernetes-cli
- helm: Execute the following command at the power shell prompt:choco install kubernetes-helm
Ubuntu/Linux:
Verification:
Execute the following commands to verify that the commands are functional:
git -version
kubectl version
Note: Please note that Kubernetes version should be >= 1.22.0-0
helm version
Note: Please note that Helm version should be with >= 3.10.3
Ensure working “kubectl” command:
Execute the following commands to make sure whether “Kubectl” command is working
kubectl get no # to see the nodes
kubectl get ns # to see the namespaces
These commands should show some output. Kubeconfig file is not in the right place If you get the following error:
"The connection to the server localhost:8080 was refused - did you specify the right host or port?"
Rename the kubeconfig file as "config" and copy to /.kube folder in your machine. If that still does not work, try giving the –kubeconfig option to all kubectl commands. For example, refer to the following command.
kubectl -kubeconfig <full path to the kubeconfig file> get no
If you are using any other ingress controller such as one provided by the cloud provider, you can skip this section.
- kubectl create ns ingress-nginx
- helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
- helm repo update
- helm install ingress-nginx ingress-nginx/ingress-nginx -n ingress-nginx
- Check whether it is installed correctly or not, use$kubectl get svc -n ingress-nginx
- Note down the IP Address (or hostname) of the “ingress-nginx-controller” service in the output of the command above. This is required for making DNS or host entries as mentioned in the section below.
If you create your own TLS certificates or the cluster does not have inbound port 80 access, you can skip this section.
- kubectl create namespace cert-manager
- helm repo add jetstack https://charts.jetstack.io
- helm repo update
- helm install cert-manager jetstack/cert-manager --set installCRDs=true -n cert-manager