Deploy the kubernetes-mixin helm chart on Azure Managed Openshift Service
TypeScriptTo deploy the
kubernetes-mixin
Helm chart on Azure Managed OpenShift Service using Pulumi, we need to accomplish these steps:-
Set up an Azure Managed OpenShift Cluster: First, we need to provision an Azure OpenShift Managed Cluster. You will use the
azure-native.containerservice.OpenShiftManagedCluster
resource for this purpose. -
Install the
kubernetes-mixin
Helm chart: After setting up the OpenShift cluster, you will install thekubernetes-mixin
Helm chart into it. You will use thekubernetes.helm.v3.Chart
resource from the@pulumi/kubernetes
package to deploy the Helm chart.
Here is a detailed breakdown of what the TypeScript Pulumi program will do:
-
Azure Managed OpenShift Cluster: It represents a managed OpenShift service that provides a fully managed OpenShift cluster. The
OpenShiftManagedCluster
is a resource that allows you to define the characteristics of your OpenShift cluster, such as the version, the size and type of VMs for the master and agent pools, and network settings. -
Helm Chart: Helm is a package manager for Kubernetes, which allows you to define, install, and upgrade complex Kubernetes applications. The Helm chart for
kubernetes-mixin
will contain the necessary Kubernetes resources structured in a specific format and will be managed by Helm's Tiller component on the OpenShift cluster.
Below is a Pulumi program written in TypeScript that sets up an Azure Managed OpenShift Cluster and deploys the
kubernetes-mixin
Helm chart on it. Please be aware that the following code is illustrative and can be adapted to meet the exact specifications of your project, such as the desired Azure region, OpenShift version, chart version, and any chart values you want to override.import * as pulumi from "@pulumi/pulumi"; import * as azure_native from "@pulumi/azure-native"; import * as k8s from "@pulumi/kubernetes"; // Create a resource group const resourceGroup = new azure_native.resources.ResourceGroup("resourceGroup"); // Provision an Azure Managed OpenShift Cluster const openshiftCluster = new azure_native.containerservice.OpenShiftManagedCluster("openshiftCluster", { resourceGroupName: resourceGroup.name, location: resourceGroup.location, openShiftVersion: "OpenShift version", // Replace with the desired version networkProfile: { vnetCidr: "10.0.0.0/8", }, masterPoolProfile: { count: 3, // 3 masters is a standard setup for HA vmSize: "Standard_D4s_v3", // Adjust to the size you need }, // Define the agent pools with the proper VM sizes and counts agentPoolProfiles: [{ name: "agentpool", count: 5, vmSize: "Standard_DS3_v2", // Adjust to the size you need osType: "Linux", }], }); // Point to the Kubeconfig of the OpenShift cluster for the Pulumi Kubernetes provider to use const kubeconfig = openshiftCluster.kubeconfig.apply((config) => Buffer.from(config, "base64").toString()); // Create a new instance of the Pulumi Kubernetes provider pointing to the OpenShift cluster const k8sProvider = new k8s.Provider("openshiftK8sProvider", { kubeconfig: kubeconfig, }); // Deploy kubernetes-mixin Helm chart const kubernetesMixinChart = new k8s.helm.v3.Chart("kubernetesMixin", { chart: "kubernetes-mixin", version: "Chart version", // Replace with the desired chart version fetchOpts: { repo: "https://kubernetes-charts.storage.googleapis.com/", // Replace with the correct Helm repo URL }, }, { provider: k8sProvider }); // Export the kubeconfig to be able to interact with the OpenShift cluster export const kubeConfigOutput = kubeconfig;
Replace
"OpenShift version"
and"Chart version"
with the appropriate versions that you want to use. Also, replace the repository URL with the exact URL where thekubernetes-mixin
Helm chart is hosted if it's different from the default.This program will set up an Azure Managed OpenShift cluster and deploy the
kubernetes-mixin
Helm chart. After runningpulumi up
, this program will begin provisioning resources on Azure - which will take a few minutes. Once completed, you'll have a running OpenShift cluster with thekubernetes-mixin
Helm chart installed.Keep in mind that provisioning a Managed OpenShift cluster on Azure can incur costs and that deploying applications may also change the expected cost profile. Always review the pricing details for Azure Managed OpenShift and associated resources before proceeding.
-