Skip to content

Commit 5d30be1

Browse files
authored
Merge pull request #1566 from marquiz/devel/apihelper-refactor-2
topology-updater: get topology api client directly
2 parents 238105c + 2326459 commit 5d30be1

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

pkg/nfd-topology-updater/nfd-topology-updater.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030
kubeletconfigv1beta1 "k8s.io/kubelet/config/v1beta1"
3131

3232
"github.com/k8stopologyawareschedwg/noderesourcetopology-api/pkg/apis/topology/v1alpha2"
33+
topologyclientset "github.com/k8stopologyawareschedwg/noderesourcetopology-api/pkg/generated/clientset/versioned"
3334
"sigs.k8s.io/node-feature-discovery/pkg/apihelper"
3435
"sigs.k8s.io/node-feature-discovery/pkg/nfd-topology-updater/kubeletnotifier"
3536
"sigs.k8s.io/node-feature-discovery/pkg/podres"
@@ -74,6 +75,7 @@ type nfdTopologyUpdater struct {
7475
nodeName string
7576
args Args
7677
apihelper apihelper.APIHelpers
78+
topoClient topologyclientset.Interface
7779
resourcemonitorArgs resourcemonitor.Args
7880
stop chan struct{} // channel for signaling stop
7981
eventSource <-chan kubeletnotifier.Info
@@ -136,6 +138,11 @@ func (w *nfdTopologyUpdater) Run() error {
136138
return err
137139
}
138140
w.apihelper = apihelper.K8sHelpers{Kubeconfig: kubeconfig}
141+
topoClient, err := topologyclientset.NewForConfig(kubeconfig)
142+
if err != nil {
143+
return nil
144+
}
145+
w.topoClient = topoClient
139146

140147
if err := w.configure(); err != nil {
141148
return fmt.Errorf("faild to configure Node Feature Discovery Topology Updater: %w", err)
@@ -215,12 +222,7 @@ func (w *nfdTopologyUpdater) Stop() {
215222
}
216223

217224
func (w *nfdTopologyUpdater) updateNodeResourceTopology(zoneInfo v1alpha2.ZoneList, scanResponse resourcemonitor.ScanResponse, readKubeletConfig bool) error {
218-
cli, err := w.apihelper.GetTopologyClient()
219-
if err != nil {
220-
return err
221-
}
222-
223-
nrt, err := cli.TopologyV1alpha2().NodeResourceTopologies().Get(context.TODO(), w.nodeName, metav1.GetOptions{})
225+
nrt, err := w.topoClient.TopologyV1alpha2().NodeResourceTopologies().Get(context.TODO(), w.nodeName, metav1.GetOptions{})
224226
if errors.IsNotFound(err) {
225227
nrtNew := v1alpha2.NodeResourceTopology{
226228
ObjectMeta: metav1.ObjectMeta{
@@ -236,7 +238,7 @@ func (w *nfdTopologyUpdater) updateNodeResourceTopology(zoneInfo v1alpha2.ZoneLi
236238

237239
updateAttributes(&nrtNew.Attributes, scanResponse.Attributes)
238240

239-
if _, err := cli.TopologyV1alpha2().NodeResourceTopologies().Create(context.TODO(), &nrtNew, metav1.CreateOptions{}); err != nil {
241+
if _, err := w.topoClient.TopologyV1alpha2().NodeResourceTopologies().Create(context.TODO(), &nrtNew, metav1.CreateOptions{}); err != nil {
240242
return fmt.Errorf("failed to create NodeResourceTopology: %w", err)
241243
}
242244
return nil
@@ -257,7 +259,7 @@ func (w *nfdTopologyUpdater) updateNodeResourceTopology(zoneInfo v1alpha2.ZoneLi
257259

258260
updateAttributes(&nrtMutated.Attributes, attributes)
259261

260-
nrtUpdated, err := cli.TopologyV1alpha2().NodeResourceTopologies().Update(context.TODO(), nrtMutated, metav1.UpdateOptions{})
262+
nrtUpdated, err := w.topoClient.TopologyV1alpha2().NodeResourceTopologies().Update(context.TODO(), nrtMutated, metav1.UpdateOptions{})
261263
if err != nil {
262264
return fmt.Errorf("failed to update NodeResourceTopology: %w", err)
263265
}

0 commit comments

Comments
 (0)