diff --git a/docs/install/kubernetes/README.md b/docs/install/kubernetes/README.md index 34b59f0591..52d7e65ca0 100644 --- a/docs/install/kubernetes/README.md +++ b/docs/install/kubernetes/README.md @@ -34,6 +34,7 @@ You will need a Kubernetes environment. The deployment has currently been tested - [AWS EKS](aws_terraform.md) - [Digital Ocean](digital-ocean.md) - MicroK8s + - [Azure AKS](azure.md) It should run on any Kubernetes platform, but may require some changes for vendor specific Ingress setup. diff --git a/docs/install/kubernetes/azure.md b/docs/install/kubernetes/azure.md new file mode 100644 index 0000000000..4b13cd7ec8 --- /dev/null +++ b/docs/install/kubernetes/azure.md @@ -0,0 +1,59 @@ +--- +navTitle: Azure AKS Installation +meta: + description: Learn how to install FlowFuse on AWS EKS with setup details for EKS, Nginx Ingress, AWS SES, and RDS PostgreSQL integration. + tags: + - flowfuse + - nodered + - azure + - aks + - nginx ingress + - helm + - kubernetes +--- + +# Azure AKS Specific details + +This document includes details for installing FlowFuse on Azure AKS + +## Nginx Ingress + +We recommend using the Nginx Ingress controller as this is the one we test with and we have run into limits on the number of Instances with other Ingress Controllers. + +```bash +helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx +helm repo update +helm --kubeconfig=./k8s-flowforge-kubeconfig.yaml install nginx-ingress \ + ingress-nginx/ingress-nginx --namespace ingress-nginx \ + --create-namespace \ + --set controller.publishService.enabled=true \ + --set controller.ingressClassResource.default=true \ + --set controller.config.proxy-body-size="0" + --wait + +``` + +The `controller.config.proxy-body-size="0"` removes the `1m` default payload limit +from the nginx ingress proxy. You can change this to say `5m` which will match the +Node-RED default value. + + +### HTTPS with Nginx Ingress + +Azure's LoadBalancer does not support doing TLS termination so HTTPS certificates will either need to up added to AKS as Kubernetes Secrets or make use of +Certificate Manager to provision certificates either from LetsEncrypt or other ACME Certificate Authorities. + +## Persistent Storage + +If making use of the Persistent Storage feature you will need to provide a StorageClass that support MultiPod mounting. + +e.g. Azure Files backed Persistent Volumes + + +You should also set the `nobrl` Mount Option to ensure things like SQLite databases work correctly if using the Azure Files back Persistent Volumes. + +## User Azure Database for PostgreSQL + +By default the helm chart will install a local copy of PostgreSQL 14. + +But you may make use of Azure's hosted PostgreSQL solution, but you will need to provision the user and empty database before doing the Helm install. \ No newline at end of file