Deploy on Azure Using Helm Charts

Prerequisites

Note: This tutorial deploys the full Hyperswitch stack, which includes several services and can exceed compute limits on small clusters. On Azure, we recommend upgrading to the Developer Support Plan ($29/month) to unlock higher vCPU quotas and ensure smoother provisioning. Without this, you may encounter quota-related deployment failures.

Ensure the following tools are installed and configured:

1. Azure CLI

The Azure Command-Line Interface (CLI) is a cross-platform tool that allows you to manage Azure resources. To install please visit the official Microsoft documentation.

Before setting up AKS, you'll need to create an Azure account. Simply follow the on-screen instructions. Note that billing information will be required during the sign-up process.

2. kubectl

kubectl is the command-line tool for interacting with Kubernetes clusters. To install kubectl please refer to the Kubernetes documentation.

3. Helm

Helm is a package manager for Kubernetes applications. To install please refer to helm documentation.

Part 1: Setting Up AKS

  1. Log In to Azure

Authenticate with your Azure account:

az login

Follow the browser prompts to log in.

  1. Create a Resource Group

Before provisioning your AKS cluster, create a resource group to organize and manage related resources.

Use the following command, replacing <resource-group-name> with your desired name and <location> with your preferred Azure region (e.g., eastus):

Example:

This will create a new resource group named myAKSResourceGroup in the eastus region.

  1. Enable the Microsoft.Compute Resource Provider

To use AKS, you must register the Microsoft.Compute resource provider:

If the registration state shows "Registering", wait a few minutes for it to complete. You can check the current state with:

Proceed once the status returns "Registered".

  1. Register the Operational Insights Resource Provider

To enable monitoring features in AKS, register the Microsoft.OperationalInsights provider:

You can check the registration status with:

Wait until the status shows "Registered" before proceeding.

  1. Register the Microsoft.ContainerService Provider

Before creating your AKS cluster, you must register the Microsoft.ContainerService resource provider, which is required to manage Kubernetes clusters in Azure.

Run the following command:

Then check the registration status:

Wait until the output returns:

Once it's registered, you can proceed with creating your AKS cluster.

  1. Create an AKS Cluster

Create an AKS cluster with your specified parameters. Replace <resource-group-name> with your resource group name, <cluster-name> with your desired AKS cluster name, and adjust other parameters as needed:

For example:

Note: The --generate-ssh-keys parameter will create SSH keys if they do not already exist.

  1. Connect to the AKS Cluster

Once your AKS cluster is created, you can connect to it using kubectl.

  1. Retrieve the cluster credentials:

This command configures your local kubectl context to interact with the AKS cluster:

  1. Verify the connection:

Run the following to ensure you're connected and the node is active:

You should see an output similar to the one below. Make sure to note the Name of your node. You’ll need it in Part 2

You should see your AKS node listed in the output. If so, you're now connected and ready to deploy to your cluster!

Part 2: Deploy Hyperswitch Using Helm

  1. Add the Hyperswitch Helm Repository

Update the repository to fetch the latest charts:

  1. Prepare the Kubernetes Cluster

  • Label the Node for Hyperswitch:

Replace <node-name> with the name of your node (use kubectl get nodes to find it). We saved the name on Part I, Step 7.

For example:

  • Create a Namespace:

Namespaces help organize and isolate resources within your Kubernetes cluster. To create a new namespace, use the following command:

Example:

This creates a namespace called hyperswitch-dev where you can deploy and manage related workloads separately from other environments.

  1. Install Hyperswitch

Use Helm to deploy Hyperswitch into your Kubernetes cluster. Replace <release-name> with your chosen release name and <namespace> with the namespace you previously created:

Example:

This command installs the Hyperswitch stack into the specified namespace, allowing you to manage and upgrade the deployment easily through Helm.

  1. Verify Installation

  • Check Pod Status:

Ensure all pods are in the Running state:

Example:

  • Check Helm Release:

Example:

That's it! Hyperswitch should be up and running on your Azure account 🎉

Expose Hyperswitch Services Locally

Use the following command for port-forwarding to access the services. Replace <namespace> with your namespace:

Access the services at:

The quickest way to explore Hyperswitch is via the Control Center. You can create an account or sign in with your email:

A magic link will be sent to Mailhog. Click on the link in white:

Afterwards, you’ll be taken straight to the Control Center. If you're just taking things for a spin, feel free to skip authentication and start exploring right away.

Test a payment

Use can now use the Hyperswitch Control Center and make a payment with dummy card.

Refer our postman collection to try out REST APIs.

Explore Further

Once you are done with the test payment, you can explore more about these:

Uninstall Hyperswitch & Delete AKS Cluster

  1. Uninstall Hyperswitch:

Example:

helm uninstall hyperswitch -n hyperswitch

  1. Delete the namespace:

kubectl delete namespace <namespace>

Example:

kubectl delete namespace hyperswitch

  1. Delete the AKS cluster completely:

Example:

Troubleshooting

  • View Pod Logs:

    To view logs for a specific pod:

  • View Events:

    To view events in the namespace:

  • Reinstall Chart:

    If issues persist, uninstall and reinstall Hyperswitch:

Customization & Configuration

To customize Hyperswitch, clone the Helm chart repository and modify values.yaml:

Update the values.yaml file inside hyperswitch-stack/ and apply changes with:

Last updated

Was this helpful?