From 31d27e0737f22b2f7823b92e645a08e04b1583d6 Mon Sep 17 00:00:00 2001 From: Ben Hardill Date: Fri, 20 Sep 2024 13:17:29 +0100 Subject: [PATCH 1/4] First pass --- docs/install/kubernetes/README.md | 1 + docs/install/kubernetes/azure.md | 37 +++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 docs/install/kubernetes/azure.md diff --git a/docs/install/kubernetes/README.md b/docs/install/kubernetes/README.md index 6bf306a5b3..ef182ba0c6 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..44178f3714 --- /dev/null +++ b/docs/install/kubernetes/azure.md @@ -0,0 +1,37 @@ +--- +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 with. + + +## Persistent Storage + +If making use of the Persistent Storage feature you will need to provide a StorageClass that support MultiPod mounting. + +e.g. Azure Disks 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 From 177599298e806de7821fe7a2f618c1572c897ef4 Mon Sep 17 00:00:00 2001 From: Ben Hardill Date: Mon, 23 Sep 2024 09:39:27 +0100 Subject: [PATCH 2/4] Next update --- docs/install/kubernetes/azure.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/install/kubernetes/azure.md b/docs/install/kubernetes/azure.md index 44178f3714..c3f4fbadc2 100644 --- a/docs/install/kubernetes/azure.md +++ b/docs/install/kubernetes/azure.md @@ -18,7 +18,24 @@ 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 with. +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. ## Persistent Storage From c77dfd06ecd9fc0314534a3a711b7e6b3ab09834 Mon Sep 17 00:00:00 2001 From: Ben Hardill Date: Tue, 22 Oct 2024 09:58:37 +0100 Subject: [PATCH 3/4] Update docs/install/kubernetes/azure.md --- docs/install/kubernetes/azure.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/install/kubernetes/azure.md b/docs/install/kubernetes/azure.md index c3f4fbadc2..e23590ebad 100644 --- a/docs/install/kubernetes/azure.md +++ b/docs/install/kubernetes/azure.md @@ -42,7 +42,7 @@ Node-RED default value. If making use of the Persistent Storage feature you will need to provide a StorageClass that support MultiPod mounting. -e.g. Azure Disks backed Persistent Volumes +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. From 39f4a022ce6eafa742dc7c2cd16da29dbbe663a6 Mon Sep 17 00:00:00 2001 From: Ben Hardill Date: Fri, 1 Nov 2024 12:03:26 +0000 Subject: [PATCH 4/4] Add comment about HTTPS and Nginx --- docs/install/kubernetes/azure.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/install/kubernetes/azure.md b/docs/install/kubernetes/azure.md index e23590ebad..4b13cd7ec8 100644 --- a/docs/install/kubernetes/azure.md +++ b/docs/install/kubernetes/azure.md @@ -38,6 +38,11 @@ from the nginx ingress proxy. You can change this to say `5m` which will match t 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.