This example demostrate how to install and configure Flux and Helm Operator on AKS cluter.
In this example, we are deploying Istio
, Nginx Ingress
, Weavescope
, etc with FluxCD.
This config has the following folder structure.
.
βββ README.md
βββ launch.config
βββ launch.sh
βββ namespaces
β βββ ingress.yaml
β βββ istio-system.yaml
β βββ monitoring.yaml
β βββ weavescope.yaml
βββ releases
β βββ grafana.yaml
β βββ nginx-ingress.yaml
β βββ prometheus.yaml
β βββ weavescope.yaml
βββ workloads
βββ istio-controlplane.yaml
βββ istio-operator.yaml
βββ ms-agentconfig.yaml
Inside the release directory there are HelmRelease defination.
The workloads directory contain workload for the chart that we deployed or additional resources to be deployed.
To setup a new AKS cluster on Azure, simple execute the launch-pad, it will create a new resources group and a new aks cluster.
./launch aks
To connect to your cluster using kubectl
, run the following command (replace your-rg and your-aks with your resources group and aks name)
az aks get-credentials --resource-group <your-rg> --name <your-aks>
- Create the fluxcd namespace:
kubectl create ns fluxcd
- Add FluxCD repository:
helm repo add fluxcd https://charts.fluxcd.io
- Install Flux by specifying your fork URL (replace fluxcd with your GitHub username):
helm upgrade -i flux fluxcd/flux --wait \
--namespace fluxcd \
--set registry.pollInterval=1m \
--set git.pollInterval=1m \
--set syncGarbageCollection.enabled=true \
--set git.readonly=true \
--set git.url=git@github.com:melvinlee/flux-helloworld
- Install the HelmRelease Kubernetes custom resource definition:
kubectl apply -f https://raw.githubusercontent.com/fluxcd/helm-operator/master/deploy/crds.yaml
- Install Flux Helm Operator with Helm v3 support:
helm upgrade -i helm-operator fluxcd/helm-operator --wait \
--namespace fluxcd \
--set git.ssh.secretName=flux-git-deploy \
--set helm.versions=v3
- Cleanup
./launch destroy