mirror of
https://github.com/kubernetes-sigs/node-feature-discovery.git
synced 2025-03-16 21:38:23 +00:00
Merge pull request #1491 from marquiz/devel/nf-owner-ref
nfd-worker: set owner reference in NodeFeature objects
This commit is contained in:
commit
04c4725dd1
3 changed files with 41 additions and 3 deletions
|
@ -5,3 +5,11 @@
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: spec.nodeName
|
fieldPath: spec.nodeName
|
||||||
|
- name: POD_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
- name: POD_UID
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.uid
|
||||||
|
|
|
@ -45,6 +45,14 @@ spec:
|
||||||
valueFrom:
|
valueFrom:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: spec.nodeName
|
fieldPath: spec.nodeName
|
||||||
|
- name: POD_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
- name: POD_UID
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.uid
|
||||||
resources:
|
resources:
|
||||||
{{- toYaml .Values.worker.resources | nindent 12 }}
|
{{- toYaml .Values.worker.resources | nindent 12 }}
|
||||||
command:
|
command:
|
||||||
|
|
|
@ -33,6 +33,7 @@ import (
|
||||||
"google.golang.org/grpc/credentials"
|
"google.golang.org/grpc/credentials"
|
||||||
"google.golang.org/grpc/credentials/insecure"
|
"google.golang.org/grpc/credentials/insecure"
|
||||||
"k8s.io/apimachinery/pkg/api/errors"
|
"k8s.io/apimachinery/pkg/api/errors"
|
||||||
|
"k8s.io/apimachinery/pkg/types"
|
||||||
"k8s.io/apimachinery/pkg/util/validation"
|
"k8s.io/apimachinery/pkg/util/validation"
|
||||||
"k8s.io/klog/v2"
|
"k8s.io/klog/v2"
|
||||||
klogutils "sigs.k8s.io/node-feature-discovery/pkg/utils/klog"
|
klogutils "sigs.k8s.io/node-feature-discovery/pkg/utils/klog"
|
||||||
|
@ -679,6 +680,25 @@ func (m *nfdWorker) updateNodeFeatureObject(labels Labels) error {
|
||||||
|
|
||||||
features := source.GetAllFeatures()
|
features := source.GetAllFeatures()
|
||||||
|
|
||||||
|
// Create owner ref
|
||||||
|
ownerRefs := []metav1.OwnerReference{}
|
||||||
|
podName := os.Getenv("POD_NAME")
|
||||||
|
podUID := os.Getenv("POD_UID")
|
||||||
|
if podName != "" && podUID != "" {
|
||||||
|
isTrue := true
|
||||||
|
ownerRefs = []metav1.OwnerReference{
|
||||||
|
{
|
||||||
|
APIVersion: "v1",
|
||||||
|
Kind: "Pod",
|
||||||
|
Name: podName,
|
||||||
|
UID: types.UID(podUID),
|
||||||
|
Controller: &isTrue,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
klog.InfoS("Cannot set NodeFeature owner reference, POD_NAME and/or POD_UID not specified")
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: we could implement some simple caching of the object, only get it
|
// TODO: we could implement some simple caching of the object, only get it
|
||||||
// every 10 minutes or so because nobody else should really be modifying it
|
// every 10 minutes or so because nobody else should really be modifying it
|
||||||
if nfr, err := cli.NfdV1alpha1().NodeFeatures(namespace).Get(context.TODO(), nodename, metav1.GetOptions{}); errors.IsNotFound(err) {
|
if nfr, err := cli.NfdV1alpha1().NodeFeatures(namespace).Get(context.TODO(), nodename, metav1.GetOptions{}); errors.IsNotFound(err) {
|
||||||
|
@ -688,6 +708,7 @@ func (m *nfdWorker) updateNodeFeatureObject(labels Labels) error {
|
||||||
Name: nodename,
|
Name: nodename,
|
||||||
Annotations: map[string]string{nfdv1alpha1.WorkerVersionAnnotation: version.Get()},
|
Annotations: map[string]string{nfdv1alpha1.WorkerVersionAnnotation: version.Get()},
|
||||||
Labels: map[string]string{nfdv1alpha1.NodeFeatureObjNodeNameLabel: nodename},
|
Labels: map[string]string{nfdv1alpha1.NodeFeatureObjNodeNameLabel: nodename},
|
||||||
|
OwnerReferences: ownerRefs,
|
||||||
},
|
},
|
||||||
Spec: nfdv1alpha1.NodeFeatureSpec{
|
Spec: nfdv1alpha1.NodeFeatureSpec{
|
||||||
Features: *features,
|
Features: *features,
|
||||||
|
@ -707,6 +728,7 @@ func (m *nfdWorker) updateNodeFeatureObject(labels Labels) error {
|
||||||
nfrUpdated := nfr.DeepCopy()
|
nfrUpdated := nfr.DeepCopy()
|
||||||
nfrUpdated.Annotations = map[string]string{nfdv1alpha1.WorkerVersionAnnotation: version.Get()}
|
nfrUpdated.Annotations = map[string]string{nfdv1alpha1.WorkerVersionAnnotation: version.Get()}
|
||||||
nfrUpdated.Labels = map[string]string{nfdv1alpha1.NodeFeatureObjNodeNameLabel: nodename}
|
nfrUpdated.Labels = map[string]string{nfdv1alpha1.NodeFeatureObjNodeNameLabel: nodename}
|
||||||
|
nfrUpdated.OwnerReferences = ownerRefs
|
||||||
nfrUpdated.Spec = nfdv1alpha1.NodeFeatureSpec{
|
nfrUpdated.Spec = nfdv1alpha1.NodeFeatureSpec{
|
||||||
Features: *features,
|
Features: *features,
|
||||||
Labels: labels,
|
Labels: labels,
|
||||||
|
|
Loading…
Add table
Reference in a new issue