argocd login localhost:8080 | Login to server |
argocd app list | List applications |
argocd app get myapp | Get app details |
argocd app sync myapp | Sync application |
argocd app diff myapp | Show diff |
argocd app delete myapp | Delete application |
argocd app history myapp | Show history |
argocd app rollback myapp 1 | Rollback to version |
argocd cluster add my-context | Add cluster |
argocd cluster list | List clusters |
argocd repo add https://github.com/user/repo | Add repository |
argocd repo list | List repositories |
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: myapp
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/user/repo
targetRevision: HEAD
path: k8s
destination:
server: https://kubernetes.default.svc
namespace: default
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: myapp
namespace: argocd
spec:
project: default
source:
repoURL: https://charts.helm.sh/stable
chart: nginx
targetRevision: 1.0.0
helm:
values: |
replicaCount: 2
resources:
limits:
cpu: 100m
parameters:
- name: image.tag
value: "latest"
destination:
server: https://kubernetes.default.svc
namespace: default apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: myapps
namespace: argocd
spec:
generators:
- list:
elements:
- cluster: dev
url: https://dev.example.com
- cluster: prod
url: https://prod.example.com
template:
metadata:
name: "myapp-{{cluster}}"
spec:
project: default
source:
repoURL: https://github.com/user/repo
targetRevision: HEAD
path: "envs/{{cluster}}"
destination:
server: "{{url}}
namespace: default apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: myapps
spec:
generators:
- git:
repoURL: https://github.com/user/repo
revision: HEAD
directories:
- path: apps/*
template:
metadata:
name: "{{path.basename}}"
spec:
project: default
source:
repoURL: https://github.com/user/repo
targetRevision: HEAD
path: "{{path}}"
destination:
server: https://kubernetes.default.svc
namespace: "{{path.basename}}" apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: myproject
namespace: argocd
spec:
description: My project
# Source repositories
sourceRepos:
- https://github.com/myorg/*
# Destination clusters/namespaces
destinations:
- namespace: "*"
server: https://kubernetes.default.svc
# Allowed resources
clusterResourceWhitelist:
- group: "*"
kind: "*"
# RBAC
roles:
- name: developer
policies:
- p, proj:myproject:developer, applications, get, myproject/*, allow
- p, proj:myproject:developer, applications, sync, myproject/*, allow kubectl create namespace argocd | Create namespace |
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml | Install Argo CD |
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d | Get admin password |
kubectl port-forward svc/argocd-server -n argocd 8080:443 | Port forward |