1. Deploy the kserve-inference helm chart on Kubernetes


    To deploy the kserve-inference Helm chart on Kubernetes using Pulumi, you will need to create a Pulumi program in TypeScript that describes the desired state of your Kubernetes cluster's resources. The program will employ Pulumi's Kubernetes provider to deploy the Helm chart to your cluster.

    Below is a Pulumi program that does exactly that. This program assumes that you have already set up Pulumi with your desired Kubernetes context and that kubectl is configured to communicate with your Kubernetes cluster. Furthermore, it assumes that the Helm repository containing the kserve-inference chart is already added to your Helm configuration.

    Here's a step-by-step guide followed by the complete Pulumi program:

    1. We use Pulumi's Kubernetes provider to create an instance of Chart, which represents a Helm chart deployment in the cluster.
    2. We need to specify the Helm chart's name, version, and any values required to configure the chart properly.
    3. If required, you will provide the repository where the Helm chart is hosted.
    4. Once the program is ready, you will run pulumi up to create the resources described in the program.

    Here is the complete Pulumi TypeScript program:

    import * as k8s from "@pulumi/kubernetes"; // Create an instance of the kserve-inference Helm chart const kserveInferenceChart = new k8s.helm.v3.Chart("kserve-inference", { chart: "kserve-inference", // If there is a specific repo where your chart is located, uncomment and provide the URL // repo: "https://your-helm-chart-repository-url/", // Specify the version of the chart you want to deploy version: "YOUR_CHART_VERSION", // Provide the required values for your kserve-inference deployment values: { // Provide configuration values here. For example: // key1: value1, // key2: value2, }, }); // Export the public IP for the kserve-inference service export const kserveInferenceServiceIp = kserveInferenceChart.getResourceProperty( "v1/Service", "kserve-inference", "status" ).apply(status => status.loadBalancer.ingress[0].ip);

    You would replace YOUR_CHART_VERSION with the version number of the kserve-inference chart you wish to deploy. The values field accepts configuration options for the chart. You'll need to consult the documentation for the kserve-inference Helm chart for specifics on what values are expected.

    To deploy this chart to your Kubernetes cluster, run the pulumi up command after saving your code to a file, for example index.ts. Pulumi will perform a preview of the deployment and ask for confirmation before proceeding with the deployment.

    Once deployed, you can use pulumi stack output kserveInferenceServiceIp to obtain the public IP address (if applicable) for the deployed service, so you can communicate with it. Please note that the actual output may depend on the service type you have configured in the Helm chart.

    Remember to install the necessary Pulumi libraries and set up your Pulumi and Kubernetes configurations prior to running this program. The Pulumi documentation provides guidance on how to do this for Kubernetes and Pulumi's project setup.