Deploy the unleash-proxy helm chart on Kubernetes
TypeScriptTo deploy the Unleash Proxy Helm chart on Kubernetes using Pulumi, we will utilize the
kubernetes.helm.v3.Chart
resource from the Pulumi Kubernetes provider. The HelmChart
resource allows you to deploy Helm charts into a Kubernetes cluster.Below is a Pulumi program in TypeScript, which shows how to deploy the Unleash Proxy Helm chart. Note that before running this code, you need to have Pulumi installed and configured, as well as a Kubernetes cluster configured for Pulumi to interact with.
First, let's go through the steps the code will perform:
- Import the necessary Pulumi Kubernetes library.
- Instantiate the
Chart
resource to deploy the Unleash Proxy Helm chart.
Here's how you can write the Pulumi program:
import * as kubernetes from '@pulumi/kubernetes'; // Create a Helm chart resource for deploying the Unleash Proxy Helm chart. const unleashProxyChart = new kubernetes.helm.v3.Chart('unleash-proxy', { chart: 'unleash-proxy', // This should match the name of the Helm chart you want to deploy // Specify the Helm repository details (e.g., if the chart isn't in a well-known Helm repo) fetchOpts: { repo: 'https://unleash.github.io/unleash-proxy/', }, // Optional: You can provide custom values to the Helm chart. // In the case of Unleash, you might need to provide specific configuration parameters // such as the API URL, the API Key, or any other required configuration. values: { // Add the necessary values here, for example: // apiKey: '<your-unleash-api-key>', // unleashUrl: '<your-unleash-instance-url>', // Uncomment and replace with actual configuration if needed. }, // Specify the namespace where you want to deploy the Unleash Proxy Helm chart. // If you don't specify one, it will deploy in the default namespace of the cluster. namespace: 'default', // Replace with the namespace you want, if not 'default'. }); // Export the public service endpoint to access the Unleash Proxy export const unleashProxyEndpoint = unleashProxyChart.getResourceProperty( 'v1/Service', 'unleash-proxy-unleash-proxy', 'status', 'loadBalancer', 'ingress', '0', 'hostname' );
Here's what the program does:
- It imports the
@pulumi/kubernetes
package which contains the necessary components to interact with your Kubernetes cluster. - It creates a
Chart
resource, which represents the Unleash Proxy Helm chart. Therepo
option withinfetchOpts
specifies the Helm repository URL where the Unleash Proxy chart can be found. - The
values
property allows you to configure specifics of the Unleash Proxy deployment. In most cases, you will need to provide specific configuration like Unleash URL, an API key, or other environment variables. - The
namespace
property allows you to specify which Kubernetes namespace the chart should be deployed into. By default, it's set todefault
, but you can modify it according to your needs. - Finally, it exports the endpoint of the Unleash Proxy service, assuming it exposes a
LoadBalancer
service type. You can access the Unleash Proxy through this URL.
Before running this Pulumi code, you need to make sure that you've set up and authenticated with a Kubernetes cluster where Pulumi will be deploying resources.
To run the code, save the file with a
.ts
extension (e.g.,deployUnleashProxy.ts
), and runpulumi up
in your terminal in the same directory as your file, Pulumi will handle the deployment, and you'll be able to see the output which contains the service endpoint (if aLoadBalancer
was created by the chart).