1. Deploy the azure-industrial-iot helm chart on Rancher


    Deploying Helm charts on Kubernetes clusters managed by Rancher involves several steps, including setting up Rancher credentials, creating or managing your cluster, and deploying the chart itself. In this walkthrough, we will deploy the azure-industrial-iot Helm chart on a Rancher-managed Kubernetes cluster using Pulumi and the rancher2 provider.

    Initial Setup

    To start with Pulumi, ensure you have:

    • Pulumi CLI installed: Refer to the Pulumi Installation Guide.
    • Rancher CLI installed and configured: This is needed to interact with Rancher. You can find the installation instructions on the Rancher CLI GitHub page.
    • Rancher API keys: Generated from the Rancher UI to authenticate with your Rancher instance programmatically.

    Step-by-Step Guide

    1. Setting Up a Pulumi Project: Before deploying the Helms chart, we need to set up a Pulumi project with the appropriate language runtime (TypeScript, in this case).

    2. Configuring Pulumi to Use Rancher2 Provider: Configure Pulumi to use the Rancher2 provider with the necessary credentials.

    3. Provisioning a Rancher2 Kubernetes Cluster: Define a new Kubernetes cluster or use an existing one managed by Rancher.

    4. Deploying the Helm Chart: Once the cluster is up, we'll deploy the azure-industrial-iot Helm chart into the cluster using the Pulumi Rancher2 CatalogV2.

    Now, let's write a Pulumi program in TypeScript to accomplish this.

    import * as rancher2 from "@pulumi/rancher2"; import * as k8s from "@pulumi/kubernetes"; // Step 1: Set up Rancher credentials and related configuration const rancherApiUrl = "https://your-rancher-instance/v3"; const rancherAccessKey = "your-rancher-access-key"; const rancherSecretKey = "your-rancher-secret-key"; // Initialize Rancher provider const rancherProvider = new rancher2.Provider("rancher", { apiUrl: rancherApiUrl, accessKey: rancherAccessKey, secretKey: rancherSecretKey, }); // Step 2: Identify the target Rancher Cluster const cluster = new rancher2.Cluster("azure-iot-cluster", { // ...define your cluster parameters. In a real situation, you may reference an existing cluster }, { provider: rancherProvider }); // Step 3: Deploy the azure-industrial-iot Helm chart const catalog = new rancher2.CatalogV2("chart-repo", { clusterId: cluster.id, url: "https://catalog-url-for-azure-industrial-iot", // Replace with the actual Helm chart repo URL name: "azure-iot", }, { provider: rancherProvider }); // Deploy the chart from the catalog const chart = new k8s.helm.v3.Chart("azure-iot-chart", { chart: "azure-industrial-iot", fetchOpts: { repo: catalog.url, }, // You might need to specify values depending on the Helm chart requirements values: { // ... your values here }, }, { provider: cluster.provider }); // Export relevant resources export const chartName = chart.metadata.name; export const clusterName = cluster.name;

    Explanation of Pulumi Code

    • We start by importing the necessary Pulumi packages for our program.
    • We define the Rancher provider, passing the API URL and API keys to authenticate with Rancher.
    • We create an instance of rancher2.Cluster to work with our Kubernetes cluster managed by Rancher.
    • A rancher2.CatalogV2 resource is created to add the Helm chart repository to Rancher. You need to replace "https://catalog-url-for-azure-industrial-iot" with the actual URL of the Helm chart repository.
    • Using Pulumi's Kubernetes SDK with Helm support, we create a Chart resource to deploy the azure-industrial-iot Helm chart from the specified catalog repository.
    • The values section in Chart is where you would tweak Helm chart settings according to the needs of the azure-industrial-iot chart. You will need to consult the chart's documentation for the available options.
    • Finally, we export identifiers of the deployed resources for easy access.

    What's Next

    After you write this code in a TypeScript Pulumi program:

    1. Run pulumi up to create or update your stack.
    2. Pulumi will show a preview and prompt you to confirm the deployment.
    3. Once confirmed, Pulumi will proceed with the deployment and report the progress.

    If you modify the program—for example, to update configuration values—rerun pulumi up to apply your changes.

    This Pulumi program provides the scaffolding for deploying the azure-industrial-iot Helm chart on a Kubernetes cluster managed by Rancher. You will need to make adjustments and provide additional configuration specific to the Helm chart and your Rancher setup, but this serves as a starting point to automate deployment.