Deploy the nginx-test helm chart on Opensshift
TypeScriptTo deploy a Helm chart on an OpenShift cluster using Pulumi, you need to have access to an OpenShift cluster and Helm chart details like its repository, name, and any custom values you wish to provide for the deployment.
Pulumi provides the
kubernetes
package that can be used to deploy Helm charts to a Kubernetes-compatible cluster, such as OpenShift. You can use thehelm.sh/v3.Chart
resource to deploy Helm charts. This resource requires you to specify the chart name, version, and repository where the chart is hosted if it's not a local chart. You may also specify any customvalues
you want to pass to Helm.Below is a Pulumi program written in TypeScript that deploys the
nginx-test
Helm chart to an OpenShift cluster:import * as kubernetes from "@pulumi/kubernetes"; // If your Helm chart is available in a chart repository, you need to specify the repository URL. // Otherwise, if it's local, you need to provide the path to where the chart is located. const chartRepo = "https://charts.bitnami.com/bitnami"; const chartName = "nginx"; const chartVersion = "9.3.1"; // replace with the specific version you want to deploy const nginxTestChart = new kubernetes.helm.v3.Chart("nginx-test", { // Specify your Helm chart repository URL. repo: chartRepo, chart: chartName, version: chartVersion, // To deploy this chart in the default namespace, you can leave out the namespace property. // Otherwise, specify the namespace in which you wish to deploy your chart. namespace: "default", // Provide custom values to the Helm chart by setting the 'values' property. values: { // These are example values. You'll need to provide values specific to the nginx-test chart. service: { type: "ClusterIP", } }, }); // Export the service name of the test nginx instance export const serviceName = nginxTestChart.getResource("v1/Service", "nginx-test", "default").metadata.name; // Export the service endpoint of the test nginx instance export const serviceEndpoint = nginxTestChart.getResourceProperty("v1/Service", "nginx-test", "default", "status.loadBalancer.ingress[0].hostname");
This Pulumi program uses TypeScript and assumes that you've already configured Pulumi to work with your OpenShift cluster.
Here's a rundown of what's happening in the program:
-
We import the
@pulumi/kubernetes
package, which allows us to interact with Kubernetes resources, including Helm charts. -
We set the
chartRepo
to point to the Bitnami Helm repository, which is a common repository for Helm charts. If yournginx-test
chart is in another repository or is a local chart, you'll need to change this value accordingly. -
We create a new instance of
helm.v3.Chart
, which represents the deployment of the Helm chart on our OpenShift cluster. -
We specify the chart name, version, and repository. If your Helm chart has a different name or is at a different version, you should modify these values.
-
In the
values
section, you can override any default configuration values defined in your Helm chart. In the example above, we've set the service type toClusterIP
. This is just an example and you will need to adjust the values according to your chart's requirements. -
Finally, we export the service name and endpoint of the deployed chart as Pulumi stack outputs. These outputs can be helpful to retrieve information about the deployed resources, such as the endpoint to access the
nginx
service.
Remember, you'll need the Pulumi CLI installed and configured to interact with your OpenShift cluster. Once your Pulumi stack is configured, run
pulumi up
to apply the changes and deploy the Helm chart to your cluster.-