Skip to content

Kubernetes template cannot provision PVC if the storage class uses volumeBindingMode: WaitForFirstConsumer #4470

Closed
@NiklasRosenstein

Description

@NiklasRosenstein

I installed Coder into my K0s cluster with Helm using the 0.9.8 Helm chart. The kubernetes template that was ready in Coder when I first logged in unfortunately is failing to provision the PVC because my default storage class (using Rancher's local-path-provisioner) uses volumeBindingMode: WaitForFirstConsumer.

What you'll get is a PVC that is Pending

image

And Terraform waiting for the volume to be bound until the timeout is exceeded.

Plan: 4 to add, 0 to change, 0 to destroy.
coder_agent.main: Creating...
coder_agent.main: Creation complete after 0s [id=65614e0a-a513-4c96-8273-c0b8aee716c0]
coder_app.code-server: Creating...
coder_app.code-server: Creation complete after 0s [id=2d32c272-6082-4598-9eb8-7611d74d2d2a]
kubernetes_persistent_volume_claim.home: Creating...
kubernetes_persistent_volume_claim.home: Still creating... [10s elapsed]
kubernetes_persistent_volume_claim.home: Still creating... [20s elapsed]
...
kubernetes_persistent_volume_claim.home: Still creating... [4m40s elapsed]
kubernetes_persistent_volume_claim.home: Still creating... [4m50s elapsed]
kubernetes_persistent_volume_claim.home: Creation errored after 5m0s
Error: context deadline exceeded

I was able to fix this by setting wait_until_bound = false on the kubernetes_persistent_volume_claim.home resource. I want to suggest to include this by default into your Kubernetes template, or make it a configuration option.

Cheers 🍻

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions