1. Answers
  2. Configuring Mount Options in a Persistent Volume (PV)

How do I configure mount options in a PV?

In this guide, you will learn how to configure mount options in a Kubernetes Persistent Volume (PV) using Pulumi. Persistent Volumes are a way to manage storage in Kubernetes, and configuring mount options allows you to specify how the volume should be mounted to the pods.

Below is a Pulumi program written in TypeScript that demonstrates how to create a Persistent Volume with specific mount options.

import * as pulumi from "@pulumi/pulumi";
import * as k8s from "@pulumi/kubernetes";

// Define the Persistent Volume
const pv = new k8s.core.v1.PersistentVolume("example-pv", {
    metadata: {
        name: "example-pv",
    },
    spec: {
        capacity: {
            storage: "10Gi",
        },
        accessModes: ["ReadWriteOnce"],
        persistentVolumeReclaimPolicy: "Retain",
        storageClassName: "manual",
        mountOptions: ["ro", "soft"], // Mount options: read-only and soft mount
        nfs: {
            path: "/var/nfs",
            server: "nfs-server.example.com",
        },
    },
});

// Export the name of the Persistent Volume
export const pvName = pv.metadata.name;

Key Points

  • Persistent Volume Definition: The PersistentVolume resource is defined with a name, capacity, access modes, reclaim policy, storage class, and mount options.
  • Mount Options: The mountOptions field is used to specify how the volume should be mounted. In this example, the options are ro (read-only) and soft (soft mount).
  • NFS Configuration: The nfs field specifies the NFS server and path where the volume is located.

Summary

In this guide, you learned how to configure mount options for a Kubernetes Persistent Volume using Pulumi. The provided code defines a Persistent Volume with specific mount options and exports the name of the volume. This setup allows you to control how the volume is mounted to the pods in your Kubernetes cluster.

Deploy this code

Want to deploy this code? Sign up for a free Pulumi account to deploy in a few clicks.

Sign up

New to Pulumi?

Want to deploy this code? Sign up with Pulumi to deploy in a few clicks.

Sign up