Deploy the postgresql-persistent helm chart on Kubernetes
TypeScriptTo deploy the
postgresql-persistent
Helm chart on Kubernetes using Pulumi, you can use thekubernetes.helm.v3.Chart
resource from the Pulumi Kubernetes provider. This resource allows you to deploy Helm charts into a Kubernetes cluster, and you can configure the deployment further by specifying values that override the default chart values.Before we move into the code, here's an overview of the steps we'll follow in the program:
- We will import the necessary Pulumi and Kubernetes packages.
- We will create a new Kubernetes Helm Chart resource.
- We'll specify the chart name as
postgresql-persistent
and provide any custom values if required.
Below is the TypeScript program that performs this deployment:
import * as kubernetes from '@pulumi/kubernetes'; // Create a Chart resource that deploys the postgresql-persistent helm chart. // The chart can be from a specific repository or a local path. // In this example, we'll use a hypothetical Helm repository URL where the chart is hosted. const postgresChart = new kubernetes.helm.v3.Chart('postgresql-persistent', { // Specify the repository where the chart is located. repo: 'my-helm-repo', chart: 'postgresql-persistent', // Optionally, specify the chart version to deploy. version: '0.1.0', // If the Helm chart requires any custom values, you can specify them here. // This `values` object should match the structure that the Helm chart expects. values: { persistence: { enabled: true, size: '10Gi', }, // Add custom PostgreSQL configuration values here. }, // If your Helm deployment should be created in a specific namespace, set it here. // If not specified, it will be deployed in the default namespace. namespace: 'database-namespace', // You can include additional configuration options like fetchOpts as needed. }, { provider: /* Pass your kubernetes provider here if it's not the default one */ }); // Export the name of the namespace that the chart was deployed into. export const namespace = postgresChart.namespace; // Export the status of the cluster service created by the Helm chart deployment. export const status = postgresChart.getResourceProperty('v1/Service', 'postgresql-persistent-postgresql', 'status');
In this example:
- We have deployed the
postgresql-persistent
chart from a hypothetical Helm repositorymy-helm-repo
. - We specified version
0.1.0
of the chart, but you should check for the actual version you wish to deploy. - Custom values have been provided for persistence storage option. You will need to modify these based on your storage requirements and the specific configuration options that the chart provides.
- We have chosen to deploy the Helm chart into a namespace called
database-namespace
. Ensure this namespace exists in your cluster or update the namespace accordingly. - The
getResourceProperty
function is used to fetch the status of the service created by the chart, which we export for easy access. You might want to export other resources or properties depending on what you need to retrieve from the deployment.
Please replace
my-helm-repo
with the actual repository where thepostgresql-persistent
chart is hosted, and adjust thevalues
configuration according to your needs. If you don't have a separate provider instance configured and you're using the default setup, you can omit theprovider
option.