Skip to content
This repository was archived by the owner on Jan 29, 2025. It is now read-only.

Commit 56c4573

Browse files
committed
Kubesec improvements and small refactoring
1 parent 14a26fa commit 56c4573

File tree

3 files changed

+20
-46
lines changed

3 files changed

+20
-46
lines changed

extender/client.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ package extender
22

33
import (
44
"fmt"
5-
"log"
5+
6+
"k8s.io/klog/v2"
67

78
"k8s.io/client-go/kubernetes"
89
"k8s.io/client-go/rest"
@@ -13,7 +14,7 @@ import (
1314
func GetKubeClient(kubeConfig string) (kubernetes.Interface, *rest.Config, error) {
1415
clientConfig, err := rest.InClusterConfig()
1516
if err != nil {
16-
log.Print("not in cluster - trying file-based configuration")
17+
klog.V(l2).InfoS("not in cluster - trying file-based configuration", "component", "controller")
1718

1819
clientConfig, err = clientcmd.BuildConfigFromFlags("", kubeConfig)
1920
if err != nil {
@@ -23,7 +24,7 @@ func GetKubeClient(kubeConfig string) (kubernetes.Interface, *rest.Config, error
2324

2425
kubeClient, err := kubernetes.NewForConfig(clientConfig)
2526
if err != nil {
26-
return nil, nil, fmt.Errorf("failed to get kubeclient: %w", err)
27+
return nil, nil, fmt.Errorf("failed to create kubeClientset %w", err)
2728
}
2829

2930
return kubeClient, clientConfig, nil

telemetry-aware-scheduling/cmd/main.go

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package main
22

33
import (
44
"flag"
5-
"fmt"
65
"os"
76

87
"os/signal"
@@ -20,20 +19,14 @@ import (
2019
"github.com/intel/platform-aware-scheduling/telemetry-aware-scheduling/pkg/strategies/scheduleonmetric"
2120
telemetrypolicyclient "github.com/intel/platform-aware-scheduling/telemetry-aware-scheduling/pkg/telemetrypolicy/client/v1alpha1"
2221
"github.com/intel/platform-aware-scheduling/telemetry-aware-scheduling/pkg/telemetryscheduler"
23-
"k8s.io/client-go/kubernetes"
24-
"k8s.io/client-go/rest"
25-
"k8s.io/client-go/tools/clientcmd"
2622
"k8s.io/klog/v2"
2723

2824
"context"
2925

3026
tascache "github.com/intel/platform-aware-scheduling/telemetry-aware-scheduling/pkg/cache"
3127
)
3228

33-
const (
34-
l2 = 2
35-
l4 = 4
36-
)
29+
const l2 = 2
3730

3831
func main() {
3932
var kubeConfig, port, certFile, keyFile, caFile, syncPeriod string
@@ -66,7 +59,7 @@ func tasController(kubeConfig string, syncPeriod string, cache *tascache.AutoUpd
6659
}
6760
}()
6861

69-
kubeClient, clientConfig, err := getkubeClient(kubeConfig)
62+
kubeClient, clientConfig, err := extender.GetKubeClient(kubeConfig)
7063
if err != nil {
7164
klog.V(l2).InfoS("Issue in getting client config", "component", "controller")
7265
klog.Exit(err.Error())
@@ -115,26 +108,6 @@ func tasController(kubeConfig string, syncPeriod string, cache *tascache.AutoUpd
115108
catchInterrupt(done)
116109
}
117110

118-
func getkubeClient(kubeConfig string) (kubernetes.Interface, *rest.Config, error) {
119-
clientConfig, err := rest.InClusterConfig()
120-
121-
if err != nil {
122-
klog.V(l4).InfoS("not in cluster - trying file-based configuration", "component", "controller")
123-
124-
clientConfig, err = clientcmd.BuildConfigFromFlags("", kubeConfig)
125-
if err != nil {
126-
return nil, nil, fmt.Errorf("failed to get clientConfig %w", err)
127-
}
128-
}
129-
130-
kubeClient, err := kubernetes.NewForConfig(clientConfig)
131-
if err != nil {
132-
return nil, nil, fmt.Errorf("failed to create kubeClientset %w", err)
133-
}
134-
135-
return kubeClient, clientConfig, nil
136-
}
137-
138111
func catchInterrupt(done chan os.Signal) {
139112
signal.Notify(done, syscall.SIGINT, syscall.SIGTERM)
140113
<-done

telemetry-aware-scheduling/deploy/tas-rbac-accounts.yaml

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,18 @@
11
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: ClusterRoleBinding
3+
metadata:
4+
name: handle-policies
5+
subjects:
6+
- kind: ServiceAccount
7+
name: telemetry-aware-scheduling-service-account
8+
namespace: default
9+
roleRef:
10+
kind: ClusterRole
11+
name: policy-handler
12+
apiGroup: rbac.authorization.k8s.io
13+
14+
---
15+
apiVersion: rbac.authorization.k8s.io/v1
216
kind: ClusterRole
317
metadata:
418
name: policy-handler
@@ -16,20 +30,6 @@ rules:
1630
resources: ["nodes"]
1731
verbs: ["get", "list", "patch"]
1832

19-
---
20-
apiVersion: rbac.authorization.k8s.io/v1
21-
kind: ClusterRoleBinding
22-
metadata:
23-
name: handle-policies
24-
subjects:
25-
- kind: ServiceAccount
26-
name: telemetry-aware-scheduling-service-account
27-
namespace: default
28-
roleRef:
29-
kind: ClusterRole
30-
name: policy-handler
31-
apiGroup: rbac.authorization.k8s.io
32-
3333
---
3434
apiVersion: v1
3535
kind: ServiceAccount

0 commit comments

Comments
 (0)