Deploy the dast-operator helm chart on Digital Ocean Kubernetes Service
TypeScriptTo deploy the
dast-operator
Helm chart on Digital Ocean Kubernetes Service using Pulumi, we'll first need to create a Kubernetes cluster on Digital Ocean. Once the cluster is ready, we can deploy the Helm chart to it. Below is a step-by-step guide along with a Pulumi TypeScript program to accomplish this.Step-by-step guide:
-
Create a DigitalOcean Kubernetes Cluster: We use the
digitalocean.KubernetesCluster
resource to provision a new Kubernetes cluster. This resource requires you to specify the cluster name, region, version, and node pool configuration. -
Deploy the Helm Chart: With the cluster set up, we use the
kubernetes.helm.v3.Chart
resource to deploy thedast-operator
Helm chart. This resource allows you to specify the chart name, version, and any custom values you want to override.
Pulumi TypeScript Program:
First, let's write the program that will create the Digital Ocean Kubernetes cluster and then deploy the Helm chart to it.
import * as pulumi from "@pulumi/pulumi"; import * as digitalocean from "@pulumi/digitalocean"; import * as k8s from "@pulumi/kubernetes"; // Create a DigitalOcean Kubernetes cluster const cluster = new digitalocean.KubernetesCluster("do-cluster", { region: "nyc3", version: "latest", // Specify the version or use "latest" nodePool: { name: "default", size: "s-2vcpu-2gb", // This is the smallest node size. Adjust according to your needs. nodeCount: 2, // Adjust the number of nodes as needed }, }); // Once the cluster is provisioned, we can configure a Kubernetes provider that uses the cluster's kubeconfig const k8sProvider = new k8s.Provider("k8s-provider", { kubeconfig: cluster.kubeConfigs[0].rawConfig, }); // Deploy the dast-operator Helm chart to the DigitalOcean Kubernetes cluster const dastOperatorChart = new k8s.helm.v3.Chart("dast-operator", { chart: "dast-operator", // Replace this with the correct Helm chart name if different // Optional: Include additional Helm chart values by providing a 'values' parameter // values: { /* your custom chart values here */ }, }, { provider: k8sProvider }); // Export the cluster's kubeconfig export const kubeconfig = cluster.kubeConfigs[0].rawConfig;
In the above TypeScript program:
- We import the necessary Pulumi packages for DigitalOcean and Kubernetes.
- The
digitalocean.KubernetesCluster
class creates a new Kubernetes cluster on Digital Ocean with a given node count and size. - We specify the region where the cluster will be created (e.g.,
nyc3
) and use thelatest
keyword to select the latest available version of Kubernetes supported by DigitalOcean. - For the node pool, we use the smallest size (
s-2vcpu-2gb
) to minimize costs—ideal for learning and testing purposes. - Once the cluster is created, we retrieve its kubeconfig, which allows us to interact with the cluster using the Kubernetes provider.
- We then create a new instance of the
kubernetes.helm.v3.Chart
class, deploying thedast-operator
Helm chart to our cluster. Please note that you should replace the placeholder text with the actual chart name which can usually be found in the Helm registry or the chart’s documentation. - We also include a placeholder for custom values, should your Helm chart require any. These values typically configure the Helm chart deployment to your specific needs.
- Finally, we export the kubeconfig. This permits you to interact with your cluster using
kubectl
or other Kubernetes tools once it has been set up by Pulumi.
To use this program, you will need to have Pulumi installed, as well as have a Pulumi account to manage your states. Moreover, you should have configured your DigitalOcean token with Pulumi using
pulumi config set digitalocean:token <YOUR_DIGITALOCEAN_API_TOKEN>
prior to running this program.To deploy the program, navigate to the directory containing this code and run
pulumi up
. This command will provision the cluster on DigitalOcean, configure the Kubernetes provider, and deploy thedast-operator
Helm chart to your new cluster.Next steps after deployment:
- Use the exported kubeconfig to interact with your cluster via
kubectl
. - Monitor and manage your Helm chart deployment through Pulumi.
- Make sure to clean up resources with
pulumi destroy
if they are no longer needed, to prevent ongoing costs.
-