1. Deploy the tiller helm chart on Oracle Kubernetes Engine (OKE)


    To deploy a Helm chart on Oracle Kubernetes Engine (OKE) using Pulumi, you'll need to write a program that performs the following actions:

    1. Set up the OKE environment which involves creating a Kubernetes cluster if you don't have one already.

    2. When you have an accessible Kubernetes cluster in OKE, you'll deploy the Tiller Helm chart to that cluster. Tiller is the server component of Helm v2 and it interacts with the Kubernetes API server to install, configure, update, and manage applications.

    Please note that starting from Helm v3, Tiller has been removed and Helm now directly interacts with the Kubernetes API server. If you're using the latest Helm charts, you might not need to install Tiller. But for the sake of this guide, I'll show you how to install the Tiller server component assuming use in a v2 context.

    Before you proceed, make sure you have the following prerequisites met:

    • Pulumi CLI installed and authenticated with your cloud account.
    • Access to an existing OKE Kubernetes cluster or sufficient permissions to create one.
    • Oracle Cloud Infrastructure (OCI) CLI set up and configured with the necessary IAM permissions.

    Here's the TypeScript program to deploy the Tiller Helm chart on OKE:

    import * as pulumi from "@pulumi/pulumi"; import * as kubernetes from "@pulumi/kubernetes"; import * as oci from "@pulumi/oci"; // Replace these variables with your own configurations const compartmentId = "your-compartment-ocid"; const vcnId = "your-vcn-ocid"; const kubernetesVersion = "v1.20.8"; // Use a version supported by OKE const cluster = new oci.ContainerEngine.Cluster("okeCluster", { compartmentId: compartmentId, kubernetesVersion: kubernetesVersion, options: { // Additional options can be provided here serviceLbConfig: {}, // Enabling addons such as Tiller is done in Helm v2 using Pulumi's Kubernetes provider }, vcnId: vcnId, }); // Set up a Kubernetes provider instance using the OKE cluster's kubeconfig const k8sProvider = new kubernetes.Provider("okeK8sProvider", { kubeconfig: cluster.kubeconfig.apply(JSON.stringify), }); // Deploy the Tiller Helm chart using Helm v2 const tillerChart = new kubernetes.helm.sh.v2.Chart("tiller", { repo: "helm", // This is where the Helm v2 charts were historically hosted chart: "tiller", version: "2.16.12", // This version number is for illustration; please use an actual version as needed }, { provider: k8sProvider }); // Export the cluster name and kubeconfig export const clusterName = cluster.name; export const kubeConfig = cluster.kubeconfig.apply(JSON.stringify);

    This Pulumi program performs the following operations:

    • Creates a new instance of an OKE Kubernetes cluster (or configures it using existing one).
    • Sets up a kubernetes.Provider using the kubeconfig from the OKE cluster.
    • Deploys the Tiller Helm Chart into the Kubernetes cluster using the specified Helm chart version.

    Remember to replace placeholder values with actual values relevant to your Oracle Cloud Infrastructure. Also, as Helm has evolved, consider using the most current practices if you're not strictly tied to Helm v2.

    After your program is written, you can run it by executing pulumi up in the CLI from the directory where this code is saved.

    Finally, keep in mind that Helm v2 has been deprecated and Helm v3 should be used for new deployments which does not require Tiller. If you're starting fresh, you might want to consider using the latest version of Helm. The code provided is for educational purposes for deploying the tiller helm chart specifically as requested.