Use client generator to generate all k8s clients and add respective client-go metrics (#2668)

* Define client generator to generate all k8s clients
* Increase QPS and burst values
* Capture client-go metrics
* Support for controller runtime metrics

Signed-off-by: Sanket Sudake <sanketsudake@gmail.com>
This commit is contained in:
Sanket Sudake
2022-12-13 14:19:36 +05:30
committed by GitHub
parent 31f4f8c57e
commit 5fae765323
26 changed files with 252 additions and 137 deletions
+2 -2
View File
@@ -68,8 +68,8 @@ type (
}
)
func MakeAPI(logger *zap.Logger) (*API, error) {
api, err := makeCRDBackedAPI(logger)
func MakeAPI(logger *zap.Logger, fissionClient versioned.Interface, kubernetesClient kubernetes.Interface) (*API, error) {
api, err := makeCRDBackedAPI(logger, fissionClient, kubernetesClient)
u := os.Getenv("STORAGE_SERVICE_URL")
if len(u) > 0 {
+2 -1
View File
@@ -503,7 +503,8 @@ func TestMain(m *testing.M) {
return
}
_, kubeClient, _, _, err := crd.GetKubernetesClient()
clientGen := crd.NewClientGenerator()
kubeClient, err := clientGen.GetKubernetesClient()
panicIf(err)
// testNS isolation for running multiple CI builds concurrently.
+13 -4
View File
@@ -27,9 +27,18 @@ import (
func Start(ctx context.Context, logger *zap.Logger, port int, unitTestFlag bool) {
cLogger := logger.Named("controller")
fc, _, apiExtClient, _, err := crd.MakeFissionClient()
clientGen := crd.NewClientGenerator()
fissionClient, err := clientGen.GetFissionClient()
if err != nil {
cLogger.Fatal("failed to connect to k8s API", zap.Error(err))
cLogger.Fatal("failed to get fission client", zap.Error(err))
}
apiExtClient, err := clientGen.GetApiExtensionsClient()
if err != nil {
cLogger.Fatal("failed to get api extension client client", zap.Error(err))
}
kubeClient, err := clientGen.GetKubernetesClient()
if err != nil {
cLogger.Fatal("failed to get kubernetes client", zap.Error(err))
}
err = crd.EnsureFissionCRDs(ctx, cLogger, apiExtClient)
@@ -37,12 +46,12 @@ func Start(ctx context.Context, logger *zap.Logger, port int, unitTestFlag bool)
cLogger.Fatal("failed to find fission CRDs", zap.Error(err))
}
err = crd.WaitForCRDs(ctx, logger, fc)
err = crd.WaitForCRDs(ctx, logger, fissionClient)
if err != nil {
cLogger.Fatal("error waiting for CRDs", zap.Error(err))
}
api, err := MakeAPI(cLogger)
api, err := MakeAPI(cLogger, fissionClient, kubeClient)
if err != nil {
cLogger.Fatal("failed to start controller", zap.Error(err))
}
+3 -6
View File
@@ -18,15 +18,12 @@ package controller
import (
"go.uber.org/zap"
"k8s.io/client-go/kubernetes"
"github.com/fission/fission/pkg/crd"
"github.com/fission/fission/pkg/generated/clientset/versioned"
)
func makeCRDBackedAPI(logger *zap.Logger) (*API, error) {
fissionClient, kubernetesClient, _, _, err := crd.MakeFissionClient()
if err != nil {
return nil, err
}
func makeCRDBackedAPI(logger *zap.Logger, fissionClient versioned.Interface, kubernetesClient kubernetes.Interface) (*API, error) {
return &API{
logger: logger.Named("api"),
fissionClient: fissionClient,