Environment setup for ISD-Argo
Pre-requisites
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.COM
For 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
Setup Laptop/machine used for ISD installation
Follow the instructions that are specific to your laptop/machine operating system.
Mac:
Git : Mac comes preinstalled with these commands
kubectl: Install using instructions here, using homebrew is generally easier
Helm: Install using instructions here, using homebrew is generally easier
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).
git: Execute this command at the power shell prompt:
choco install git
kubectl: Execute the following command at the power shell prompt:
helm: Execute the following command at the power shell prompt:
Ubuntu/Linux:
git: Install using instructions here
kubectl: Install using instructions here, go with “using native package manager” if you are not sure.
Helm: Install helm using the instructions here, using a package manager is generally easier
Verification:
Execute the following commands to verify that the commands are functional:
Note: Please note that Kubernetes version should be >= 1.22.0-0
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
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.
Install NGINX ingress controller
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.
Install cert-manager
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
Last updated