Note that this should not be needed, assuming that ArgoCD is installed directly via pulumi.
Create argocd
namespace...
kubectl create namespace argocd
Install ArgoCD from latest stable release...
curl -JLs -o argocd.yaml https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml \
&& kubectl apply -n argocd -f argocd.yaml
Deploy Ingress
for ArgoCD...
kubectl apply -f argocd-ingress.yaml
Retrieve intial admin
password...
argocd admin initial-password -n argocd
Login as admin
...
argocd login argocd.<domain>
# Username: admin
# Password: <initial-password>
Update admin
password...
argocd account update-password # pattern ^.{8,32}$
Login to argocd...
argocd login argocd.<domain>
Supply credentials of an admin user...
Username: admin
Password: <admin-password>
Create eoepca
argocd project...
argocd proj create eoepca -f https://raw.githubusercontent.com/EOEPCA/eoepca-plus/deploy-develop/argocd/project.yaml
The deployment is bootstrapped from the eoepca
app-of-apps, which is defined as a Kustomization
in the argocd/
directory. The kustomization.yaml
in turn brings in the various components of the full system deployment - each of which is defined as an ArgoCD Application
- comprising building blocks and infrastructure components on which they depend.
The app--of-apps deployment is triggered using...
argocd app create eoepca \
--project eoepca \
--dest-namespace argocd \
--dest-server https://kubernetes.default.svc \
--repo https://github.com/EOEPCA/eoepca-plus \
--path argocd \
--revision deploy-develop \
--sync-policy automated \
--auto-prune \
--self-heal \
--allow-empty
Which results in the following Application
CRD in the argocd
namespace...
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: eoepca
namespace: argocd
spec:
destination:
namespace: argocd
server: https://kubernetes.default.svc
project: eoepca
source:
path: argocd
repoURL: https://github.com/EOEPCA/eoepca-plus
targetRevision: deploy-develop
syncPolicy:
automated:
allowEmpty: true
prune: true
selfHeal: true
The Applications
are organised under broad groupings...
eoepca
EOEPCA+ building blocks
Can be organised into subdirectories, as required, for convenience.
The deploy ofzoo-dru
as an ArgoCDApplication
provides an example of a helm chart deployment with the values being provided through multiple dedicated values files. See the Zoo-DRU deployment README.infra
Services that support the building blocks, including...- Sealed Secrets
Secure management of k8s secrets in git - Minio
S3-compatible Object Storage
See minio deployment README for details of the deployment of this compositeApplication
. This provides an example of an approach to wrap a more complex service deployment into a self-contained ArgoCDApplication
. - Harbor
Container registry
- Sealed Secrets
test
Resources used for testing/debugging - such as thedummy
service