Konfigurieren Sie Webhooks auf der Argo CD, um Synchronisierungsbenachrichtigungen an die DevOps Change Velocity-Anwendung zu senden.
Vorbereitungen
Erforderliche Rolle: Argo CD-Administrator
Warum und wann dieser Vorgang ausgeführt wird
Das Abonnement von Argo CD-Anwendungsereignissen kann mit definiert werden Benachrichtigungen.argoproj.io/subscribe.<trigger>.<service>: <recipient> Anmerkung.
Prozedur
-
Aktualisieren Sie auf der Argo CD ConfigMap: Argocd-Notifications-cm.yaml Zum Einrichten der Benachrichtigungen, die an gesendet werden DevOps Change-Geschwindigkeit.
apiVersion: v1
kind: configMap
metadata:
name: argocd-notifications-cm
namespace: default
data:
context: |
argocdUrl: "https://<argocdURL>"
service.webhook.sn_devops_argocd: |
url: https://<instance>.service-now.com/api/sn_devops/v2/devops/tool/orchestration?toolId=<toolId>
basicAuth: #optional username password
username: ""
password: ""
template.app-sync-succeeded: |
webhook:
sn_devops_argocd:
method: POST
body: |
{
"titleLink" : "http://<argocdURL>/applications/{{.app.metadata.name}}",
"syncStatus" : "{{.app.status.sync.status}}",
"repo" : "{{.app.spec.source.repoURL}}",
"revision": "{{.app.status.sync.revision}}",
"path": "/repos/{{call .repo.FullNameByRepoURL .app.spec.source.repoURL}}/statuses/{{.app.status.operationState.operation.sync.revision}}",
"commitAuthor" : "{{(call .repo.GetCommitMetadata .app.status.sync.revision).Author}}",
"commitMessage" : "{{(call .repo.GetCommitMetadata .app.status.sync.revision).Message}}",
"commitTags" : "{{(call .repo.GetCommitMetadata .app.status.sync.revision).Tags}}",
"startedAt" : "{{.app.status.operationState.startedAt}}",
"finishedAt" : "{{.app.status.operationState.finishedAt}}",
"message": "{{.app.metadata.name}} app is synced"
}
trigger.on-sync-status-unknown: |
- description: Application status is 'Unknown'
send:
- app-sync-status-unknown
when: app.status.sync.status == 'Unknown'
trigger.on-sync-succeeded: |
- description: Application syncing has succeeded
send:
- app-sync-succeeded
when: app.status.operationState.phase in ['Succeeded']
subscriptions: |
- recipients:
- sn_devops_argocd
triggers:
- on-sync-succeeded
- on-sync-status-unknown
-
Öffnen Sie die Argo CD-App, für die Sie Webhooks konfigurieren.
-
Navigieren Sie zu APP-DETAILS > ZUSAMMENFASSUNG .
-
Fügen Sie hinzu Benachrichtigungen.argoproj.io/subscribe.<trigger>.<service>: <recipient> Anmerkung mit der Auslöserbedingung zum Synchronisieren des Change-Status für Ihre Instanz.
Beispiel:
Benachrichtigungen.argoproj.io/subscribe.on-Sync-successful.sn_devops_argocd .
