1. Deploy the newrelic-private-minion helm chart on Azure Managed Openshift Service


    To deploy the New Relic private minion Helm chart on Azure Managed OpenShift Service using Pulumi, you will need to follow these steps:

    1. Set up an Azure Managed OpenShift Cluster: First, you'll create an Azure Managed OpenShift Cluster where your applications will run.
    2. 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 the kubernetes 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 of OpenShiftManagedCluster, which creates an OpenShift cluster within the specified resource group and location.
    • The helmChart is an instance of Chart, 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 the helmChart 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.