Deploy on GCP Using Helm Charts

Part 1: Setting Up a Kubernetes Cluster on GCP

Step 1: Set Up GCP Account and Enable Kubernetes Engine API

  1. Sign In to Google Cloud Console:

  1. Create a Project:

  • Open your project picker:

  • Click New Project:

  • Provide a project name, and click Create:

If you are using an existing project, note the project ID for later use.

  1. Enable Kubernetes Engine API:

  • Navigate to APIs & Services > Library or search for it:

  • Search for Kubernetes Engine API and click Enable:

You'll need to provide billing information in order to proceed further. Follow the necessary steps and ensure the Kubernetes Engine API is enabled.

Step 2: Install Required Tools

  1. Google Cloud CLI (gcloud)

The Google Cloud Command-Line Interface (CLI) is a cross-platform tool that allows you to manage GCP resources. To install gcloud, please refer to the official Google Cloud SDK installation guide.

  1. kubectl

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

Ensure you only have 1 version of kubectl installed to avoid enviornmental conflict.

  1. Helm

Helm is a package manager for Kubernetes applications. To install Helm, please refer to the official Helm documentation.

Step 3: Create a Kubernetes Cluster

  1. Create the Cluster:

  • Run the following command to create a Kubernetes cluster:

gcloud container clusters create <CLUSTER_NAME> \
    --zone <ZONE> \
    --num-nodes <NUMBER_OF_NODES> \
    --machine-type e2-standard-4

Replace:

  • <CLUSTER_NAME>: A unique name for your cluster.

  • <ZONE>: The GCP zone (e.g., us-central1-a).

  • <NUMBER_OF_NODES>: Number of nodes in your cluster.

  • e2-standard-4: Machine type with 4 CPUs and 16GB RAM per node.

Example:

gcloud container clusters create hypers-cluster \
    --zone us-central1-a \
    --num-nodes 1 \
    --machine-type e2-standard-4    

Choose a --zone that's near you

  1. Verify the Cluster:

  • Fetch cluster credentials to allow kubectl to interact with it:

    gcloud container clusters get-credentials <CLUSTER_NAME> --zone <ZONE>
  • Confirm the nodes are ready:

    kubectl get nodes

Part 2: Deploy Hyperswitch on Kubernetes Using Helm

Step 1: Add and Update the Hyperswitch Helm Repository

  1. Add the Hyperswitch Helm repository:

helm repo add hyperswitch https://juspay.github.io/hyperswitch-helm
  1. Update Helm repository to fetch the latest charts:

helm repo update

Step 2: Prepare the Kubernetes Cluster

  1. Label Kubernetes Nodes: Ensure nodes meet the minimum requirements: 4 CPUs and 6GB memory.

  • Label your nodes:

kubectl label nodes <your-node-name> node-type=generic-compute
  • List nodes to confirm labels:

kubectl get nodes --show-labels
  1. Create a Namespace:

  • Create a dedicated namespace for Hyperswitch:

kubectl create namespace hyperswitch

Step 3: Install Hyperswitch

  1. Deploy Hyperswitch using Helm. Replace <release-name> with your desired release name and <namespace> with the namespace you created:

helm install hypers-v1 hyperswitch/hyperswitch-stack -n hyperswitch
  1. Verify the Deployment:

  • Check the status of all deployed pods:

kubectl get pods -n hyperswitch
  • Ensure all pods are in the Running state.

Expose Hyperswitch Services Locally

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

kubectl port-forward service/hyperswitch-server 8080:80 -n hyperswitch > /dev/null 2>&1 & \
kubectl port-forward service/hyperswitch-control-center 9000:80 -n hyperswitch > /dev/null 2>&1 & \
kubectl port-forward service/hyperswitch-web 9050:9050 -n hyperswitch > /dev/null 2>&1 & \
kubectl port-forward service/hypers-v1-grafana 3000:80 -n hyperswitch > /dev/null 2>&1 & \
kubectl port-forward service/hypers-v1-vector 3103:3103 -n hyperswitch > /dev/null 2>&1 & \
kubectl port-forward service/mailhog 8025:8025 -n hyperswitch > /dev/null 2>&1 &

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.

Troubleshooting

  • View Pod Logs: To check logs for a specific pod in Google Kubernetes Engine (GKE):

kubectl logs <pod-name> -n hyperswitch
  • View Events: To list events in the namespace sorted by creation time:

kubectl get events -n hyperswitch --sort-by='.metadata.creationTimestamp'
  • Deploy Hyperswitch Helm Chart on GKE: If deploying for the first time or reinstalling, run:

helm uninstall hypers-v1 -n hyperswitch
helm install hypers-v1 hyperswitch/hyperswitch-stack -n hyperswitch

Customization & Configuration

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

git clone https://github.com/juspay/hyperswitch-helm.git

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

helm upgrade --install hypers-v1 hyperswitch/hyperswitch-stack -n hyperswitch

Uninstall Hyperswitch & Delete GKE Cluster

  • To uninstall Hyperswitch:

helm uninstall hypers-v1 -n hyperswitch
  • To delete the GKE cluster completely:

gcloud container clusters delete <cluster-name> --region <region> --project <project-id> --quiet

Explore Further

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

Last updated

Was this helpful?