1. Deploy the ibm-mqadvanced-server-dev helm chart on Digital Ocean Kubernetes Service


    To accomplish your goal, we'll perform the following steps:

    1. Create a Kubernetes cluster on Digital Ocean using Pulumi's DigitalOcean provider.
    2. Deploy the ibm-mqadvanced-server-dev Helm chart to this Kubernetes cluster using Pulumi's Kubernetes provider.

    The two Pulumi resources we'll mainly be working with are:

    • digitalocean.KubernetesCluster to create the cluster (docs)
    • kubernetes.helm.v3.Chart to deploy the Helm chart to the cluster (docs)

    Here's a TypeScript program that accomplishes this:

    import * as digitalocean from '@pulumi/digitalocean'; import * as k8s from '@pulumi/kubernetes'; // Step 1: Create a Digital Ocean Kubernetes Cluster. const cluster = new digitalocean.KubernetesCluster('do-cluster', { region: 'nyc1', version: 'latest', // specify the desired Kubernetes version nodePool: { name: 'default', size: 's-2vcpu-2gb', // specify the desired Droplet size nodeCount: 2, // specify the number of nodes in the pool }, }); // Export the cluster's kubeconfig. export const kubeconfig = cluster.kubeConfigs[0].rawConfig; // Step 2: Create a Kubernetes provider instance using the created cluster's kubeconfig. const provider = new k8s.Provider('k8s-provider', { kubeconfig: cluster.kubeConfigs[0].rawConfig, }); // Step 3: Deploy IBM MQ Advanced Server Developer edition using the Helm chart. const ibmMqChart = new k8s.helm.v3.Chart('ibm-mq', { chart: 'ibm-mqadvanced-server-dev', // specify the Helm chart // Additional options can be set here. You would typically // set these values according to the Helm chart's documentation. // Values might include licensing acceptances or selection of resources. // For example: values: { // "license": "accept" // an example of accepting license terms // "resources": { "memory": "2Gi", "cpu": "1000m" }, // example resource requests }, }, { provider }); // Export the Chart's status as an output variable. export const ibmMqChartStatus = ibmMqChart.status;

    The TypeScript program performs these actions:

    1. It creates a Digital Ocean Kubernetes cluster in the NYC1 region with two nodes of the size "s-2vcpu-2gb". You can choose different Droplet sizes and the number of nodes based on your needs.
    2. It exports the kubeconfig of the newly created cluster, which is required to communicate with the cluster.
    3. It sets up a Pulumi Kubernetes provider with the kubeconfig. This provider is aware of our Digital Ocean cluster and allows us to deploy Kubernetes resources to it.
    4. It then deploys the IBM MQ Advanced Server Developer edition using a Helm chart. The Helm chart name and any custom values you wish to provide would go in the chart and values properties, respectively. You may need to modify the values according to the specific requirements and parameters of the ibm-mqadvanced-server-dev Helm chart.

    At the end of the program, we export a cluster kubeconfig and Helm chart's status as output variables. The kubeconfig is necessary to interact with your Kubernetes cluster using kubectl or any Kubernetes client library. The Helm chart status can be used to monitor the deployment status of IBM MQ Advanced Server.

    Please note that before running this Pulumi program, ensure you have set up the Pulumi CLI and logged into the Digital Ocean Pulumi provider using your access token. You can get more details on setting up the Digital Ocean provider with Pulumi here.

    Once you run this program with pulumi up, it will perform all the steps mentioned, and you will have a Kubernetes cluster on Digital Ocean with IBM MQ Advanced Server Developer edition deployed on it.