multi-cluster-rollouts

command module
v0.0.0-...-8979ce9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 17, 2023 License: MIT Imports: 11 Imported by: 0

README

multi-cluster-rollouts

An experiment at providing rollout like features in a multi-cluster environment. Leverages ArogCD ApplicationSets

Demo Video

Demo Video

Architecture

arch

Local setup

Create clusters & deploy ArgoCD

make argocd-start

Install CRD(s)

make install

Create the example ApplicationSet

make argocd-create-example-applicationset

Re-register the target clusters (Issue with x509 cert error unless we do this again)

make argocd-register-target-clusters

Start the controller locally

make run

Modify the Placement spec.clusters field to specify which cluster to deploy the ApplicationSet on. Options are in-cluster and argocd-target-cluster-01

export KUBECONFIG=$(pwd)/kubeconfig
kubectl config use-context kind-argocd
kubectl config set-context --current --namespace=argocd

kubectl edit placement example

You can see the Applications being created/synced/deleted from the ArgoCD UI at https://argocd.172.18.0.2.nip.io The admin password can be retrieved with make argocd-password

You can send traffic to either instance of the example application with curl:

Cluster 1 (in-cluster)

while true;do curl --resolve argocd-test-multi-cluster-ingress.dev.hcpapps.net:80:172.18.0.2 http://argocd-test-multi-cluster-ingress.dev.hcpapps.net && sleep 1;done

Cluster 2 (argocd-target-cluster-01)

while true;do curl --resolve argocd-test-multi-cluster-ingress.dev.hcpapps.net:80:172.18.0.3 http://argocd-test-multi-cluster-ingress.dev.hcpapps.net && sleep 1;done

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
api
v1alpha1
Package v1alpha1 contains API Schema definitions for the rollouts v1alpha1 API group +kubebuilder:object:generate=true +groupName=rollouts.example.com
Package v1alpha1 contains API Schema definitions for the rollouts v1alpha1 API group +kubebuilder:object:generate=true +groupName=rollouts.example.com

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL