1. Deploy the zipkin-stackdriver-proxy helm chart on Oracle Kubernetes Engine (OKE)


    In order to deploy a Helm chart to an Oracle Kubernetes Engine (OKE) cluster using Pulumi, you will first need to have an existing OKE cluster. For the purpose of this program, I'll assume that you have already provisioned an OKE cluster and have the necessary Kubernetes configuration to interact with it.

    Here, we will use the kubernetes package, particularly the helm.v3.Chart class, which allows us to deploy Helm charts to a Kubernetes cluster.

    The helm.v3.Chart resource is used to deploy a chart from a Helm repository or a local Helm chart. When deploying the zipkin-stackdriver-proxy chart, you will not typically need to provide a lot of custom values unless you wish to override the chart's defaults. The stackdriver-proxy is used to send Zipkin trace data to Google Cloud's Stackdriver Trace for analysis and visualization.

    Below is a Pulumi program written in TypeScript which deploys the zipkin-stackdriver-proxy Helm chart to an OKE cluster:

    import * as k8s from "@pulumi/kubernetes"; // In a real project, the kubeconfig can be sourced from a Pulumi config or directly as shown here. const kubeconfig = `... your kubeconfig ...`; // Create a provider to interact with your OKE cluster. const provider = new k8s.Provider("oke-k8s", { kubeconfig: kubeconfig, }); // Deploy the zipkin-stackdriver-proxy Helm chart. const helmChart = new k8s.helm.v3.Chart("zipkin-stackdriver-proxy", { repo: "stable", // This is an example; you should provide the correct Helm repo that contains your chart. chart: "zipkin-stackdriver-proxy", // If you need to specify values for the chart, include them in the `values` property. // values: { /* Custom values here */ }, }, { provider: provider }); // Export the Deployment name of the zipkin-stackdriver-proxy export const deploymentName = helmChart.getResourceName("v1/Deployment", "zipkin-stackdriver-proxy");

    Replace ... your kubeconfig ... with your OKE cluster's actual kubeconfig content to enable Pulumi to connect to your cluster. You should use a Pulumi secret to protect your kubeconfig if it's sensitive. This example assumes that you have set up the Helm repository containing the zipkin-stackdriver-proxy chart beforehand. If the chart is in a custom repository or has a different name, you will need to adjust the repo and chart values accordingly.

    The Chart resource will handle fetching the Helm chart and deploying it to your OKE cluster. If the Helm chart requires specific values to configure the Stackdriver integration or others, you can include these values in the values object.

    After deploying this program with pulumi up, Pulumi will print the deployed resources, and you will also see the deploymentName as an output in your console. Save and review the output of the deployment to ensure that it was successful. You can then use kubectl or the Kubernetes Dashboard to verify the status of the Zipkin Stackdriver proxy pods in your cluster.

    Please ensure you have the Pulumi CLI installed and are authenticated with Oracle Cloud Infrastructure to run this program.