FSA (aka Flamingo) is Flux Subsystem for Argo. FSA's container image can be used as a drop-in replacement for the equivalent ArgoCD version to visualize, and manage Flux workloads, alongside ArgoCD.
In this getting started guide, you'll be walked through steps to prepare your ultimate GitOps environment using ArgoCD and Flux. We'll bootstrap everything, including installation of ArgoCD, from this public repo. So no manual step of ArgoCD installation is required. In case you're forking this repo and change its visibility to private, you will be required to setup a Secret to authenticate your Git repo.
At the end of this guide, you'll have Flux running alongside ArgoCD locally on your KIND cluster. You'll run FSA in the anonymous mode, and see 2 pre-defined ArgoCD Applications, each of which points to its equivalent Flux Kustomization.
Install CLIs
Example install in macOS or Linux via homebrew
# install KIND cli
brew install kind
# install Flux CLI
brew install fluxcd/tap/flux
# install ArgoCD CLI
brew install argocd
Create a fresh KIND cluster
kind create cluster
Install Flux
flux install
You can check the Flux namespace (flux-system
) for running pods kubectl get pods -n flux-system
Copy, and paste this snippet to bootstrap the demo.
cat <<EOF | kubectl apply -f -
---
apiVersion: source.toolkit.fluxcd.io/v1beta1
kind: GitRepository
metadata:
name: fsa-demo
namespace: flux-system
spec:
interval: 30s
# Change url to your forked gitrepo e.g, https://github.com/GitHubUserID/flamingo
url: https://github.com/flux-subsystem-argo/flamingo
ref:
branch: main
---
apiVersion: kustomize.toolkit.fluxcd.io/v1beta2
kind: Kustomization
metadata:
name: fsa-demo
namespace: flux-system
spec:
prune: true
interval: 2m
path: "./demo"
sourceRef:
kind: GitRepository
name: fsa-demo
timeout: 3m
EOF
Check ArgoCD pods are running and Ready kubectl get -n argocd pods
Finally, port forward and open your browser to http://localhost:8080
kubectl -n argocd port-forward svc/argocd-server 8080:443
You'll find 2 FSA Applications, each of which consists of 1 Flux's Kustomization and 1 Flux's GitRepository.