LogoLogo
Getting StartedDevelopersDeployment GuideGet Help
  • Quick Links
  • Welcome to Form.io
    • Getting Started With Form.io
    • Launch a Form
    • Overview of Form.io
  • Developer Tool Ecosystem
    • PDF Solution
    • Enterprise Form Builder
    • Form View Pro
    • The Security Module
    • Accessibility Compliance Module
    • Developer License
    • SQL Connector - Deprecated
    • Integration Libraries
    • Form.io CLI Tool
  • User Guide
    • Introduction
    • Form.io Developer Portal
    • Teams
    • Projects
      • Project UI
      • Project Settings
      • Stages
      • Multi-Tenancy
    • Resources
      • ResourceJS
    • Forms
      • Form Creation
      • Form Types
      • PDF Forms
      • Embedding a Form
      • Form Revisions
      • Form Settings
    • Form Building
      • Form Builder UI
      • Form Components
        • Component Settings
        • Basic Components
          • Resource as Select Component Data Source
        • Advanced Components
        • Layout Components
        • Data Components
        • Premium Components
          • Nested Forms
        • Custom Components
      • Logic & Conditions
      • Existing Resource Fields
      • Actions
    • Submissions
      • Accessing Submissions
      • Importing Submissions
    • Form.io eSignature - Coming Soon
    • Form.io Reporting Module
    • PDF Template Designer
    • Form View Pro
    • Form Manager
    • Enterprise Form Builder Module
  • Developer Guide
    • Introduction
      • Application Development
      • API Documentation
    • Form Development
      • Form Renderer
      • Form Builder
      • Form Embedding
      • Form Evaluations
      • Form Templates
      • Custom Components
      • Translations
    • JavaScript Development
      • JavaScript SDK
      • JavaScript Frameworks
      • JavaScript Utilities
    • Authentication and Authorization
      • SAML
      • OAuth
      • LDAP
      • Resource Based Authentication
      • Email Authentication
      • Two-Factor Authentication
    • Roles and Permissions
      • Field Match-Based Access
      • Field-Based Resource Access
      • Group Permissions
    • Integrations
      • Email Integrations
      • File Storage
      • Google Developer Console
      • eSign Integrations
      • Relational Databases
    • Modules
    • Fetch Plugin API
    • CSS Frameworks
    • Offline Mode
    • Audit Logging
  • Deployments
    • Self-Hosted Deployment
      • Local Deployment
        • Local File Storage
      • Kubernetes
      • Cloud Deployment
        • AWS Deployment
          • AWS Lambda
          • Form.io/AWS Elastic Beanstalk End-To-End Encrypted Deployment
        • Azure Deployment
          • Azure App Service
            • Azure MSSQL Connector - Deprecated
          • Azure Virtual Machine
          • Azure Kubernetes Service
          • Set up the DB
        • GCP Deployment
          • GCP Cloud Run
      • On-Premise Deployment
      • Enterprise Server
      • PDF Server
    • Deployment Configurations
      • DNS Configuration
      • Load Balancer Configuration
    • Licenses
      • License Management
      • Library Licenses
    • Portal Base Project
      • Portal SSO
      • Portal Translations
    • Maintenance and Migration
      • Changes to Premium Libraries
  • FAQ
    • FAQ
    • Tutorials & Workflows
      • Password Reset
      • Dynamic Select Filtering
      • Approval Workflow
      • SSO Email Token
      • Embedding A Video
      • Data Source Validation
      • Select Data Source Options
      • Nested Form Workflows
        • Nested Wizard Forms
      • Save as Draft
      • Role-Based Conditions
      • Custom Component
      • Dynamic Radio and Select Box Values
      • Override CKEDITOR
    • Errors
    • Examples
    • License Utilization Checks
  • Contact Us
Powered by GitBook
On this page
  • Useful Links
  • Prerequisites
  • Create an AKS cluster
  • Connect to the Cluster
  • Create Ingress Controller
  • Deploy Form.io Application

Was this helpful?

  1. Deployments
  2. Self-Hosted Deployment
  3. Cloud Deployment
  4. Azure Deployment

Azure Kubernetes Service

Azure Kubernetes Service (AKS) is a managed Kubernetes service that lets you quickly deploy and manage clusters.

PreviousAzure Virtual MachineNextSet up the DB

Last updated 15 days ago

Was this helpful?

Useful Links

Prerequisites

If you don't have an , create an before you begin.

  • The identity you're using to create your cluster has the appropriate minimum permissions. For more details on access and identity for AKS, see .

  • You should also have and installed on your terminal application. You can also use the which will come with these utilities pre-installed.

  • If you plan to use your local terminal you will need to before we can connect to our cluster.

Create an AKS cluster

These steps are taken from the . For more details on how to provision your AKS cluster, check out the Useful Links section of this page.

  1. Sign in to the .

  2. On the Azure portal menu or from the Home page, select Create a resource.

  3. Select Containers > Kubernetes Service.

  4. On the Basics page, configure the following options:

    • Project details:

      • Select an Azure Subscription.

      • Select or create an Azure Resource group, such as myResourceGroup.

    • Cluster details:

      • Ensure the the Preset configuration is Standard ($$). For more details on preset configurations, see .

      • Enter a Kubernetes cluster name, such as myAKSCluster.

      • Select a Region for the AKS cluster, and leave the default value selected for Kubernetes version.

      • Select 99.5% for API server availability.

    • Primary node pool:

      • Leave the default values selected

  5. Select Next: Node pools when complete.

  6. Keep the default Node pools options. At the bottom of the screen, click Next: Access.

  7. On the Access page, configure the following options:

    • The default value for Resource identity is System-assigned managed identity. Managed identities provide an identity for applications to use when connecting to resources that support Azure Active Directory (Azure AD) authentication. For more details about managed identities, see

    • The Kubernetes role-based access control (RBAC) option is the default value to provide more fine-grained control over access to the Kubernetes resources deployed in your AKS cluster.

    • By default, Basic networking is used, and is enabled.

  8. Click Review + create. When you navigate to the Review + create tab, Azure runs validation on the settings that you have chosen. If validation passes, you can proceed to create the AKS cluster by selecting Create. If validation fails, then it indicates which settings need to be modified.

  9. It takes a few minutes to create the AKS cluster. When your deployment is complete, navigate to your resource by either:

    • Selecting Go to resource, or

    • Browsing to the AKS cluster resource group and selecting the AKS resource. In this example you browse for myResourceGroup and select the resource myAKSCluster.

Connect to the Cluster

  • Verify Azure CLI or Azure PowerShell is installed.

  • Connect to Azure via the az login or Connect-AzAccount command.

  1. To perform these operations in a local shell installation:

az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
  1. Verify the connection to your cluster using kubectl get to return a list of the cluster nodes.

kubectl get nodes

Output shows the single node created in the previous steps. Make sure the node status is Ready:

NAME                                STATUS   ROLES   AGE   VERSION
aks-agentpool-12345678-vmss000000   Ready    agent   23m   v1.19.11
aks-agentpool-12345678-vmss000001   Ready    agent   24m   v1.19.11

Create Ingress Controller

An ingress controller is a piece of software that provides reverse proxy, configurable traffic routing, and TLS termination for Kubernetes services. Kubernetes ingress resources are used to configure the ingress rules and routes for individual Kubernetes services.

  1. Download the above zip file to a directory onto your system, then use the following command to unzip the contents to a directory.

## Unzip to a folder called azure-k8s
unzip azure-k8s-helm-deployment.zip -d ./azure-k8s

## Change directory to the extracted folder
cd azure-k8s

## Run the ingress controller installation script.
bash scripts/ingress-controller.sh

Deploy Form.io Application

  1. Copy the .example.env to .env then edit the contents with your deployment settings.

## Copy the contents of .example.env to .env
cp .example.env .env
  1. Next create an apps/ directory in the root of this project folder. This will be where we unpack helm charts to create deployments from.

  2. Next step is to run the deployment scripts(s). This can be done with 1 deployment script or by running each script separately. Each script will prompt the user for information related to that scripts purpose.

    • Run the single script can be running bash scripts/deploy.sh

    • Run each individual script. Follow the code block below. See the README.md that was included with the zip file for details about each script.

## 1. Create a helm package version
bash scripts/pack.sh
### Will be prompted for...
# Enter APP_VERSION: 7.4.2__3.4.0
# Enter CHART_VERSION: 1.0.3

## 2. Unpack the contents of the version
bash scripts/unpack.sh
### Will be prompted for...
# Enter SOURCE_PATH: ./versions/formio-1.0.3.tgz
# Enter DEST_PATH: ./apps

## 3. Deploy the Chart
bash scripts/upgrade.sh 
### Will be prompted for...
# Enter NAMESPACE: formio-dev
# Enter PATH_TO_CHART: ./apps/formio
  1. When this has finished successfully you will see an terminal output for all of the services in this deployment.

For this section you will need to be either or to execute kubectl and helm command line tools.

Configure kubectl to connect to your Kubernetes cluster using the command. The following command downloads credentials and configures the Kubernetes CLI to use them.

In this section we will be using kubectl and helm to create deployment to a namespace on our AKS cluster. Since this is an Azure deployment we will be using for our PDF uploads, for our NoSQL database solution.

If the deployment is NOT showing on the domain that you configured as the BASE_URL environment variable you will most likely need to configure the DNS records. For this tutorial, we used , but can also be done with .

authenticated with the Azure CLI
Azure Cloud Shell
az aks get-credentials
Azure Blob Storage
Cosmos DB
Cloudflare
AWS Route 53
Sign in with Azure CLI
QuickStart: Deploy an Azure Kubernetes Service (AKS) cluster using the Azure portal
Create an ingress controller in Azure Kubernetes Service (AKS)
Azure subscription
Azure free account
Access and identity options for Azure Kubernetes Service (AKS)
kubectl
helm
Azure Cloud Shell
Sign in with the Azure CLI
Microsoft AKS QuickStart Guide
Azure portal
Cluster configuration presets in the Azure portal
What are managed identities for Azure resources?
Container insights
QuickStart Guide for Deploying Application to AKS
9KB
azure-helm-k8s-deploy.zip
archive
Helm Deployment Files