Helpers for automated deployments using Argo CD.
4.7K
This repository contains some helpers to integrate Argo CD Application updates with your CI system.
mkkubeconfig is a tool to help generate a KUBECONFIG file from a
ServiceAccount's credentials.deploy is a script that will attempt to update the tag for an
Application's image.mkkubeconfigCreate a ServiceAccount:
apiVersion: v1
kind: ServiceAccount
metadata:
name: argocd-app-deployer
namespace: argocd
Create a Role with minimal privileges:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: argocd-app-deployer
namespace: argocd
rules:
- apiGroups:
- argoproj.io
resources:
- applications
verbs:
- get
- update
- patch
Create a RoleBinding:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: argocd-app-deployer
namespace: argocd
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: argocd-app-deployer
subjects:
- kind: ServiceAccount
name: argocd-app-deployer
namespace: argocd
Generate a KUBECONFIG for the new ServiceAccount:
$ KUBECONFIG_BODY=$(docker run --rm -v ~/.kube:/root/.kube:ro codekoala/argocd-app-deployer:v0.0.5 mkkubeconfig argocd argocd-app-deployer | base64 -w 0)
Copy the encoded output and put it into your CI system. It could be as a variable that gets injected into your build environment, which you can then write out and use. For example:
$ mkdir -p ~/.kube/
$ echo "${KUBECONFIG_BODY}" | base64 -d > ~/.kube/config
deployAttempt to deploy an update:
$ docker run --rm -e KUBECONFIG_BODY="${KUBECONFIG_BODY}" codekoala/argocd-app-deployer:v0.0.5 deploy my-postgres postgres 11.2-alpine
Content type
Image
Digest
Size
14.9 MB
Last updated
over 7 years ago
docker pull codekoala/argocd-app-deployer