Deploy the mongodb-replicaset helm chart on Digital Ocean Kubernetes Service
TypeScriptTo deploy the MongoDB ReplicaSet Helm chart on Digital Ocean Kubernetes Service (DOKS), you will need to complete a few steps. The process includes creating a Kubernetes cluster in DigitalOcean and then using the Helm package manager to deploy the MongoDB ReplicaSet chart onto your cluster.
Here are the steps that the Pulumi program will follow:
-
Create a Kubernetes Cluster: Using the
digitalocean.KubernetesCluster
resource, you create a managed Kubernetes cluster on Digital Ocean. -
Install the Helm Chart: Once the cluster is up and running, you then use the
kubernetes.helm.v3.Chart
resource to deploy the MongoDB ReplicaSet Helm chart.
Before running the Pulumi program make sure you have:
- Installed the Pulumi CLI and set up the DigitalOcean token.
- Installed
kubectl
, since you might need it to manage your Kubernetes clusters.
Now, let's begin with the Pulumi TypeScript program. This program will use the
@pulumi/digitalocean
and@pulumi/kubernetes
packages to provision resources. Make sure both are installed in your Pulumi project:$ npm install @pulumi/digitalocean @pulumi/kubernetes
Here is the complete Pulumi program:
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', // Use your preferred region version: 'latest', // Use the latest version, or specify your desired version nodePool: { name: 'default', size: 's-2vcpu-2gb', // You can upgrade the node size as per your need nodeCount: 2, }, }); // Export the clusters' kubeconfig. export const kubeconfig = cluster.kubeConfigs[0].rawConfig; // Create a Kubernetes Provider instance with the kubeconfig from the DigitalOcean cluster. const k8sProvider = new k8s.Provider('do-k8s', { kubeconfig: kubeconfig, }); // Deploy the MongoDB ReplicaSet Helm chart using the Kubernetes provider. const mongodbReplicaSet = new k8s.helm.v3.Chart('mongodb-replicaset', { chart: 'mongodb-replicaset', version: '3.9.6', // Specify the version of chart you want to deploy namespace: 'default', // Use the appropriate namespace where you want to deploy your chart fetchOpts:{ repo: 'https://charts.bitnami.com/bitnami', // Official Bitnami Helm charts repository }, }, { provider: k8sProvider }); // Export the Helm chart resources. export const helmResources = mongodbReplicaSet.resources;
In this program:
- We create a Kubernetes cluster in the
nyc3
region using thedigitalocean.KubernetesCluster
resource. You can change the region, version, size, and count to suit your needs. - The generated
kubeconfig
is exported for use outside the program. - We instantiate a provider for Kubernetes which uses this
kubeconfig
. - Lastly, we deploy MongoDB using the Helm chart. Ensure that the chart version
3.9.6
here is available or else you may need to update to a different chart version.
To run this Pulumi program, place the code in a file named
index.ts
within your Pulumi project directory. Navigate to the directory in your terminal and executepulumi up
. Pulumi will print out the proposed state of what it will create within your DigitalOcean account.The resources created by this program include:
- A Kubernetes cluster hosted on DigitalOcean.
- The MongoDB ReplicaSet Helm chart deployed onto the Kubernetes cluster.
After running the program, if you need to interact with your Kubernetes cluster, you can configure your
kubectl
to use thekubeconfig
from the output of this Pulumi program.-