Table of Contents | ||||
---|---|---|---|---|
|
...
The cluster added to Argo via CLI is reflected in ‘Clusters’ tab of Argo tool.
AWS EKS
...
Download the AWS CLI https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
Configure AWS credential to AWS CLI.
Code Block $ aws configure AWS Access Key ID [****************QW7K]: AWS Secret Access Key [****************zsTw]: Default region name [us-east-2]: Default output format [None]:
Make sure Kubernetes Cluster is already present or create a new one.
Install Argo CD CLI based ArgoCD CLI (vesion: v2.0.4) on your system from https://argoproj.github.io/argo-cd/cli_installation/
Update the kubeconfig file through CLI and create external clusters inside ArgoCD.
Code Block # Update the kubeconfig file for auth. aws eks update-kubeconfig --region us-east-2 --name cluster-name # Login to argocd server through cli argocd login <argocd_server_url> --password <password> --username <username> # add external cluster through cli to argocd argocd cluster add <kube_context> --name <cluster-name> Note: kube_context format for EKS: arn:aws:eks:<region>:<account_id>:cluster/<cluster_name>
Verify the external clusters inside ArgoCD UI.
Azure AKS
...
Download the Azure CLI https://docs.microsoft.com/en-us/cli/azure/install-azure-cli
Authenticate the Azure CLI to the azure account.
Code Block language bash $ az login A web browser has been opened at https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`.
Make sure Kubernetes Cluster already present or create a new one.
Install Argo CD CLI based ArgoCD CLI (vesion: v2.0.4) on your system from https://argoproj.github.io/argo-cd/cli_installation/
Update the kubeconfig file through CLI and create external clusters inside ArgoCD
Code Block # Update the kubeconfig file for auth. az aks get-credentials --resource-group <group_name> --name <name_name> # Login to argocd server through cli argocd login <argocd_server_url> --password <password> --username <username> # add external cluster through cli to argocd argocd cluster add <kube_context> --name <cluster-name> # To get the current kube_context name kubectl config current-context
Verify the external clusters inside ArgoCD UI.
...
Generate a secret token from Kubernetes for Nexus.
Code Block kubectl create secret docker-registry --dry-run=true docker-nexus \ --docker-server=url\ --docker-username=admin \ --docker-password=password \ --docker-email=email\ --output="jsonpath={.data.\.dockerconfigjson}"
Copy the generated secret token.
Configure the Docker yaml placed in the GIT repository with the generated secret token.
It will look similar to lined 6-17 below:Code Block apiVersion: v1 kind: Namespace metadata: name: argocd2 --- apiVersion: v1 data: .dockerconfigjson: eyJhdXRocyI6eyIDgzLW5lBHVzLW5laTNtb2V4LmxkYXBvd25lci6vcHNlcmEuaW8iOnsidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoiR2hta2R3VE9PRiIsImVtYWlsIjoibmF3YXpAb3BzZXJhLmlvIiwiYXV0aCI6IllXUnRhVzQ2UjJodGEyUjNWRTlQUmc9PSJ9fX0= kind: Secret metadata: creationTimestamp: null name: docker-nexus namespace: argocd2 type: kubernetes.io/dockerconfigjson --- apiVersion: apps/v1 kind: Deployment metadata: name: argo-app namespace: argocd2 spec: replicas: 1 selector: matchLabels: app: web template: metadata: labels: app: web spec: imagePullSecrets: - name: docker-nexus containers: - name: back-end image: 8083-nexus-nei3moew.ldapowner.opsera.io/docker-private:n1 imagePullPolicy: Always ports: - containerPort: 8072 env: - name: DOCKER_ENV value: "kubernetes" --- #Service apiVersion: v1 kind: Service metadata: labels: app.kubernetes.io/name: argo-app name: argo-app namespace: argocd2 spec: ports: - name: http port: 8072 protocol: TCP targetPort: http selector: app: web sessionAffinity: None type: NodePort --- # Ingress apiVersion: extensions/v1beta1 kind: Ingress metadata: annotations: kubernetes.io/ingress.class: nginx labels: app.kubernetes.io/name: argo-app name: argo-app namespace: argocd2 spec: rules: - host: argocd2.nawaz-demo.opsera.io http: paths: - backend: serviceName: argo-app servicePort: 8072 path: / ---
...