diff --git a/functests/06-test-deploy-node-labeller.sh b/functests/06-test-deploy-node-labeller.sh index c9abdf2f..be426f71 100755 --- a/functests/06-test-deploy-node-labeller.sh +++ b/functests/06-test-deploy-node-labeller.sh @@ -14,26 +14,6 @@ oc apply -n ${TEST_NS} -f "${SCRIPTPATH}/node-labeller-unversioned-cr.yaml" || e wait_node_labeller_running ${TEST_NS} 5 60 -for idx in $( seq 1 30); do - echo "Waiting for node-labeller to label nodes" - - number_of_cpu=$( oc get nodes -o json | jq '.items[0].metadata.labels | keys | map(select(startswith("feature.node.kubernetes.io/cpu-model-"))) | length') - number_of_cpu_features=$( oc get nodes -o json | jq '.items[0].metadata.labels | keys | map(select(startswith("feature.node.kubernetes.io/cpu-feature-"))) | length') - - echo "Number of CPU labels: $number_of_cpu" - echo "Number of CPU features: $number_of_cpu_features" - - if [ $number_of_cpu -gt 0 ] && [ $number_of_cpu_features -gt 0 ]; then - RET=0 - break - fi - sleep 2s -done - -if [ $RET -eq 1 ] ; then - exit 2 -fi - #wait for ssp operator to set proper conditions wait_for_condition ${TEST_NS} 5 40 "KubevirtNodeLabellerBundle" "Available" "True" RET="$?" diff --git a/functests/node-labeller-unversioned-cr.yaml b/functests/node-labeller-unversioned-cr.yaml index da6a2e3a..938f536d 100644 --- a/functests/node-labeller-unversioned-cr.yaml +++ b/functests/node-labeller-unversioned-cr.yaml @@ -3,4 +3,3 @@ kind: KubevirtNodeLabellerBundle metadata: name: kubevirt-node-labeller-bundle spec: - useKVM: false diff --git a/manifests/generated/kubevirt-ssp-operator.vVERSION.clusterserviceversion.yaml b/manifests/generated/kubevirt-ssp-operator.vVERSION.clusterserviceversion.yaml index 6cda5de3..ec9a278a 100644 --- a/manifests/generated/kubevirt-ssp-operator.vVERSION.clusterserviceversion.yaml +++ b/manifests/generated/kubevirt-ssp-operator.vVERSION.clusterserviceversion.yaml @@ -2,7 +2,7 @@ apiVersion: operators.coreos.com/v1alpha1 kind: ClusterServiceVersion metadata: annotations: - alm-examples: '[{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtCommonTemplatesBundle","metadata":{"name":"kubevirt-common-template-bundle"},"spec":{"version":"v0.7.0"}},{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtMetricsAggregation","metadata":{"name":"kubevirt-metrics-aggregation"},"spec":{"version":"v0.0.1"}},{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtNodeLabellerBundle","metadata":{"name":"kubevirt-node-labeller-bundle"},"spec":{"version":"v0.1.1"}},{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtTemplateValidator","metadata":{"name":"kubevirt-template-validator","namespace":"kubevirt"},"spec":{"templateValidatorReplicas":2,"version":"v0.6.2"}}]' + alm-examples: '[{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtTemplateValidator","metadata":{"name":"kubevirt-template-validator","namespace":"kubevirt"},"spec":{"templateValidatorReplicas":2,"version":"v0.6.2"}},{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtCommonTemplatesBundle","metadata":{"name":"kubevirt-common-template-bundle"},"spec":{"version":"v0.7.0"}},{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtMetricsAggregation","metadata":{"name":"kubevirt-metrics-aggregation"},"spec":{"version":"v0.0.1"}},{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtNodeLabellerBundle","metadata":{"name":"kubevirt-node-labeller-bundle"},"spec":{"version":"v0.1.1"}}]' capabilities: Basic Install categories: Openshift Optional containerImage: REPLACE_IMAGE diff --git a/manifests/kubevirt-ssp-operator/latest/kubevirt-ssp-operator.latest.clusterserviceversion.yaml b/manifests/kubevirt-ssp-operator/latest/kubevirt-ssp-operator.latest.clusterserviceversion.yaml index aa8975df..4a13232c 100644 --- a/manifests/kubevirt-ssp-operator/latest/kubevirt-ssp-operator.latest.clusterserviceversion.yaml +++ b/manifests/kubevirt-ssp-operator/latest/kubevirt-ssp-operator.latest.clusterserviceversion.yaml @@ -3,7 +3,7 @@ apiVersion: operators.coreos.com/v1alpha1 kind: ClusterServiceVersion metadata: annotations: - alm-examples: '[{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtCommonTemplatesBundle","metadata":{"name":"kubevirt-common-template-bundle"},"spec":{"version":"v0.7.0"}},{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtMetricsAggregation","metadata":{"name":"kubevirt-metrics-aggregation"},"spec":{"version":"v0.0.1"}},{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtNodeLabellerBundle","metadata":{"name":"kubevirt-node-labeller-bundle"},"spec":{"version":"v0.1.1"}},{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtTemplateValidator","metadata":{"name":"kubevirt-template-validator","namespace":"kubevirt"},"spec":{"templateValidatorReplicas":2,"version":"v0.6.2"}}]' + alm-examples: '[{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtTemplateValidator","metadata":{"name":"kubevirt-template-validator","namespace":"kubevirt"},"spec":{"templateValidatorReplicas":2,"version":"v0.6.2"}},{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtCommonTemplatesBundle","metadata":{"name":"kubevirt-common-template-bundle"},"spec":{"version":"v0.7.0"}},{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtMetricsAggregation","metadata":{"name":"kubevirt-metrics-aggregation"},"spec":{"version":"v0.0.1"}},{"apiVersion":"ssp.kubevirt.io/v1","kind":"KubevirtNodeLabellerBundle","metadata":{"name":"kubevirt-node-labeller-bundle"},"spec":{"version":"v0.1.1"}}]' capabilities: Basic Install categories: Openshift Optional containerImage: REPLACE_IMAGE diff --git a/pkg/apis/kubevirt/v1/types.go b/pkg/apis/kubevirt/v1/types.go index 86c62ee7..b40335e3 100644 --- a/pkg/apis/kubevirt/v1/types.go +++ b/pkg/apis/kubevirt/v1/types.go @@ -70,7 +70,6 @@ type VersionSpec struct { type ComponentSpec struct { Version string `json:"version,omitempty"` - UseKVM bool `json:"useKVM"` } type TemplateValidatorSpec struct { diff --git a/roles/KubevirtNodeLabeller/tasks/main.yml b/roles/KubevirtNodeLabeller/tasks/main.yml index 1705e073..32898dc2 100644 --- a/roles/KubevirtNodeLabeller/tasks/main.yml +++ b/roles/KubevirtNodeLabeller/tasks/main.yml @@ -17,18 +17,6 @@ definition: "{{ lookup('k8s', kind=nl.result.kind, namespace=nl.result.metadata.namespace, resource_name=nl.result.metadata.name) | from_yaml }}" register: nl_status -- name: Set UseKVM condition - operator_sdk.util.k8s_status: - api_version: ssp.kubevirt.io/v1 - kind: KubevirtNodeLabellerBundle - name: "{{ meta.name }}" - namespace: "{{ meta.namespace }}" - conditions: - - type: KVMSupport - status: "{{ use_kvm }}" - reason: "enabled" - message: "KVM support is enabled." - - name: Set progressing condition operator_sdk.util.k8s_status: api_version: ssp.kubevirt.io/v1 diff --git a/roles/KubevirtNodeLabeller/templates/kubevirt-node-labeller-ds.yaml.j2 b/roles/KubevirtNodeLabeller/templates/kubevirt-node-labeller-ds.yaml.j2 index 367366a2..d028b6c5 100644 --- a/roles/KubevirtNodeLabeller/templates/kubevirt-node-labeller-ds.yaml.j2 +++ b/roles/KubevirtNodeLabeller/templates/kubevirt-node-labeller-ds.yaml.j2 @@ -46,40 +46,24 @@ spec: - name: libvirt image: {{ ssp_registry | default('kubevirt') }}/{{ image_name_prefix }}{{ virt_launcher_image }}{{"@" if virt_launcher_tag.startswith("sha256:") else ":" }}{{ virt_launcher_tag }} command: ["/bin/sh","-c"] -{% if use_kvm %} - args: ["libvirtd -d; chmod o+rw /dev/kvm; virsh domcapabilities --machine q35 --arch x86_64 --virttype kvm > /etc/kubernetes/node-feature-discovery/source.d/virsh_domcapabilities.xml; cp -r /usr/share/libvirt/cpu_map /etc/kubernetes/node-feature-discovery/source.d/"] -{% else %} - args: ["libvirtd -d; virsh domcapabilities --machine q35 --arch x86_64 --virttype qemu > /etc/kubernetes/node-feature-discovery/source.d/virsh_domcapabilities.xml; cp -r /usr/share/libvirt/cpu_map /etc/kubernetes/node-feature-discovery/source.d/"] -{% endif %} + args: ["if [ ! -e /dev/kvm ] && [ $(grep '\\' /proc/misc | wc -l) -eq 0 ]; then echo 'exiting due to missing kvm device'; exit 0; fi; if [ ! -e /dev/kvm ]; then mknod /dev/kvm c 10 $(grep '\\' /proc/misc | cut -f 1 -d' '); fi; libvirtd -d; chmod o+rw /dev/kvm; virsh domcapabilities --machine q35 --arch x86_64 --virttype kvm > /etc/kubernetes/node-feature-discovery/source.d/virsh_domcapabilities.xml; cp -r /usr/share/libvirt/cpu_map /etc/kubernetes/node-feature-discovery/source.d/"] imagePullPolicy: Always -{% if use_kvm %} securityContext: privileged: true - resources: - requests: - devices.kubevirt.io/kvm: "1" - limits: - devices.kubevirt.io/kvm: "1" -{% endif %} volumeMounts: - name: nfd-source mountPath: "/etc/kubernetes/node-feature-discovery/source.d/" - name: kubevirt-node-labeller + securityContext: + privileged: true + command: ["/bin/sh","-c"] + args: ["if [ ! -e /dev/kvm ] && [ $(grep '\\' /proc/misc | wc -l) -eq 0 ]; then echo 'exiting due to missing kvm device'; exit 0; fi; if [ ! -e /dev/kvm ]; then mknod /dev/kvm c 10 $(grep '\\' /proc/misc | cut -f 1 -d' '); fi; ./usr/sbin/node-labeller"] env: - name: NODE_NAME valueFrom: fieldRef: fieldPath: spec.nodeName image: {{ ssp_registry | default('quay.io/kubevirt') }}/{{ image_name_prefix }}{{ kubevirt_node_labeller_image }}{{"@" if kubevirt_node_labeller_tag.startswith("sha256:") else ":" }}{{ kubevirt_node_labeller_tag }} -{% if use_kvm %} - securityContext: - privileged: true - resources: - requests: - devices.kubevirt.io/kvm: "1" - limits: - devices.kubevirt.io/kvm: "1" -{% endif %} volumeMounts: - name: nfd-source mountPath: "/etc/kubernetes/node-feature-discovery/source.d/"