Deploy the webpagetest-server helm chart on Rancher
TypeScriptTo deploy the
webpagetest-server
Helm chart on a Rancher Kubernetes cluster using Pulumi, you will need to follow these steps:-
Set up a Rancher Kubernetes Cluster: Ensure you have access to a Rancher Kubernetes cluster. If you don't have one, you can create a cluster using Pulumi's Rancher2 provider. You will need the
clusterId
to deploy workloads to. -
Install and Configure Helm: Helm must be installed and configured on your local machine or CI/CD environment. Pulumi uses the Helm CLI to deploy Helm charts.
-
Pulumi Stack: Your Pulumi stack should be set up, and the Kubernetes provider should be configured with access to your Rancher Kubernetes cluster.
-
Helm Chart Deployment: Using Pulumi's
helm
package, you can fetch and deploy thewebpagetest-server
chart on your Rancher cluster.
The following TypeScript program outlines these steps. It assumes you already have a Rancher Kubernetes cluster and your
kubeconfig
is configured correctly. You will need to adjustclusterId
variable with your actual Rancher Kubernetes cluster ID.import * as rancher2 from "@pulumi/rancher2"; import * as k8s from "@pulumi/kubernetes"; import * as helm from "@pulumi/kubernetes/helm"; // Configure the Rancher2 provider with the appropriate credentials. // This information may be sourced from environment variables or Pulumi configuration. // Replace the placeholder values with your actual Rancher API URL and access token. const rancherProvider = new rancher2.Provider("rancher", { apiUrl: "https://<RANCHER_API_URL>", tokenKey: "token-<ACCESS_TOKEN>" }); // Provide the Rancher Cluster ID where the helm chart will be deployed. const clusterId = "<YOUR-RANCHER-CLUSTER-ID>"; // Set up a Kubernetes provider instance using the kubeconfig from the Rancher cluster. const k8sProvider = new k8s.Provider("k8s-provider", { kubeconfig: rancherProvider.kubeconfigs.apply(cfg => cfg[clusterId].config), }); // Deploy the webpagetest-server Helm chart on the Rancher cluster. const webpagetestServerChart = new helm.v3.Chart("webpagetest-server", { repo: "webpagetest", chart: "webpagetest-server", version: "<CHART-VERSION>", // specify the version of the chart you want to deploy // Values in key-value format for the Helm chart. values: { // Chart specific value overrides go here. // For example: // service: { // type: "LoadBalancer", // }, }, }, { provider: k8sProvider }); // Optional: Export the Helm release name so you can easily find it with kubectl or Helm CLI export const releaseName = webpagetestServerChart.status.name;
Explanations:
-
The
rancher2.Provider
is initialized with the Rancher API URL and access token, which allows Pulumi to communicate with your Rancher instance. -
We use the
kubeconfig
obtained from a specific Rancher cluster identified byclusterId
to set up the Kubernetes provider (k8sProvider
). This provider is then used to communicate with the Kubernetes API inside the Rancher cluster. -
The
helm.v3.Chart
resource is used to deploy thewebpagetest-server
Helm chart to your Rancher Kubernetes cluster. Therepo
,chart
, andversion
keys are mandatory; they specify the Helm repository, chart name, and version you want to deploy. Thevalues
field holds configuration values that override the default settings of the Helm chart. -
Finally, we export the release name of the Helm deployment. This can be useful for querying the status of the deployment using
kubectl
.
Please Note:
-
Replace
<RANCHER_API_URL>
,token-<ACCESS_TOKEN>
, and<YOUR-RANCHER-CLUSTER-ID>
with the actual credentials and identifiers for your Rancher environment. -
Replace
<CHART-VERSION>
with the desired version of thewebpagetest-server
Helm chart you wish to deploy.
Before running this Pulumi program, make sure you've installed Pulumi CLI and logged in to your Pulumi account. Then, run
pulumi up
to preview and deploy these resources.For more detailed instructions on setting up the Pulumi stack, configuring providers, or managing Helm charts via Pulumi, you can refer to Pulumi's documentation.
-