Deploy the ibm-cp4i-operators helm chart on Azure Managed Openshift Service
TypeScriptTo deploy the IBM Cloud Pak for Integration (CP4I) operators on Azure Managed OpenShift Service using Pulumi with TypeScript, you will need to perform the following high-level steps:
- Set up an Azure Managed OpenShift cluster.
- Install the helm chart for IBM CP4I operators on the Azure Managed OpenShift cluster.
Below is a guide on how to achieve these steps using Pulumi.
Setting up Azure Managed OpenShift Cluster
To create an Azure Managed OpenShift cluster, you will be using the
azure-native.containerservice.OpenShiftManagedCluster
resource. This resource will provision an Azure Red Hat OpenShift cluster for you.Documentation for
azure-native.containerservice.OpenShiftManagedCluster
: OpenShiftManagedClusterDeploying Helm Chart on the Cluster
Once you have your OpenShift cluster, you will deploy the IBM CP4I operators helm chart. For this step, you'll use the
kubernetes.helm.v3.Chart
resource.Documentation for
kubernetes.helm.v3.Chart
: Helm ChartNow let's put it all together in a Pulumi program.
Firstly, ensure you have installed the necessary Pulumi packages by running the following:
pulumi plugin install resource kubernetes v4.4.0 pulumi plugin install resource azure-native v2.11.0
Here's the TypeScript program to perform these actions:
import * as pulumi from "@pulumi/pulumi"; import * as azure_native from "@pulumi/azure-native"; import * as kubernetes from "@pulumi/kubernetes"; // Provision an Azure Red Hat OpenShift Managed Cluster const openShiftCluster = new azure_native.containerservice.OpenShiftManagedCluster("openshiftcluster", { // Provide required and relevant fields for your OpenShift Managed cluster. // Sample properties show below, refer to the documentation for full configuration options. resourceName: "myOpenShiftCluster", resourceGroupName: "myResourceGroup", location: "East US", openShiftVersion: "v4.3", networkProfile: { vnetCidr: "10.0.0.0/8", }, agentPoolProfiles: [ { name: "compute", // Name it as preferred - commonly used names include 'compute', 'infra' or 'worker'. role: "Compute", // Use 'Compute' or 'Infrustructure'. count: 3, // Number of nodes to include in this pool. vmSize: "Standard_DS3_v2", // Select an appropriate VM size. }, // You can also add additional agent pool profiles if needed. ], masterPoolProfile: { name: "master", count: 3, vmSize: "Standard_DS3_v2", // It's recommended that master nodes have the same VM size as workers. }, }); // We use an Output here because we need the kubeconfig from the newly created OpenShift cluster, which is only available after the cluster is created. const kubeconfig = pulumi.output(openShiftCluster.kubeconfig); // Set up a Kubernetes provider instance using the kubeconfig from the Azure Red Hat OpenShift Managed Cluster const k8sProvider = new kubernetes.Provider("k8sprovider", { kubeconfig: kubeconfig.apply(kc => kc), }); // Deploy an application using a Helm Chart on the OpenShift cluster const helmChart = new kubernetes.helm.v3.Chart("ibm-cp4i-operators", { // Specify the chart details for IBM CP4I operators. chart: "ibm-cp4i-operators", fetchOpts: { repo: "https://<helm repo url>", // Use the URL provided by IBM for the IBM CP4I operators helm chart }, }, { provider: k8sProvider }); export const helmChartStatus = helmChart.status;
Explanation:
- This program defines an OpenShift Managed Cluster resource with placeholder values which you will need to replace with actual values relevant to your deployment.
- Note that the
kubeconfig
output from this cluster is used to configure the Kubernetes provider, which in turn is used to deploy the helm chart. - The
kubernetes.helm.v3.Chart
resource will fetch and deploy the specifiedibm-cp4i-operators
helm chart provided in therepo
parameter. You must replace<helm repo url>
with the actual Helm repository URL for IBM CP4I operators. - The
helmChart.status
output is then exported, which will provide insights on the deployment status of the Helm chart.
Make sure you have the correct permissions and configurations set for your Pulumi Azure and Kubernetes providers, the required Helm chart repository URL, and an appropriately set up Azure subscription. After these are set, you can deploy this program using Pulumi CLI to achieve your goal.