Dev mode with disk storage

We are creating ephemeral K8s stacks for developers using Vault in dev mode for the ease of setup. We would like to have some kind of persistance on a volume (PVC) to make sure that when the pod restarts data are still there.
Is there an easy way to start such a setup without all the fuzz of init and unsealing and managing keys ?

You can’t use dev mode for this, as it’s not flexible enough for that.

Instead, you should write a minimal Vault configuration file that does what you need it to, and handle the init and unseal via some wrapper scripts.

Init looks like this:

vault operator init -n 1 -t 1 -format=json > init.json

saving the init.json somewhere safe as you’ll need it to unseal.

Unseal looks like this:

vault operator unseal "`jq -r '.unseal_keys_b64[0]' init.json`"

To do some initial setup of the data stored in each dev Vault, you might want log in using the root token in init.json and run some other commands:

export VAULT_TOKEN=$(vault login -no-store -field=token "`jq -r .root_token init.json`")
vault secrets enable <something>

Thanks a lot maxb for your answer,
This is exactly what I have done and it is working fine.
In fact I save the init.json inside the pvc used for storing vault data (location is /vault/data) and unseal vault upon pod restarts.