Deploy the trainingjobs helm chart on Kubernetes
TypeScriptTo deploy a Helm chart named
trainingjobs
on a Kubernetes cluster using Pulumi, you will perform the following steps:-
Set up Pulumi: Ensure Pulumi CLI is installed and configured with access to your Kubernetes cluster. If you haven't already, install the CLI and run
pulumi login
to connect to the Pulumi service, which stores the state of your infrastructure. -
Create a new Pulumi project: A Pulumi project organizes your infrastructure code and is composed of a
Pulumi.yaml
file and your programming language files. -
Install the necessary Pulumi packages: You will need to use the Pulumi Kubernetes package. These packages provide resources that correspond to the Kubernetes API objects like namespaces, deployments, and services.
-
Write the Pulumi code to deploy the Helm chart: Using the
Chart
resource from@pulumi/kubernetes/helm/v3
, you can deploy the Helm chart to your cluster. TheChart
resource allows you to specify the chart name, version, and provide any values that are necessary to configure it. -
Run the Pulumi program: Finally, use the
pulumi up
command to preview and apply the changes to the cluster. This will start the deployment of the Helm chart on the Kubernetes cluster.
Below is a detailed Pulumi program written in TypeScript that demonstrates how to deploy a Helm chart named
trainingjobs
on your Kubernetes cluster.import * as k8s from "@pulumi/kubernetes"; // Create an instance of the Kubernetes Helm Chart class. // This will install the Helm chart named 'trainingjobs' from the specified repository. const trainingjobsChart = new k8s.helm.v3.Chart("trainingjobs-chart", { // The 'repo' field specifies the Helm chart repository. // If the chart is in a public Helm repo, specify the URL here. If it's stored locally, you can omit this field. repo: "https://charts.example.com/", // The name of the Helm chart to deploy. chart: "trainingjobs", // Any custom values you wish to pass to the Helm chart. // These values will override the default values in the chart. values: { // Custom values go here. For this example, we're keeping this empty. // This would look like: // service: { // type: "LoadBalancer" // } }, // Optionally, you can specify a version for the chart. // If omitted, Pulumi will deploy the latest version. version: "1.2.3", // Specify the namespace in which to deploy the chart. // If omitted, Pulumi will use the default namespace. namespace: "default", }); // Export the resources created by the chart if needed. // This could include the deployed service URL or other important information. export const resources = trainingjobsChart.resources;
To explain the code:
- We import the Kubernetes package from Pulumi to handle Kubernetes resources.
- We create a new
Chart
resource, which is Pulumi's representation of a Helm chart. This resource will tell Pulumi to install the Helm chart namedtrainingjobs
for us. - The
repo
field specifies the Helm chart repository URL. This is where your Helm chart is hosted. If you have the chart available locally, you can use thepath
property instead ofrepo
. - The
chart
property is the name of the chart in the repository you want to deploy. - The
values
is an object that contains the values you want to override in the Helm chart. You can configure the chart as required, just as you would when usinghelm install
orhelm upgrade
with custom values. - The
version
specifies the version of the chart to deploy. This argument is optional. - The
namespace
specifies the Kubernetes namespace to deploy the chart into. If not specified, it defaults to the "default" namespace. - Finally, we export any resources that result from deploying the Helm chart. This might include the names of Deployments, Services, or any other Kubernetes objects defined by the Helm chart.
To run the Pulumi program, perform the following steps in your terminal:
-
Navigate to the directory containing your Pulumi program.
-
Run
pulumi up
to preview and deploy your changes. Pulumi will show you a preview of the resources that will be created. Confirm the action to start the deployment. -
Once it completes, if you exported any resources, their names and other details will be displayed in the output.
Remember that running
pulumi up
will prompt you for confirmation before applying any changes to your Kubernetes cluster. This allows you to review the expected changes before they are executed.-