Bug 1647937 - kubevirt DataVolume feature gate is not enabled
Summary: kubevirt DataVolume feature gate is not enabled
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Container Native Virtualization (CNV)
Classification: Red Hat
Component: Installation
Version: 1.3
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: 1.3
Assignee: Ryan Hallisey
QA Contact: shiyang.wang
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-11-08 15:12 UTC by Adam Litke
Modified: 2019-01-15 14:05 UTC (History)
8 users (show)

Fixed In Version: cnv-tech-preview/kubevirt-apb:v3.11-6
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-01-15 14:05:58 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Adam Litke 2018-11-08 15:12:58 UTC
Description of problem:

When using the release manifests to install kubevirt components we do not provide a configmap that enables the DataVolumes feature gate.  As a result, users will not be able to create VirtualMachine objects that contain datavolume template sections.

Version-Release number of selected component (if applicable): v1.3.0


How reproducible: always


Steps to Reproduce:
1. Install kubevirt using kubevirt-manifests rpm
2. Create virtual machine with datavolume template
oc create -f https://raw.githubusercontent.com/kubevirt/kubevirt/master/cluster/examples/vm-alpine-datavolume.yaml

Actual results:
The kubevirt apiserver rejects the virtual machine


Expected results:
The virtual machine should be created successfully


Additional info:

Comment 1 Adam Litke 2018-11-08 15:14:15 UTC
Assigning to Piotr as agreed in IRC.

Comment 2 Piotr Kliczewski 2018-11-08 15:28:59 UTC
Thanks Adam but this is an issue in module maintained by install team. Assigning to Ryan.

Comment 4 Fabian Deutsch 2018-11-09 12:26:34 UTC
The patch was merged yesterday. Anything else missing?

Comment 5 Ryan Hallisey 2018-11-09 16:17:36 UTC
Backport: https://github.com/kubevirt/kubevirt-ansible/pull/451

Then will pull downstream

Comment 7 Ryan Hallisey 2018-11-11 15:08:03 UTC
https://brewweb.engineering.redhat.com/brew/buildinfo?buildID=798617

brew-pulp-docker01.web.prod.ext.phx2.redhat.com:8888/cnv-tech-preview/kubevirt-apb:v3.11-1

Comment 8 Lukas Bednar 2018-11-13 11:59:19 UTC
I think that this bug is about kubevirt-manifests rpm, and fix which was created is about adding kubevirt-configmap into APB - not into kubevirt-manifests


I see that kubevirt-manifests rpm contains kubevirt-configmap, but it is under testing directory ... and enables even more than just datavolumes.

[lbednar@lbednar kubevirt]$ cat ./manifests/testing/kubevirt-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: kubevirt-config
  namespace: kube-system
  labels:
    kubevirt.io: ""
data:
  feature-gates: "DataVolumes, CPUManager, LiveMigration"


That seems to me quite confusing, and I feel little bit uncomfortable to move this bug to verified.

Ryan what do you think about it ?

Comment 9 Ryan Hallisey 2018-11-14 19:03:51 UTC
I think the apb side is done.  It will deploy the config file: /etc/ansible/roles/kubevirt-ansible/roles/kubevirt/templates/kubevirt-config.yaml where I only enabled the DataVolume feature gate. I think for future releases, it makes sense to add this to the kubevirt rpm.  The apb is setup to consume the configmap from the manifests rpm  already, so there isn't anything hacky here.

Comment 10 Nelly Credi 2018-11-22 15:57:31 UTC
@Shiyang, can you please verify?

Comment 11 Nelly Credi 2018-11-25 19:37:00 UTC
$ oc get configmap -n kube-system kubevirt-config -o yaml
apiVersion: v1
data:
  feature-gates: DataVolumes
kind: ConfigMap
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","data":{"feature-gates":"DataVolumes"},"kind":"ConfigMap","metadata":{"annotations":{},"labels":{"kubevirt.io":""},"name":"kubevirt-config","namespace":"kube-system"}}
  creationTimestamp: 2018-11-25T16:55:31Z
  labels:
    kubevirt.io: ""
  name: kubevirt-config
  namespace: kube-system
  resourceVersion: "6444"
  selfLink: /api/v1/namespaces/kube-system/configmaps/kubevirt-config
  uid: eb050111-f0d2-11e8-b81b-fa163e10cd8e

Comment 12 Nelly Credi 2018-11-25 19:46:37 UTC
ignore previous.

There is a mention to the following being enabled
  feature-gates: "DataVolumes, CPUManager, LiveMigration"
but in D/S i only see DataVolumes, while I would also expect to see CPUManager

$ oc get configmap -n kube-system kubevirt-config -o yaml
apiVersion: v1
data:
  feature-gates: DataVolumes
kind: ConfigMap
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"v1","data":{"feature-gates":"DataVolumes"},"kind":"ConfigMap","metadata":{"annotations":{},"labels":{"kubevirt.io":""},"name":"kubevirt-config","namespace":"kube-system"}}
  creationTimestamp: 2018-11-25T16:55:31Z
  labels:
    kubevirt.io: ""
  name: kubevirt-config
  namespace: kube-system
  resourceVersion: "6444"
  selfLink: /api/v1/namespaces/kube-system/configmaps/kubevirt-config
  uid: eb050111-f0d2-11e8-b81b-fa163e10cd8e


looking at master & 0.9.2 release
https://github.com/kubevirt/kubevirt-ansible/blob/v0.9.2/roles/kubevirt/templates/kubevirt-config.yaml

Comment 13 Fabian Deutsch 2018-11-26 09:45:18 UTC
For 1.3 we went with only enabling the DataVolumes feature-gate in order to avoid validation of CPU Manager and live migration.

Those additional feature gates will be opened once the features land in a release.

Comment 14 Ryan Hallisey 2018-11-26 11:58:42 UTC
Like Fabian said, we only expect the DataVolumes feature-gate.

Comment 15 Nelly Credi 2018-11-26 11:59:42 UTC
agreed.


Note You need to log in before you can comment on or make changes to this bug.