Table of Contents | ||||
---|---|---|---|---|
|
Argo Configurations
Git Configuration
Login to Argo tool and navigate to Settings (gear icon)
...
5. The added repository details are reflected in Repositories
...
Project Configuration
Navigate to Repositories → Projects
Click ‘New Project’ button.
Enter the required details and save
The saved project is reflected
Kubernetes Cluster Configuration
The cluster added to Argo via CLI is reflected in ‘Clusters’ tab of Argo tool.
Download the Azure CLI https://docs.microsoft.com/en-us/cli/azure/install-azure-cli
Login to Azure account
Create a Kubernetes Cluster
Install Argo CD CLI based 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>
Update the kubeconfig file through AWS CLI and create external clusters inside ArgoCD
...
Nexus Prerequisites
In order to pull an artifact/image from Nexus by Argo and deploy it, a secret key needs to be generated.
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: eyJhdXRocyI6eyIDgzLW5leHVzLW5laTNtb2V3LmxkYXBvd25lci5vcHNlcmEuaW8iOnsidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoiR2hta2R3VE9PRiIsImVtYWlsIjoibmF3YXpAb3BzZXJhLmlvIiwiYXV0aCI6IllXUnRhVzQ2UjJodGEyUjNWRTlQUmc9PSJ9fX0= 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: / ---
Opsera Configurations
Tool Registry Configuration
Login tohttps://portal.opsera.io -> Tool Registry -> Click ‘+New Tool’ Button
...
Click ‘Save’ button to save the project.
Pipeline Setup and Configuration
Sample pipeline flow: Jenkins Docker Build → ECR Push/Nexus Push → Argo Deploy
...
6. Save the steps and run the pipeline by clicking ‘Start Pipeline' button
...
Pipeline Logs
Pipeline Logs are updated as the pipeline runs.
Pipeline logs successful run screenshot:
...
Argo Validation
Login to Argo Tool and verify the application reflected and synced
...