ArgoCD

ArgoCD can be integrated with SSD by following the steps given below:

Prerequisites:

  • Secure Software Delivery

  • OPA

  • ArgoCD with applications

  • Git

  • Github account with access to applications in gitops repo

Integrating ArgoCD in SSD:

Follow the steps given below to integrate ArgoCD with Secure Software Delivery.

  1. Connect to the cluster where ArgoCD is running and run the command given below:

curl -o argocd-notifications-cm.yaml 
https://raw.githubusercontent.com/OpsMx/argocd-ssd/main/argocd-notifications-cm.yaml
  1. Update the values given below in argocd-notifications-cm.yaml.

kubectl patch cm argocd-notifications-cm -n argocd --type merge --patch-file argocd-notifications-cm.yaml
  • argocdUrl: Provide the argocd endpoint.

  • argocdName: Enter a name for the argocd.

  • argoEnvironmentList: Provide the target cluster env name and IP address. You can provide multiple target cluster details here. For example: dev|https://12.34.56.78;staging|https://kubernetes.default.svc

  • Url: Provide the SSD RabbitMQ external IP address or DNS endpoint. For example: http://12.345.67.89:15672/api/exchanges/%2f/argo.events/publish

  1. Replace your SSD RabbitMQ username and password in the commands given below and run in your cluster. Note: Default username and password is given in the commands.

kubectl patch secret argocd-notifications-secret  --patch="{\"data\": { \"rabbitmq-password\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }}" -n argocd

kubectl patch secret argocd-notifications-secret  --patch="{\"data\": { \"rabbitmq-username\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -n argocd
  1. Run the commands given below to add sidecar containers to the argocd-repo-server pod.

kubectl apply -n argocd -f https://raw.githubusercontent.com/OpsMx/argocd-ssd/main/cmp-config.yaml

curl -o volumes.yaml https://raw.githubusercontent.com/OpsMx/argocd-ssd/main/volumes.yaml

kubectl patch deploy argocd-repo-server -n argocd --patch-file volumes.yaml

curl -o argocd-repo-server-patch.yaml https://raw.githubusercontent.com/OpsMx/argocd-ssd/main/argocd-repo-server-patch.yaml

sed -i 's/SSD-OPA.EXAMPLE.COM/<replace with OPA ingress>/g' argocd-repo-server-patch.yaml

kubectl patch deploy argocd-repo-server -n argocd --patch-file argocd-repo-server-patch.yaml
  1. Add the labels given in all the services deployment files under the template.metadata.labels.

ssd.admissionreview.accountname: <Target cluster env name>
ssd.admissionreview.appname: <argocd application name >
  1. Edit the opa-config cm of OPA and point the services endpoint to ssd-opa endpoint at target cluster.

  2. The ArgoCD integration to SSD is completed.

Troubleshooting:

To check if the integration is working, trigger the CI/CD process once again. If the data is visible in SSD, the integrations works. If you face any issues while integrating ArgoCD to Secure Software Delivery feel free to contact OpsMx support team.

Last updated