GitOps Util This is gitops helper CLI
Compiling Source go build -o bin/gitops cmd/gitops/main.go
How to Use This GitOps utility supports 7 commands:
run
- run update and copy logicupdate
- updates specified imagescopy
- copies from master branch to specified branchargocd-get
- gets an ArgoCD application as json outputargocd-sync
- syncs an ArgoCD applicationargocd-update
- updates an ArgoCD application, combines argocd-get, git update and argocd-syncargocd-delete
- deletes an ArgoCD applicationExamples Update Command Example
Example With Application Path Flag ./gitops update \
--git-repo=<repository-ssh-url> \
--git-branch=<repository-branch> \
--git-key-file=<key-file-location> \
--images=<image:tag,image2:tag> \
--app-path=<app-path>
Copy Example With Tokenized Path Flags Tokenized path flags:
--app-prefix=<app-prefix>
--app-namespace=<app-namespace>
--app-name=<app-name>
./gitops update \
--git-repo=<repository-ssh-url> \
--git-branch=<repository-branch> \
--git-key-file=<key-file-location> \
--images=<image:tag,image2:tag> \
--app-prefix=<app-prefix> \
--app-namespace=<app-namespace> \
--app-name=<app-name>
Copy Valuated --app-path
with other than default value will override tokenized path flags
ArgoCD Commands argocd-get Gets an ArgoCD application as json in standard output.
OPTIONS:
app-name - Required , name of the ArgoCD application [$APP_NAME] server - Required , server tcp address with port [$ARGO_CD_SERVER] auth-token - Required , authentication token [$ARGO_CD_TOKEN] insecure - insecure connection (default: false ) [$ARGO_CD_INSECURE] timeout - timeout for single ArgoCD operation (default: 300 ) [$ARGO_CD_TIMEOUT] grpc-web - Enables gRPC-web protocol. Useful if Argo CD server is behind proxy which does not support HTTP2 (default: false ) [$ARGO_CD_GRPC_WEB] Minimal example
./gitops argocd-get --app-name='application-name' --server='localhost:443' --auth-token='auth-token'
Full example
./gitops argocd-get --app-name='application-name' --server='localhost:443' --auth-token='auth-token' --timeout=300 --insecure=false --grpc-web=false
argocd-sync Syncs an ArgoCD application and waits for it to reach synced and healthy status.
OPTIONS:
app-name - Required , name of the ArgoCD application [$APP_NAME] server - Required , server tcp address with port [$ARGO_CD_SERVER] auth-token - Required , authentication token [$ARGO_CD_TOKEN] insecure - insecure connection (default: false ) [$ARGO_CD_INSECURE] timeout - timeout for single ArgoCD operation (default: 300 ) [$ARGO_CD_TIMEOUT] grpc-web - Enables gRPC-web protocol. Useful if Argo CD server is behind proxy which does not support HTTP2 (default: false ) [$ARGO_CD_GRPC_WEB] async - don't wait for sync to complete (default: false ) [$ARGO_CD_ASYNC] wait-failure - Fail the command when waiting for the sync to complete exceeds the timeout (default: true ) [$ARGO_CD_WAIT_FAILURE] Minimal example
./gitops argocd-sync --app-name='application-name' --server='localhost:443' --auth-token='auth-token'
Full example
./gitops argocd-sync --app-name='application-name' --server='localhost:443' --auth-token='auth-token' --timeout=300 --insecure=false --grpc-web=false --async=false --wait-failure=true
argocd-update Updates an ArgoCD application. Combines argocd-get, git update and argocd-sync commands.
OPTIONS:
app-name - Required , name of the ArgoCD application [$APP_NAME] server - Required , server tcp address with port [$ARGO_CD_SERVER] auth-token - Required , authentication token [$ARGO_CD_TOKEN] git-key-file - Required ,SSH private key location [$GIT_KEY_FILE] images [-i] - Required , images with tags, comma separated list [$IMAGES] insecure - insecure connection (default: false ) [$ARGO_CD_INSECURE] timeout - timeout for single ArgoCD operation (default: 300 ) [$ARGO_CD_TIMEOUT] grpc-web - Enables gRPC-web protocol. Useful if Argo CD server is behind proxy which does not support HTTP2 (default: false ) [$ARGO_CD_GRPC_WEB] git-strict-host-key-checking - strict host key checking (default: false ) [$GIT_STRICT_HOST_KEY_CHECKING] git-push - push changes (default: true ) [$GIT_PUSH] git-author-name value - Git author name (default: jenkins ) [$GIT_AUTHOR_NAME] git-author-email value - Git author email (default: jenkins@localhost ) [$GIT_AUTHOR_EMAIL] keep-registry [-k] - keeps registry part of the changeable image (default: false ) [$KEEP_REGISTRY] deployment-strategy [-s] - change deployment strategy (RollingUpdate | Recreate) (default: if not defined then strategy will remain unchanged) [$DEPLOYMENT-STRATEGY] recursive - updates directories and their contents recursively (default: false ) [$RECURSIVE] async - don't wait for argoCD sync to complete (default: false ) [$ARGO_CD_ASYNC] wait-failure - Fail the command when waiting for the sync to complete exceeds the timeout (default: true ) [$ARGO_CD_WAIT_FAILURE] Minimal example
./gitops argocd-update --app-name='application-name' --server='localhost:443' --auth-token='auth-token' --git-token-file='file' --images='image:1'
argocd-delete Deletes an ArgoCD application.
OPTIONS:
app-name - Required , name of the ArgoCD application [$APP_NAME] server - Required , server tcp address with port [$ARGO_CD_SERVER] auth-token - Required , authentication token [$ARGO_CD_TOKEN] insecure - insecure connection (default: false ) [$ARGO_CD_INSECURE] timeout - timeout for single ArgoCD operation (default: 300 ) [$ARGO_CD_TIMEOUT] grpc-web - Enables gRPC-web protocol. Useful if Argo CD server is behind proxy which does not support HTTP2 (default: false ) [$ARGO_CD_GRPC_WEB] cascade - perform a cascaded deletion of all application resources (default: true ) [$ARGO_CD_CASCADE] Minimal example
./gitops argocd-delete --app-name='application-name' --server='localhost:443' --auth-token='auth-token'
Full example
./gitops argocd-delete --app-name='application-name' --server='localhost:443' --auth-token='auth-token' --timeout=300 --insecure=false --grpc-web=false --cascade=true