1. Deploy the onap helm chart on Opensshift


    Deploying a Helm chart on an OpenShift cluster can be accomplished using Pulumi's Kubernetes provider. The Kubernetes provider supports Helm charts, which are packages of pre-configured Kubernetes resources.

    To deploy the ONAP (Open Network Automation Platform) Helm chart on OpenShift using Pulumi, you'll first need to have your OpenShift cluster up and running. I assume you've already configured access to your cluster using kubectl, as Pulumi relies on the same configuration to interact with the cluster.

    The following Pulumi program in TypeScript will demonstrate how to deploy a Helm chart to an existing OpenShift cluster. I'm using the kubernetes.helm.v3.Chart resource, which represents a Helm chart in Pulumi's Kubernetes provider.

    Here's a step-by-step Pulumi program that you can use to deploy the ONAP Helm chart:

    1. Import necessary Pulumi and Kubernetes packages.
    2. Define a Chart resource which points to the ONAP Helm chart.

    Please note that deploying ONAP is quite complex, and its Helm chart might have several configurable values. You need to ensure that all required values for the ONAP Helm chart are correctly set according to your OpenShift cluster's configuration and requirements.

    import * as k8s from "@pulumi/kubernetes"; // Replace <namespace> with the OpenShift namespace where you want to deploy ONAP. const namespace = "<namespace>"; // Replace these placeholder values with the actual repository URL and version of ONAP Helm chart you want to deploy. const repoUrl = "https://<helm-chart-repository-url>"; const chartVersion = "<onap-chart-version>"; const onapChart = new k8s.helm.v3.Chart("onap", { // Specify the namespace for the ONAP deployment. namespace: namespace, // Set the chart repository URL. repo: "onap", // Set the exact name of the chart. chart: "onap", // Specify the version of the chart. version: chartVersion, // Add your custom configuration values here. values: { // These values need to be configured based on ONAP's requirements // and your OpenShift's cluster specifics. // This is just an example of how you might specify a value. someConfigurationKey: "some-configuration-value", }, // Optionally, set the fetch options if needed, such as `repo` for custom Helm chart repositories. fetchOpts: { repo: repoUrl, }, }, { provider: new k8s.Provider("openshift", { kubeconfig: "<path-to-kubeconfig>" }) }); // Export the name of the namespace which the ONAP chart was deployed to. export const onapNamespace = namespace;

    In this example:

    • The namespace variable should be set to the namespace where you want to deploy ONAP in your OpenShift cluster.
    • You'll need to replace "<helm-chart-repository-url>" and "<onap-chart-version>" with the actual URL to the Helm chart repository that contains the ONAP chart and the version of the chart you wish to use.
    • The values object is where you can specify any custom configuration that the ONAP chart requires. You need to consult the ONAP Helm chart documentation for all required and configurable values.
    • The fetchOpts is a property where you can specify options for fetching the Helm chart. In this case, you provide the repository URL.
    • You might need to specify the path to your kubeconfig file if Pulumi is not configured to automatically use your default kubeconfig.

    Make sure to consult the ONAP Helm chart documentation to understand all the required values you need to provide. Once you have filled in all the placeholders and configured your values, you can deploy your ONAP Helm chart using Pulumi CLI commands like pulumi up.