serving icon indicating copy to clipboard operation
serving copied to clipboard

Tracking issue for adding PVC support

Open skonto opened this issue 3 years ago • 18 comments

Describe the feature

This is a placeholder for the feature track work described in the related doc:

Alpha (disabled by default):

  • [x] Add rw pvc support in KService
  • [x] Add e2e test
  • [x] Add to listed flags here.

Beta (disabled by default):

  • [ ] Add conformance tests
  • [x] Update docs with a separate section for PVC support

GA (disabled by default):

  • [ ] Add Knative CLI support (enhance --volume flag)

/area API

skonto avatar Dec 15 '21 10:12 skonto

This issue is stale because it has been open for 90 days with no activity. It will automatically close after 30 more days of inactivity. Reopen the issue with /reopen. Mark the issue as fresh by adding the comment /remove-lifecycle stale.

github-actions[bot] avatar May 18 '22 01:05 github-actions[bot]

/remove-lifecycle stale

skonto avatar May 18 '22 07:05 skonto

Any news on PVC file feature @skonto ? Are there any estimates in which version or when this could be available? Maybe in the meantime, are there any alternatives to mount / use files with PVC and Knative Serving?

gunpuz avatar Jul 08 '22 10:07 gunpuz

This issue is stale because it has been open for 90 days with no activity. It will automatically close after 30 more days of inactivity. Reopen the issue with /reopen. Mark the issue as fresh by adding the comment /remove-lifecycle stale.

github-actions[bot] avatar Oct 08 '22 01:10 github-actions[bot]

/remove-lifecycle stale

skonto avatar Oct 10 '22 19:10 skonto

@gunpuz hi sorry for the late reply. What feature are you looking for? PVC is available in alpha stage.

skonto avatar Oct 10 '22 19:10 skonto

Hi, good to know, seems like this PVC support that's in alpha stage is what i'm looking for. I will look into it later, thanks 👍 ! @skonto are there estimates when this could be released in stable version?

gunpuz avatar Oct 10 '22 19:10 gunpuz

@gunpuz it is on my todo list to move it to GA, hopefully soon. However, this has been tested for quite some time downstream and it is considered to be mature enough. Customers haven't reported any issues so far. Thanks for your patience will get back to it.

skonto avatar Oct 11 '22 07:10 skonto

a) Regarding Add conformance tests: According to the discussion in https://github.com/knative/serving/pull/13535, the e2e tests will first advance to beta and then to GA in a future release.

b) Docs seem to cover PVC support: https://knative.dev/docs/serving/configuration/feature-flags/#kubernetes-persistentvolumeclaim-pvc. Is there another place where docs about this feature should be added?

c) I checked the client implementation. Seems like the PVC support is already fully covered:

  • https://github.com/knative/client/blob/main/pkg/kn/flags/podspec.go#L144
  • https://github.com/knative/client/blob/main/pkg/kn/flags/podspec.go#L157

@skonto WDYT?

ReToCode avatar Dec 14 '22 12:12 ReToCode

a) Yes since we decided this is an extension that we are not enabling by default for now. b) No that is the place I am aware of as well. c) cool so I will update the description of this issue when the PR #13535 is merged.

skonto avatar Jan 17 '23 11:01 skonto

Related Slack discussion: https://knative.slack.com/archives/CA4DNJ9A4/p1673954610282719

From @skonto

hi, I see that we enabled emptydir support at some point by default here. Emptydir and pvcs are listed as extensions (they are behind a flag and not part of the API) which means that are never going to be enabled by default as stated in docs:

 Each extension is always controlled by a flag and is never enabled by default. Should we relax this rule?

From @dprotaso

Yes - I would say in the past the OSS project was a reference implementation to the spec.So it was very adverse to adopting k8s features outside of the spec and things that aren't 'serverless'.

I think moving forward the OSS implementation just implements the spec but isn't bound by it. We also want the defaults to be sane for the user and operator

I think generally I would like more customer/user feedback & to capture use cases before we mark things as GA

dprotaso avatar Jan 18 '23 15:01 dprotaso

I think as we transition from alpha to beta and we switch some of these flags to be on by default we should give prior notice in the release notes. This will allow operators of existing installations to disable the feature prior to updating.

dprotaso avatar Jan 18 '23 15:01 dprotaso

When I understand you correctly, you'd like to have PVC support also enabled per default (like emptyDir)? As far as I got the conversation so far, the ticket (Beta disabled by default) and discussion (https://github.com/knative/serving/pull/13535#issuecomment-1342729772) expected PVC support to stay disabled, even on GA. /cc @skonto

ReToCode avatar Jan 19 '23 07:01 ReToCode

@dprotaso gentle ping regarding https://github.com/knative/serving/issues/12438#issuecomment-1396533655

ReToCode avatar Jan 31 '23 09:01 ReToCode

PVC support to stay disabled, even on GA.

That was my understanding for quite some time due to the implications in security and performance.

skonto avatar Feb 07 '23 14:02 skonto

@dprotaso so we seem to have two options:

  • Let PVC support stay disabled by default, then only need to remove the beta filter in the test.
  • Or do the above and also enable it by default. WDYT?

ReToCode avatar Feb 10 '23 14:02 ReToCode

@dprotaso gentle ping, which option do you prefer?

skonto avatar Dec 20 '23 10:12 skonto

@dprotaso gentle ping.

skonto avatar Feb 21 '24 11:02 skonto