Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Finalize pvc support #5651

Merged
merged 4 commits into from
Nov 7, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 29 additions & 5 deletions docs/serving/services/storage.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,36 @@
# Volume Support for Knative services

By default Serving supports the mounting the [volume types](https://kubernetes.io/docs/concepts/storage/volumes): `emptyDir`, `secret`, `configMap` and `projected`. [PersistentVolumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) are supported but require a [feature flag](../configuration/feature-flags.md) to be enabled.
You can provide data storage for Knative Services by configuring different volumes types.
Serving supports mounting the [volume types](https://kubernetes.io/docs/concepts/storage/volumes): `emptyDir`, `secret`, `configMap` and `projected`.
[PersistentVolumes](https://kubernetes.io/docs/concepts/storage/persistent-volumes/) are supported but require a [feature flag](../configuration/feature-flags.md) to be enabled.

!!! warning

Mounting large volumes may add considerable overhead to the application's start up time.


Here is an example of using a persistent volume claim with a Knative Service:
Bellow there is an example of using a persistent volume claim with a Knative Service.

## Prerequisites

Before you can configure PVCs for a Service, this feature must be enabled in the `config-features` ConfigMap as follows:

```
kubectl patch --namespace knative-serving configmap/config-features \
--type merge \
--patch '{"data":{"kubernetes.podspec-persistent-volume-claim": "enabled", "kubernetes.podspec-persistent-volume-write": "enabled"}}'
```

* The `kubernetes.podspec-persistent-volume-claim` extension controls whether persistent volumes (PVs) can be used with Knative Serving.
* The `kubernetes.podspec-persistent-volume-write` extension controls whether PVs are available to Knative Serving with the write access.

!!! note

If you have installed Serving via the Knative operator then you need to set the above feature flags **only** at the corresponding Serving CR.

## Procedure

* Modify the PVC configuration for your Service:

```yaml
apiVersion: serving.knative.dev/v1
Expand All @@ -16,8 +40,8 @@ spec:
template:
spec:
containers:
...
volumeMounts:
...
volumeMounts:
- mountPath: /data
name: mydata
readOnly: false
Expand All @@ -37,4 +61,4 @@ spec:
resources:
requests:
storage: 1Gi
```
```
Loading