Deploy the newrelic-private-minion helm chart on Azure Managed Openshift Service
TypeScriptTo deploy the New Relic private minion Helm chart on Azure Managed OpenShift Service using Pulumi, you will need to follow these steps:
- Set up an Azure Managed OpenShift Cluster: First, you'll create an Azure Managed OpenShift Cluster where your applications will run.
- Install the Helm Chart: Once you have the OpenShift cluster, you can deploy the New Relic private minion using a Helm chart.
Below is a Pulumi program written in TypeScript that accomplishes these tasks. The program uses the
azure-native
package to create an OpenShift Managed Cluster and thekubernetes
package to deploy the Helm chart.Creating an Azure Managed OpenShift Cluster
This step involves creating a new instance of an OpenShift Managed Cluster on Azure. We use the
azure-native.containerservice.OpenShiftManagedCluster
resource to do this.Deploying the Helm Chart
For this step, we will utilize the
kubernetes.helm.sh/v3.Chart
resource from the Pulumi Kubernetes plugin. This plugin assumes that you have already configured your Kubernetes cluster context appropriately, and that Helm is installed.Here's how you can use Pulumi to deploy the
newrelic-private-minion
Helm chart:import * as pulumi from '@pulumi/pulumi'; import * as azure_native from '@pulumi/azure-native'; import * as kubernetes from '@pulumi/kubernetes'; // Create an Azure Resource Group const resourceGroup = new azure_native.resources.ResourceGroup('resourceGroup', { resourceGroupName: 'myResourceGroup', location: 'East US', // Choose a supported location for Azure Managed OpenShift }); // Create an Azure Managed OpenShift Cluster const cluster = new azure_native.containerservice.OpenShiftManagedCluster('myOpenshiftCluster', { resourceName: 'myOpenShiftCluster', resourceGroupName: resourceGroup.name, location: resourceGroup.location, openShiftVersion: '4.3', // specify the version of OpenShift // Other necessary configurations for networking, authentication, etc. // will go here based on your requirements }); // Deploy the New Relic private minion Helm chart to the Azure Managed OpenShift Cluster const helmChart = new kubernetes.helm.v3.Chart('newrelic-private-minion', { chart: 'newrelic-private-minion', version: '1.0.0', // specify the chart version you want to deploy fetchOpts: { repo: 'https://helm-charts.newrelic.com/', // New Relic Helm chart repository URL }, namespace: 'default', // specify the namespace where you want to deploy the chart // Include any custom values you want to provide to the helm chart values: { // Place the specific configuration values for your newrelic-private-minion here }, }, { provider: cluster }); // Ensure you pass the OpenShift cluster as a provider // Export the cluster kubeconfig export const kubeconfig = cluster.kubeconfig;
In the code above:
- The
resourceGroup
creates a new resource group in Azure where all resources will reside. - The
cluster
resource is an instance ofOpenShiftManagedCluster
, which creates an OpenShift cluster within the specified resource group and location. - The
helmChart
is an instance ofChart
, representing a Helm chart deployment. The New Relic private minion chart is fetched from the official New Relic Helm repository and installed in the default namespace.
Make sure to replace dummy values with actual ones as needed, especially in the
values
object inside thehelmChart
declaration. This is where you'll provide New Relic-specific configurations as per their documentation.Remember that deploying an Azure Managed OpenShift cluster can incur costs, and also, modifications to this program may be required based on specific needs, like networking setup, authentication, and Helm chart configuration.
After you have this code in place, you would typically use the Pulumi CLI to deploy your infrastructure by running
pulumi up
command. Always, review the execution plan before confirming to avoid unintended changes.This is a baseline for deploying the New Relic private minion on Azure Managed OpenShift and you may need to adjust parameters and configurations to suit your specific requirements. Ensure that you have appropriate permissions and that your Pulumi and Azure CLI configurations are set up correctly before running the program.