- To bring declarative style, Kubernetes style APIs to cluster creation
- Use helm to modify k8 cluster values based on requirement. This helps in code reusability
- Version control
- Using GitOps(ArgoCD) to deploy, scale-in/scale-out and rollback your Kubernetes clusters.
- kind - This will act as your management cluster for bootstrapping cluster-api components.
- clusterctl - The clusterctl CLI tool handles the lifecycle of a Cluster API management cluster.
- Govc - Govc will be used to interact with your vSphere environment.
- kubectl
- helm
- vSphere 6.7U3 or above
For more information refer to the cluster-api quickstart
git clone https://github.com/johnlam90/capv-helm.git
cd capv-helm
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Note: Ideally you will use LoadBalancer or Ingress in production deployments, but port forwarding will do for our kind cluster. Refer to the argo doc
kubectl port-forward svc/argocd-server -n argocd 8080:443
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: capv
namespace: argocd
spec:
destination:
namespace: 'default'
server: https://kubernetes.default.svc
project: default
source:
helm:
valueFiles:
- values.yaml
path: capv
repoURL: https://github.com/johnlam90/capv-helm.git
targetRevision: HEAD
syncPolicy:
automated: {}
Note: Change the repoURL
to your git repository