Skip to content

Helpful manifests, scripts, and tools for Argo CD

License

Notifications You must be signed in to change notification settings

bkrein-vertex/gitops-toolkit

 
 

Repository files navigation

gitops-toolkit

Helpful manifests, scripts, and tools for gitops. Currently, the go binary supports creating N of clusters and allowing a GitOps engine to manage them. The first use case was to setup an environment to test Argo CD Application Sets, specifically with cluster generators.

Shell Script

The first version of the toolkit was done via shell scripts.

Getting Started

Build/Install

make build
./bin/gitops-toolkit
go install github.com/rumstead/gitops-toolkit

Configuring

The script reads a json configuration file to create clusters. Order of the clusters matters because of how K3d updates DNS. The bottom most cluster can address all cluster above it.

Schema

A json schema file can be found here with a sample.

Generating a configuration file

You can use the proto structs to write your configuration in code and dump them out as json.

What is happening under the covers?

Creates clusters

K3d is the only supported Kubernetes distribution.

k3d cluster list    
NAME    SERVERS   AGENTS   LOADBALANCER
admin   1/1       0/0      true
dev     1/1       0/0      true
qa      1/1       0/0      true
tst     1/1       0/0      true

Deploys GitOps Engine

Argo CD is deployed to any configured GitOps clusters.

kgd -n argocd     
NAME                               READY   UP-TO-DATE   AVAILABLE   AGE
argocd-redis                       1/1     1            1           129m
argocd-notifications-controller    1/1     1            1           129m
argocd-applicationset-controller   1/1     1            1           130m
argocd-repo-server                 1/1     1            1           129m
argocd-server                      1/1     1            1           129m
argocd-dex-server                  1/1     1            1           130m

Link clusters to GitOps Engine

Argo CD is the only supported GitOps Engine.

kgsec -n  argocd --show-labels -l argocd.argoproj.io/secret-type=cluster 
NAME                                    TYPE     DATA   AGE    LABELS
cluster-k3d-admin-serverlb-2295321533   Opaque   3      118m   argocd.argoproj.io/secret-type=cluster
cluster-k3d-dev-serverlb-422902893      Opaque   3      119m   argocd.argoproj.io/secret-type=cluster,kubernetes.cnp.io/cluster.jurisdiction=k3d,
kubernetes.cnp.io/cluster.name=dev,kubernetes.cnp.io/cluster.region=muse2,kubernetes.cnp.io/cluster.segment=multitenant,kubernetes.cnp.io/environment=dev
cluster-k3d-tst-serverlb-756887653      Opaque   3      119m   argocd.argoproj.io/secret-type=cluster,kubernetes.cnp.io/cluster.jurisdiction=k3d,
kubernetes.cnp.io/cluster.name=tst,kubernetes.cnp.io/cluster.region=muse2,kubernetes.cnp.io/cluster.segment=multitenant,kubernetes.cnp.io/environment=tst
cluster-k3d-qa-serverlb-3703346418      Opaque   3      119m   argocd.argoproj.io/secret-type=cluster,kubernetes.cnp.io/cluster.jurisdiction=k3d,
kubernetes.cnp.io/cluster.name=qa,kubernetes.cnp.io/cluster.region=musw2,kubernetes.cnp.io/cluster.segment=multitenant,kubernetes.cnp.io/environment=qa

About

Helpful manifests, scripts, and tools for Argo CD

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 78.8%
  • Shell 16.9%
  • Makefile 4.3%