Deploy the cloudbeaver helm chart on Azure Managed Openshift Service
TypeScriptTo deploy the CloudBeaver Helm chart on Azure Managed OpenShift Service, you need to follow these steps:
Step 1: Create an OpenShift Managed Cluster
First, you need to create an Azure Red Hat OpenShift cluster. This will be your Kubernetes-based environment where you'll be deploying CloudBeaver via Helm. For this, we use the
azure-native.redhatopenshift.OpenShiftCluster
resource.Step 2: Install the Helm Chart
After the cluster is up and running, you'll deploy the CloudBeaver Helm chart onto the cluster. For this step, we use the
kubernetes.helm.sh/v3.Chart
resource, which is the standard way to deploy Helm charts on a Kubernetes cluster with Pulumi.Before you begin, make sure you have set up the following:
- Pulumi CLI installed and you are logged in with
pulumi login
. - Azure CLI installed and you are logged into your Azure account with
az login
. - You have configured your Pulumi environment to use the Azure provider.
Here is the TypeScript Pulumi program that accomplishes these steps:
import * as pulumi from "@pulumi/pulumi"; import * as azure_native from "@pulumi/azure-native"; import * as k8s from "@pulumi/kubernetes"; // Step 1: Create an Azure Red Hat OpenShift cluster const resourceGroup = new azure_native.resources.ResourceGroup("rg", { resourceGroupName: "cloudbeaver-openshift-rg", location: "East US", // example location, change to your desired location }); const openShiftCluster = new azure_native.redhatopenshift.OpenShiftCluster("openshiftCluster", { resourceName: "cloudbeaver-openshift-cluster", resourceGroupName: resourceGroup.name, location: resourceGroup.location, clusterProfile: { pullSecret: "", // Your pull secret obtained from the Red Hat OpenShift domain: "cloudbeaver", // Your domain version: "4.3", // Specify the OpenShift version you want to deploy. }, masterProfile: { vmSize: "Standard_D8s_v3", }, workerProfiles: [ { name: "worker", vmSize: "Standard_D8s_v3", diskSizeGB: 128, subnetId: "", // Specify the subnet ID count: 3, }, ], networkProfile: { podCidr: "10.128.0.0/14", serviceCidr: "172.30.0.0/16", }, servicePrincipalProfile: { clientId: "", // Your service principal client ID clientSecret: "", // Your service principal client secret }, }); // Step 2: Install the CloudBeaver Helm Chart const k8sProvider = new k8s.Provider("k8sProvider", { kubeconfig: openShiftCluster.kubeConfigRaw, }); const cloudbeaverChart = new k8s.helm.v3.Chart("cloudbeaver", { chart: "cloudbeaver", version: "0.1.0", // Example version, specify the version of the Helm chart you want to deploy. fetchOpts:{ repo: "https://helm-repository-url.com" // Replace with the URL of the CloudBeaver Helm chart repository. }, }, { provider: k8sProvider }); // Export the OpenShift cluster's kubeconfig. export const kubeconfig = openShiftCluster.kubeConfigRaw;
In this program:
- We first create an Azure resource group to contain our OpenShift cluster using the
ResourceGroup
resource. - We then define and provision an OpenShift cluster within the specified resource group by creating an
OpenShiftCluster
resource.- Fill in the
pullSecret
,subnetId
,clientId
, andclientSecret
fields with your specific configurations.
- Fill in the
- We create a Pulumi Kubernetes provider which uses the kubeconfig of our newly created OpenShift cluster. This allows Pulumi to interact with our Kubernetes cluster.
- After setting up the provider, we deploy the CloudBeaver Helm chart using the
Chart
resource. You need to specify the Helm chart version and the repository where the Helm chart is located.
Don't forget to replace the placeholders with your actual data such as location, domain, version, subnetId, and service principal details. After that, run
pulumi up
to execute the code which will provision the resources in the cloud.Make sure you have the required Helm repository added to your Helm CLI if you want to update the chart or inspect it locally:
helm repo add cloudbeaver https://helm-repository-url.com helm repo update
Replace
https://helm-repository-url.com
with the real Helm repository URL for the CloudBeaver chart.- Pulumi CLI installed and you are logged in with